Mastering the Grails Powerful Tiny Web Framework
Someone from IBM tips this article on their Developerworks site about Grails, a modern Web development framework that mixes familiar Java technologies like Spring and Hibernate. "Grails gives you the development experience of Ruby on Rails while being firmly grounded in proven Java technologies. This article show you how to build your first Grails application with the lessons learned from Rails and the sensibilities of modern Java development."
...getting interviewed about Groovy here.
There's some other good stuff there too, although the interview with Dr. Stonebreaker about column-oriented storage is kind of light on technical detail.
The Army reading list
It seems that Rails set a milestone for development frameworks, and nowadays everything new has to be based or inspired or copied from Rails. Seems that Rails really made a breaktrough there, in fact, it seems to be responsable for most of Ruby's popularity. Rails has been translated several times to other languages, like Python (Django, also TurboGears to a lesser extent) and Java (Groovy to a lesser extent, now Grails that it's a ripoff even on the name).
This makes me think that sometime ago the buzzword of the moment was J2EE, and everything everyone made had to be J2EE compliant. Even C# and .NET was a big Microsoft ripoff of Java and J2EE to fight against the big migration of programmers to Java.
Which leads me to the fact that soon the buzz around Rails will be over, as much as nobody creates a new J2EE-based framework, now everything is taken for granted. So, what will be the next milestone? The next technology that will have people talking? Have everyone trying to clone its own?
So one day several years ago the suits came to me and told me I had to stop using Perl and start using Java. It was hell. I lived in J2EE hell, JSF hell, Portlet hell, Workflow engine hell, Seam hell, then I spent some time with EJB3 and that felt less like hell.
Then the clouds parted, the angels sang, and there before me stood Groovy and Grails.
Groovy is pure joy in a bucket. It was so much less painful to transition to Groovy. Grails made so much more sense than JSF and Seam. Jetty was so much easier to set up and run than a full application server. I was so much happier... and I was able to use any of the Java stuff I wanted and I could even write shell scripts in Groovy. I could use Grails tools to automatically generate so much code I would have had to write in any other framework... Perl included... I was so happy that the pain had stopped. The confusion lifted! The buzzword acronym laden pea soup had stopped. Life began to make sense. I actually began to prefer working in Groovy and Grails to working with Perl, CGI.pm, and Template engines.
This is shocking but Groovy and Grails might actually be better than Perl, Ruby, or Python. No really. I'm sure this will start a flame war. But honestly you need to look at it. You really do. My IDE of choice working with Groovy and Grails? vi. really. vi. I don't need a big heavy IDE like I do with Java.
> Rails has been translated several times to other languages, like Python (Django...)
Absolutely not. Django preexisted the Rails buzz by years (it was an internal application at LJworld initially), and one of the reasons it's so good is that, unlike many, it is precisely not trying to mimic Rails.
That doesn't invalidate your point, though. I just thought I'd point it out, because, you know, to reach the next milestone, you first need to stop targetting the current one, and as you point out, not many are doing that right now.
-- B.
This sig does in fact not have the property it claims not to have.
Java has to be overengineered, because you need to use its API (or rework it all from scratch). Its object model is a toy: it lacks countless of features such as multiple inheritance, mixins, dynamic modification, parametric polymorphism, functional properties, introspection, operator overloading, and the list goes on and on. If you want an example of a non-toy object model, i.e. one that doesn't get in your way, but actually allows you to build powerful abstractions, supplant builtins and reuse code that might even not yet exist, take a look at Python's.
Also, I was not particularly defending Rails, nor claiming it can solve every problem.
I was about to say 13256278887989457651018865901401704640, but it appears this number is private property.