I am a Java+GWT programmer, interested in exploring Groovy/Grails. Seems like an easier transition & a solid platfrom (the JVM) compared to RoR. Anyone have any experience with it to share?
I am just considering giving up my exploration of Grails.
A lot of it seems like fun, but I am not sure if it is mature yet. My progress was very slow because nothing comes natural to me anymore. At the moment I don't know how "save" cascades in GORM. Maybe I am just not made for the Rails type of programming: seems I want to be in control of everything. With Hibernate, I can explicitly define the cascades, plus it is very easy to find out what to do in the documentation.
To be fair you can probably fall back to configuring Hibernate directly with Grails. I think I would rather have a classic Spring/Hibernate application and replace some parts with Groovy/Grails than the other way round. One thing I also don't like is that Grails doesn't use Maven (or gaven or whatever they will call the groovy replacement for maven they will surely eventually create). I am used to not putting binary libraries into subversion any more and don't want to go back.
My other source of frustration is that I couldn't get my grails application to run in Eclipse and therefore I couldn't debug. Also the Groovy plugin is extremly basic, all it does is syntax highlighting, for all I can tell (and debugging, if it would work). Also, Grails produces the longest exception stacktraces I have ever seen, looking for the source of the error in there is no fun.
I feel a bit pathetic - surely I should try harder and dig deeper into Grails, but somehow I can't motivate myself to do it.
That said, I still think it would be 1000 times more fun than classical Java development. I guess I'll just wait for a few version jumps and then I'll try it again. Wish I could find the time to contribute to grails myself.
Take this with a grain of salt, as I haven't tried Groovy/Grails, but in my experience several of the other rails knockoffs were the genuine Rolix's of the framework world.
Rails is not perfect, but ruby and leadership by innovators who think a little different made it what it is. Will you see that in me-too frameworks? Will they ever do more than copy ideas and stay a step behind?
Plus, the difference between a dynamic language and java is something like the difference between travelling at light-speed, vs. faster than light. In Java you travel (code) in a straight line. In Rails or a dynamic language, you can fold space-time so the destination point is only a few lines of code from where you are now. Cleverness gives you more leverage in a dynamic language. ROR is solid enough, and Jruby can run rails now.
Actually, Groovy isn't Java - it's a dynamic "scripting" language that runs on the Java virtual machine (just like JRuby or Jython) - precisely the reason why I want to try it :)
It is quite stable and mature (granted it's around for only a year or so). I've already used it in 3 different projects and IMHO this is the best web framework for Java. The community is very active, and it's leaded by Gavin King (from Hibernate fame).
Apparently Seam supports Groovy now (I haven't tried it yet, but it looks promising):
Python on Planes is my framework of choice too! Seriously though, you can do pretty much anything with any of these frameworks - so pick the one you seem to like the best and build something.
My favorite feature of Python on Planes is the one liner it takes to make Reddit. It's just Reddit.new(). It even figures out the databases for you automatically.
I'm currently working with Turbogears (http://www.turbogears.org) which is a (real, no snake oil here) python framework. It's not perfect by a long way but it pulls together some really excellent technology from all over the python world.
"Pylons combines the very best ideas from the worlds of Ruby, Python and Perl, providing a structured but extremely flexible Python web framework. It's also one of the first projects to leverage the emerging WSGI standard, which allows extensive re-use and flexibility but only if you need it. Out of the box, Pylons aims to make web development fast, flexible and easy."
Pylons is awesome, but be aware that they're changing the default template to Mako soon, and form handling to ToscaWidgets. The latter doesn't have much documentation yet.
I'm pretty happy with Rails. It's not perfect, but it's widely used, does most of what I need, and looks to be around for the long haul at this point. Ruby's pretty nice too - I like it a bit more than Python, but for pretty much entirely subjective reasons. I think Django would be a good choice too.
20 comments
[ 2.7 ms ] story [ 57.9 ms ] threadA lot of it seems like fun, but I am not sure if it is mature yet. My progress was very slow because nothing comes natural to me anymore. At the moment I don't know how "save" cascades in GORM. Maybe I am just not made for the Rails type of programming: seems I want to be in control of everything. With Hibernate, I can explicitly define the cascades, plus it is very easy to find out what to do in the documentation.
To be fair you can probably fall back to configuring Hibernate directly with Grails. I think I would rather have a classic Spring/Hibernate application and replace some parts with Groovy/Grails than the other way round. One thing I also don't like is that Grails doesn't use Maven (or gaven or whatever they will call the groovy replacement for maven they will surely eventually create). I am used to not putting binary libraries into subversion any more and don't want to go back.
My other source of frustration is that I couldn't get my grails application to run in Eclipse and therefore I couldn't debug. Also the Groovy plugin is extremly basic, all it does is syntax highlighting, for all I can tell (and debugging, if it would work). Also, Grails produces the longest exception stacktraces I have ever seen, looking for the source of the error in there is no fun.
I feel a bit pathetic - surely I should try harder and dig deeper into Grails, but somehow I can't motivate myself to do it.
That said, I still think it would be 1000 times more fun than classical Java development. I guess I'll just wait for a few version jumps and then I'll try it again. Wish I could find the time to contribute to grails myself.
Personally I prefer letting a framework do its thing and make intelligent defaults, that can hopefully be overridden (usually the case in Rails).
Rails is not perfect, but ruby and leadership by innovators who think a little different made it what it is. Will you see that in me-too frameworks? Will they ever do more than copy ideas and stay a step behind?
Plus, the difference between a dynamic language and java is something like the difference between travelling at light-speed, vs. faster than light. In Java you travel (code) in a straight line. In Rails or a dynamic language, you can fold space-time so the destination point is only a few lines of code from where you are now. Cleverness gives you more leverage in a dynamic language. ROR is solid enough, and Jruby can run rails now.
Eric
http://www.jboss.com/products/seam
It is quite stable and mature (granted it's around for only a year or so). I've already used it in 3 different projects and IMHO this is the best web framework for Java. The community is very active, and it's leaded by Gavin King (from Hibernate fame).
Apparently Seam supports Groovy now (I haven't tried it yet, but it looks promising):
http://blog.hibernate.org/cgi-bin/blosxom.cgi/2007/05/07
The advantages of those frameworks are :
- Way faster development ( less code )
- No messing with databases
- Clean structure ( business logic separated from HTML )
===
Arguing wether to go with Ruby or Python with a framework is pointless, their concepts are similar. Choose one tool and get good at using it.
I went with Python and Django because :
- Python is simple, clean, multi purposes and popular
- There are many available libraries ( and it has been helpful to me )
- Django is the python framework with the most contributors
- Django has good documentation available
===
Django is not the fastest framework but when you'll have to deal with scalability, the solution is to cache and put everything in RAM.
Try the tutorial and see if you like it.
I needed about 1.5 months to get used to the underlying concepts.
My advise is to code as seen in the examples and relax.
Don't worry about optimising, they thought about it for you.
===
Tutorial:
http://www.djangoproject.com/documentation/tutorial01/
"Pylons combines the very best ideas from the worlds of Ruby, Python and Perl, providing a structured but extremely flexible Python web framework. It's also one of the first projects to leverage the emerging WSGI standard, which allows extensive re-use and flexibility but only if you need it. Out of the box, Pylons aims to make web development fast, flexible and easy."