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

Reply via email to