/home/dkramer

David Kramer’s high-entropy blog

A Software Framework I Actually Like

Generally speaking, I hate frameworks. Most frameworks I’ve met fall into one or more of these camps:

  • Frameworks so lightweight that they’re not worth the hassle of using them.  These frameworks can be useful when you need some functionality that you don’t want to learn in detail how to do.  This is almost never the case for me, because I like fully understanding any technologies I rely upon.  That’s why at Aptima I wrote my own AJAX JavaScript library.  It was something like 50 lines of code, worked flawlessly, and worked exactly as I wanted it to.
  • Frameworks so heavy the work to utilize them approaches the work of rolling your own.  This often happens with frameworks that start out simple and are expanded to encompass too much functionality outside of the original scope.
  • Frameworks that are staunchly inflexible in how they are used and how they work.  Using a software tool to make your life easier should not like  implementing an ERP system.  This often happens when when the framework was designed for a specific purpose then released as a separate product.  See The Cathedral And The Bazaar.
  • Frameworks that are completely opaque or have an unreasonable learning curve.  Most meaningful operations in software have some sort of side effect you need to be aware of.  Insufficient documentation and software that does not follow the mantra of the Principle Of Least Astonishment can make diagnosing problems a nightmare.

I’m currently working on my knowledge and skills with Spring and Hibernate.  They continue to fail to suck.  I was very surprised how easy they were to implement, how much they’re for me, and how flexible they are.  Spring is a framework that specializes in (among other things) inversion of control to promote decoupling and testability, and Hibernate is an object relationship mapper that eases the burden of persisting entities in a database.  There are many good tutorials on the Intertubes, but I’ve been working my way through the book Spring Recipes, which covers both technologies very well.

Read on…

Site info