JSP and Beyond

a pragmatic primer on building web-based solutions with Java technologies

Emerging Web Application Frameworks

Beyond the development languages mentioned above, are an emerging set of frameworks and languages that have grown out of the common need to deliver complex web applications.  Although each web application that is developed will be unique, common needs (data retrieval, data display, form submission, form validation, sending email and more) have emerged throughout them, and because of this toolsets have evolved in an attempt to refine the way in which these common needs are addressed.

Ruby on Rails
Out of all of the emerging frameworks few are talked about as much as Ruby on Rails.  Rails is a framework that lets the Ruby language become extended to the web, providing many built-in tools commonly required by web applications.  One of the major assumptions made by Ruby on Rails is that the web application will be backed by a database.  An object layer automatically created over the database requires a programmer to write very little SQL, if any at all, since everything is dealt with through objects.  The Next Steps chapter will review a tool called Hibernate that can be used to provide a similar object layer to abstract interactions with a database.  Rails also provides form validation, error messages and many other common web application features.

To highlight the momentum behind the Ruby movement it is interesting to note that Ruby on Rails will be shipping with the latest version of Apples MAC OSX Leopard.

Django is very similar to Ruby on Rails, providing a pragmatic MVC framework with object modeled database abstraction, but uses Python as its programming language.  It has not received quite as much press as Ruby on Rails, and the community surrounding it is less mature than the one for Ruby on Rails.  In addition there are far less hosting options which makes production deployment somewhat of a hassle.  That said, the Python language is more prevalent within the enterprise then Ruby.  It will be interesting to see how much traction this framework gains over time.