This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
To be honest, I haven't really used appfuse or read anything about it. But according to what I was told about it and according to what I've read about RoR here... It seems pretty similar... Please tell me the differences.
I think they're quite different. Appfuse is described as "an application for kickstarting webapp development", while Ruby on Rails is a web application framework. Let me explain.
I see Appfuse as a gluecode generator. You configure it, add some metadata and it'll automatically create configuration files, code, etc. to make use of other frameworks like Spring, Hibernate, Struts, iBATIS, etc. Appfuse doesn't provide most of the functionality, it relies on other frameworks to do so.
On the other hand, Rails is a more complete application framework. You build applications that rely on the functionality Rails provides like ActiveRecord (ORM), ActiveSupport (utilities), etc. You need very little configuration in Rails, as long as you follow certain conventions everything will work "magically" at runtime.
I think many people have a mistaken idea of Rails because of one of its features: Scaffolding. Scaffolding is a simple code generator that creates barebones code ("scaffolding") that you develop from. In that respect, it's similar to Appfuse. It's definitely one of the most "visual" features of Rails, the one that is more easily "sellable". That's the feature the article you mention describes.
However, Rails is much more than Scaffolding. I see it as an integrated web development framework. You get ORM, views, utilities, testing, migrations, logging, a server, and much more out of the box, everything is part of a single framework. And a very well designed one! It is developed upon a lot of best practices and approaches. And yet, it's not complex but quite simple in most cases.
AppFuse and RoR aim to solve the same problem, to increase productivity but they go about it in different ways.
When I realised I had a productivity problem a year or so ago I first looked at AppFuse, and tried it out. The problem was that although it generated a lot of code for me, I still had to learn too much about the component parts that it was gluing together, and that slowed me down.
I really really can finish web apps more quickly using RoR. There is still a lot to learn but you quickly get the payoffs. Its more practical where as J2EE seems to disappear up its own XML file to often.
Often with Java Server Faces or Hibernate I would hit a snag, perhaps an exception, and have no clue where to start looking.
You know the kind of thing, you google for "ReallyDeeplyNestedException at line 256 of UnheardOfClass.java" and find just one mention of it, in Korean. This has not happened much since I've been using RoR.
As Steve Jobs likes to say, it just works.
The trouble starts when a technology becomes an End In Itself and people glory in writing vastly flexible APIs when really we just need much more specific solutions to problems like validating fields, using Ajax, MVC.
And another thing, people used to say that Struts was MVC, but I have never understood how it helped with the model stuff.
With RoR you can learn about ActiveRecord and stop reading umpteen books about Spring, Hibernate, and IoC whatever that is.