Hi guys,
This email is part of a larger discussion I've been having on the Groovy user
list. Charles and I had discussed some things off-line, and he recommended I
post some questions here.
Feel free to respond to me off-list if you'd feel more comfortable.
A bit of background: I'm the CIO of a large (3500 strong) company in
Greensboro, NC. The company itself is not a technology company at all (we're in
aviation), but we do a significant amount of code running around and a
development team in-house. I came into the role by way of a long development
career turned dev mgmt career...so I'm probably more CTO than CIO, but that's
the name they gave me.
We've got a pretty significant investment in Java (around 1.1 M LOC). However,
Ruby has been cropping up here and there...primarily as a result of my
development of exploratory applications that ended up being placed into
production.
While I like Java, I've been a fan of more "dynamic" languages for some time. I
started in Perl long ago and have gone through PHP and Python. Finally found
Ruby, and it felt right.
Enough background. We're looking for a dyn language for the JVM, and our
research has come down to two choices: Groovy and JRuby.
I honestly like them both. Regarding Groovy, I like that the syntax is very
familiar to a Java developer, and I like the deep integration with Java.
However, I'm very concerned about performance of Groovy and haven't gotten the
most straight answers (yet) because I suspect to be honest in this regard would
be very painful for certain folks...especially while they're trying to foster
adoption of the language.
I like JRuby because it's Ruby and the JVM. Hey, your chocolate got in my
peanut butter. It's like the Resee's Cup of the Java world.
At my company, we absolutely need good integration with Java. Our primary
system is a very large Java-based ERP...my goal with Groovy or JRuby would be
to extract certain pieces of the application and re-write them in Groovy or
JRuby...then drop them back in the application as if they were first-class Java
classes. This, however, would not be the only use of integration.
So, I guess my two major wants are performance and Java-integration. I'm having
trouble understanding the boundaries you hit with JRuby. The Groovy guys seem
to have no boundaries, or very little, when compared to JRuby, and I want to
clearly understand these boundaries.
So, let me ask a few questions:
- Could you design a Swing application in, say, Matisse, and then use JRuby for
implementing the business logic that drives that application? i.e. instead of
using something like Cheri to write a Swing app entirely in Ruby...we would
seek a hybrid approach (some Java, some Ruby).
- Will 1.1, which appears to be the targeted release for the compiler to be
finished, allow us to compile our entire application to bytecode? I'm coming at
this this morning from an intellectual property perspective. If we can go all
the way to bytecode and not distribute any *.rb files in our app, then we
should be able to obfuscate that bytecode or use something like Excelsior Jet
to compile to native. We have a few applications that we may distribute outside
of our company, and IP protection will be important. I took a look at what
ThoughtWorks did with Mingle...it appears they've encrypted the *.rb files and
modified JRuby to decrypt them. However, seems like it would be relatively easy
to get access to the point where the code is decrypted and then stream it off,
so I'm not overly confident in this approach.
- What can't you do with Java integration and JRuby today?
- Why would you use Groovy over JRuby?
- Why would you use JRuby over Groovy?
Thanks for all your help guys.
John
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email