State of web application frameworks
No matter how many of the new frameworks I try like Ruby on Rails and JBoss, I always end up using our flagship product Serval Retail Manager as a library/framework for new applications. It may not be perfect, but I understand every line of code in it and it’s rock solid after years of testing, and yet it’s far from obsolete.
All the other frameworks tend to be overkill or too unstable to get a working, profitable product into the market quickly. JBoss will look better on my CV, but their latest version is the only one I’ll use and it’s too flaky right now as it’s still in beta. I tend to avoid “CV engineering” as I believe that every developer should have a toolbox of tried and tested techniques that they can use to solve problems in the most efficient way – note that I didn’t say “solve problems in the best way”, as perfectionist thinking like that means you’ll never get beyond choosing a framework because none of them are perfect – but JBoss with EJB3.0 holds promise. They’ve sorted out the persistence layer to be simple enough for small projects, yet scalable enough to take on massive clustered systems.
Java Server Faces looks like the holy grail of web development, a GUI toolkit that brings the power of Swing to the web? Seems impossible, but I think they’re getting there, although the tools aren’t in place yet.
Ruby on Rails is neat and it’s impressive how quickly you can get something on screen, but far too much of the system is based on magic using implicit naming, etc. which only works when you understand all the code in the framework, thus defeating the whole point of using a framework to handle the grunt work for you. And it’s a bitch to get working with Postgresql, and I refuse to use MySQL as it’s missing too many features I’m used to. Plus I’m used to powerful tools like Eclipse handling code-completion, refactoring, debugging, etc., and nothing comparable is available for Ruby.
Re-using a framework that’s been built and tested in-house is obviously the best solution for the company. But if I change jobs or start my own company I can’t take the framework with me, so it’s not the best solution for me. I think that’s the biggest reason programmers go with the framework which has been marketed the most, as there’s more of a guarantee that the skills they’ve worked so hard on picking up in one job will be transferable to a new job. But, alas, when you have shares in the company and you’re happy with everything, then stick with what you know and have pride in the fact that your home-brewed framework can have a web application up and running in two weeks which would take months in the fancy, polished frameworks available on the net.