Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Scott Delap on Sep 11, 2006 06:35 PM
With Sun's supporting JRuby by adding two of its committers to its payroll, the next question is where does this leave other JVM language alternatives such as Groovy? Since the announcement both Charles Nutter and Thomas Enebo (the two new hires) as well as Tim Bray of Sun have both provided follow up answers to questions about what will happen next. In summary:Charles Nutter responded to the question of JRuby vs Groovy, Rails vs Grails on OnJava.com.
...trying to build a house with a hammer. The very notion is absurd. It’s just as absurd to say there should be one true dynlang on the JVM, be it Groovy or Ruby or Python or anything else. We are craftsmen, if not artists, and no craftsman will claim that a single tool can do everything...After fighting for alternative languages to curry favor with the development community, does it make sense to claim our language is the one true choice? And the same question with alternative web frameworks?
Tim Bray's recent blog entry highlights that the hiring was not about JRuby vs other languages. It was simply a response to the great work Charles and Thomas have been doing:
...First, these guys took an existing semi-dormant project and brought it alive, unprompted, unpaid, applying energy and engineering skills to the problem in large quantities. Second, they were working in a field that has a large and growing community; in this case because of the hype around Rails. Third, they were vocal and outward-facing and articulate, getting on the stage at Java One and lots of other events with impressive demos. Fourth, they shipped code that worked pretty well and improved qualitatively from release to release. I’m not sure it’s Sun’s role to pick and choose the winners and losers in this space, or anoint leaders; what would make us think we’re that smart? But when obvious leadership emerges in an interesting space, why wouldn’t we get behind it?
Finally Graeme Rocher, Grails project lead, comments in respect to Groovy/Grails.
First, I must express my congratulations to the JRuby guys at the news that they have been hired to work fulltime on JRuby by Sun. This is great news as we may finally see a high quality Ruby VM for Java ... What do I personally think it means to Groovy? Well not a great deal actually. Groovy already has tight integration with Java and compiles to byte code hence its performance and integration is excellent ... If JRuby gets Rails working on Java then it is just another choice amongst such great frameworks like WebWork, Cocoon, Rife and Grails.
How Java Developers Can Write Great SQL
Give-away eBook – Confessions of an IT Manager
Open Source Middleware Reference Architecture Whitepaper
I'll reiterate what I've said at ONJava -- If you're a Ruby user, this is good news hands down. It will probably allow you to interact with Java when you need. If you're a Java user/enterprise, have a huge existing Java codebase and run on the JVM 95% of your time, consider Groovy. Sure JRuby will give you a strong dynamic language and the Ruby codebase, but I fear there will be 'seams' whereever Ruby and Java meet. Imagine having to always apply patches when you want to use your favorite Ruby libraries in JRuby. How long until we see JRuby code that explicitly depends on Java libs and doesn't work in native Ruby? Will JRuby always be playing catch-up with the native version? This is the way porting usually goes. Personally, I'd prefer a dynamic language that is built from the ground up to take full advantage of the JVM, its codebase and well-established frameworks (Spring, Acegi, Lucene, and all of those EJBs you created!!) Not to mention that any Grails app runs in a standard Java servlet container/ app server. If you want 'portability,' isn't that what the VM was meant to do? Personally, I'm going to pick a platform (be it Java, .NET, Ruby or Python), _then_ choose my implementation language(s) that best allow me to leverage that platform. Sure, Groovy and Grails are still a bit immature and the documentation needs work, but otherwise it's no less capable. I don't think there's anything in Ruby that you can't do just as easily in Groovy. Side-by-side, I think Groovy is easier to read (and hence maintain). Regardless, if your bread and butter is Java, why deal with incompatibility, conflicting paradigms and duplicated libraries when you can have something that is meant to work with Java? Pick what works best. Of course -- if you have Ruby code that you need to interact with Java, by all means that's what JRuby is meant for. It's a bridge between two worlds. But that bridge will always be less stable than the solid ground on either side. Groovy will always remain squarely on the solid Java foundation. JRuby is your choice if you want to use Ruby. Groovy is your choice if you're a Java user. I'm confident that Groovy and Grails have nothing but good things ahead of them. Thanks for reading. -Tom
I'm not sure I understand what your point is about JRuby code using Java libraries. JRuby code which depends on Java libraries is pretty much guaranteed, as surely that is one of the main uses of such a language on the JVM - as scripting language which can use Java classes and libraries. Unless Ruby on the JVM has signficant advantages over 'native' Ruby (in future, better performance could be one), I can't see that many pure Ruby developers using JRuby, and aiming to use exactly the same code on or off the JVM. Also, I am not sure how much on-going catching up with 'native' Ruby will need to be done. Ruby is a relatively stable language, and even the changes in Ruby 2.0 don't seem to be major. It is not that much of a moving target. I agree strongly with your opinions on Groovy and Grails; I suspect Groovy will get much more attention when 1.0 is released, and the GORM persistence used in Grails is, in my view, a far better way of doing things than Rails' ActiveRecord. When GORM gets JPA support, it will be a very attractive framework indeed.
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
2 comments
Watch Thread Reply