18 July 2007 by Ian Davis
What’s interesting is the culture of frameworks and what different communities deem valuable. My sense of it is that on Java, too many web frameworks – think JSF, or Struts 1.x – consider the Web something you work around using software patterns. The goal is get off the web, and back into middleware. Whereas a framework like Django or Rails is purpose-built for the Web; integrating with the internal enterprise is a non-goal.
Earlier this year Andrew wrote:
So, where to go from here? Well, this is certainly the last JSF project I will be working on, and eventually I hope to phase it out of this current one. JSF is web development for Java programmers – those who donâ€™t know much about web applications and even less about HTML, CSS and certainly DDA.
At first pass I wondered if this was is a case of leaky abstractions, but concluded not. The problem isn’t the abstraction that these frameworks provide, rather that they’re changing the metaphor. The web is document-oriented: HTTP is about transferring documents from the server to the client. That’s a great fit for a lumpy information system. There are many other system metaphors but very few of them fit the web’s semantics, just as a transfer protocol would be a poor fit for an event-driven GUI. Emulating one with the other is likely to be a disaster. Most of the time its good to be close to the underlying characteristics of the system you’re working with. It’s good to know that your communication paths may be unreliable and that there’s latency in your messages just as it’s good to know that your user went on vacation for two weeks and only just picked up your application from where they left off.