Rapid Enterprise Level Web Development Without Drag & Drop
This topic has waxed and waned in importance for me (mostly depending on how our team is going with meeting deadlines) but it is never completely out of my mind. Coding style, maintainability and robustness have always been more important to me than speed and so I am not a great fan of the Web application drag and drop development frameworks I have seen. Even though it is a quick way to get a form setup, it almost invariably leads to nasty code which can be harder to tidy up than just doing the thing yourself in the first place.
That being said, in a competitive marketplace, for a company writing custom applications to be viable you need tools and code libraries to speed up the development process in ways which don’t reduce quality. Frameworks like Spring, Hibernate & the new JPA EJB 3.0 go a long way toward speeding up the development process for enterprise class applications but the MVC part of the equation has always been a sticking point in my experience.
Spring MVC solves one part of the problem, that of backing web forms with plain old java objects (POJOs) rather than the Struts approach of having action forms with String fields which have to be manually converted in the action to resolve to POJOs. This is done via property editors, Simple types such as Integer and Date are provided and users can implement custom logic to do the conversion on more complex, user defined types.
The next time consuming problem is UI layout, validation and display of messages to the user. In my opinion, small UI concerns and tricky validation issues burn inordinate amounts of time in web based applications. The solution to this seems to be a well constructed tag library which is terse and has flexible and easy to extend validation. The need for this tag library is what drove myself, rob and others at Groupware, when I was working there, to develop the SpringLayout framework, essentially an extension to Spring MVC with a highly coupled tag library and validation framework.
SpringLayout is still in it’s infancy but already has proven of great worth in data gathering applications, short-cutting the time it takes us to develop our applications. I will be interested to see whether other developers get the same degree of usefulness out of it as we have so far and to get there feedback on the developer experience.
I wonder what other developers think about RAD for Web Applications?