Sponsored Link •
The Ruby on Rails way is starting to influence thinkers in Java. Matt Raible apologizes on behalf of J2EE on how silly it looks to do CRUD in AppFuse and Trails has been announced as an approximation of Rails with Java frameworks.
The thoughts must have lead to some frustration with his current environment, though. Here's his description of why doing a CRUD on a single database table would flunk any productivity test:
...if I did it right now in AppFuse's current state, it'd be a disaster... To CRUD a database table using AppFuse you have to create 11 new files and modify 5 existing files. 16 files. What a beotch, huh? If I made a video of this - it'd be 20 minutes long!Compare this to the Rails approach:
While this might make AppFuse look silly, it's really more of a symptom of the patterns we have in J2EE and how we're supposed to architect our apps. 3 tiers, test-driven, loosely-coupled and internationalized.
class Post < ActiveRecord::Base # All attributes are given accessors # through column introspection end class WeblogController < ActionController::Base # The controller now has actions for all # CRUD operations and uses introspection # to select the input fields and columns scaffold :post end
I'd be depressed too if my environment forced me to go through a 20 minute setup phase (and that's for an expert, I'm sure creating and updating 16 files could easily take longer for people less skilled than Matt).
The Trails framework is a domain driven development framework inspired by others that have gone before it such as Rails and Naked Objects. Its goal is to make developing database-driven web applications in Java radically easier, faster, and more fun. The basic approach is to eliminate as many of the steps as we can.
While I laud the aspirations for easing the pain that is J2EE, I'd advice treating the disease rather than the symptoms. Which is of course while I keep stressing the use of Ruby on Rails instead of just Rails. Rails cannot happen in a language like Java. Approximations will try, though.
So I would recommend trying the real thing before settling with an approximation. This realization came to both Python on Rails, Rails.NET, and Active Record in Tcl.
But if you're stuck with J2EE as a fear-driven technology choice made by higher powers, I most certainly recommend checking out Trails. Chris is picking the best infrastructure J2EE has to offer and will attempt to make it fit like Rails. That's a great starting point and a good vision. Best of luck!
|David H. Heinemeier has been working with the web since '96 as a writer, project manager, and now programmer. As a freelance developer working on his own, he takes a keen interest in all matters surrounding personal and team productivity. This has lead to his current cocktail of Ruby on Apple using agile development and social software, for all of which he's an incurable evangelist.|