InfoQ Article: Enterprise-Ruby Wish List

| by Obie Fernandez Follow 0 Followers on Oct 04, 2006. Estimated reading time: less than one minute |

In all the recent talk (some would say hype) about the Ruby programming language,relatively little has been said about Ruby's usefulness in enterprise development shops, but that is beginning to change. Francis sidesteps the usual debate by turning the question around. What do enterprise developers need, that they're not getting from their tools today? Based on the answers to that question, he looks at what Ruby currently has to offer in the area of entrprise infrastructure.

Read Enterprise-Ruby Wishlist

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

GoldenHammerFactory by Jaan Oras

So you are saying that we need a copy of J2EE? I cant see why. Its not the language that kills the developers in J2EE. Its the arhitecture that is just too complicated for most tasks and then there is a huge marketing force that pressures managers to include every possible tehnology in every project. For short, its the J2EE way of making complicated solutions for simple problems.
I believe in using right tool for the job. Java, XML, SOA are not the solutions for every problem. Just like Ruby isnt. Though i have a feeling that ruby will replace many enterprisey solutions for simple problems.

btw. about rails deployment:

Right Tool for Problem by Christoph Henrici

I do not agree with the critia simple versus complex for choosing ruby or java as the development language. I believe the choice boils down too - from a language perspective - , does the problem domain require type safety, or not. Ruby would'nt be my primary choice for example for a accounting system of a medium to large enterprice. Java - especially since JDK 1.5 - would be more likely. Not so much a matter of preference, but avoiding a whole bunch of errors, which are a possibility in languages, which don't do type checking at compile time.
That said, i really believe, that ruby very much has a room in the enterprise computing area, even for complex systems (...even more?) and also in combination with Java (JRuby).
Therefore i really appreciate and agree with the Enterprise Ruby Wish List. From my perspective the IDE is one of the critical paths. You simply can't do any large scale development without the refactoring capabilites a Java IDE takes for granted now a days. Compare Eclipse Ruby Workbench by RubyPeople - which is great for a start - with the Java Workbench.....

Re: Right Tool for Problem by Todd P

I think the biggest needs are the ability to integrate into existing enterprise systems. This way Ruby can initiate in smaller projects, maybe integration glue and expande from there.
To Chris above: I think the biggest reason why dynamic languages (like Ruby) are getting more popular now and have people thinking about using them in more ambitious ways has to do with agile development methodologies and the advent of writing developer tests. Regarding your accounting system, I guarantee that I could write a bunch of Java code that compiles, but it still riddled with bugs. The only way to have faith that the code is good is to have a rich test suite that can be run in JUnit. It's because of this desire now to have all these developer tests written that dynamic languages are gaining so much momentum (and why they can). Who cares what the compiler tells you...if you've written your test suite proberly, it'll let you know whether the code actually works or not, whether it's compiled or not. I'm sure in several more years, people will be saying...type safety? Bah.

Re: IDE and Refactoring by Maciek Makowski

It's not quite fair to compare Eclipse Ruby feature with Eclipse Java SDK. Refactoring features in Java and C# IDEs rely on the possibility to statically analyse the code. As far as I can see it is not possible to implement something equivalent for a dynamic language. I guess increasing popularity of Ruby, Python etc. calls for new types of IDE tools.

Re: GoldenHammerFactory by Faui Gerzigerk

I don't agree at all. The J2EE architecture is complicated because the Java language doesn't have the meta programming facilities required to let framework developers, application developers and deployment/management staff work together in a consistent and productive manner. Ruby's meta programming features replace deployment descriptors, aspect oriented programming, byte-code post processing, all the dynamically typed expression languages (JSP-EL, etc) and a lot of other things.

Contrary to what you say, I think Ruby is nice to have for simple problems, but where it's really desparately needed is the the complex problems of enterprise development, and the even more complex problems of inter-enterprise integration.

Don't worry, Ruby is not going to be damaged if and when things like distributed transactions, messaging, SOA and proper unicode support are put in place.

Re: Right Tool for Problem by Jaan Oras

I did not say that level of complication is the criteria, its too vague anyway. There are many others: size of your code, need for clustering and transactions etc.

I did say that there is no such thing as a simple j2ee solution. For example, even for most simple piece of software you must write a lot of xml(untestable and not checked at compile time). I have nothing against Java the language(ok, maybe i find it a bit boring) or against j2ee technologies, but i must admit i really dislike enterpricey attitude of killing flys with cannons. And i dont want that attitude in ruby community that is still fun and pragmatic.

But I agree with you on IDEs and JRuby+Java combination. And with Todd on the integration problem. I for one would like to have a JMS binding for Ruby.

And i wont touch the type safety flamebite. I dont think its relevant in this discussion.

My Wishlist by Abhijit Deb

We need a a ruby TM for supporting 2-phase commit.

Ruby as a language has arrived, but I guess support for type safety is as weak as in any other languages. Do we not need generics? The meta programming feature should give us an elegant generics implementation. Some of the available generics support looks complicated - unlike ruby.


Re: GoldenHammerFactory by Jaan Oras

Yes, lot of the things could be made simpler using rubys metaprogramming but many things in j2ee could be done simpler in java. But they just dont do it for some reason. They prefer configuration to convention.

Re: My Wishlist by Maciek Makowski

I'm not sure I understand. Are you suggesting adding static typing to Ruby?

On Message Queuing by Brian McCallister

You can work with ActiveMQ right now. Out of the box it includes the Stomp transport enabled, which has a gem for ruby (gem install stomp) and is qute easy to use :-)


Re: My Wishlist by Abhijit Deb


I find it quite horrible to be able to do:

a =

a << 1
a << "hello"

The second statement at least provide us some kind of warning, if not error.


Re: My Wishlist by J. B. Rainsberger

I don't mean to be rude, but if you find it horrible that a list can contain 1 and "hello", then you should stick with BASIC. If you force items of arrays to have a common type, then you force interfaces on the language, and if you do that, you defeat the entire purpose of Ruby. Sorry.

Exactly how much serious Ruby code have you written? Before you critique the language, you might consider writing some serious code in it.

Take care.

Re: My Wishlist by Mickael Faivre-Macon

a << 1
a << "hello"
That's exactly what I like about Ruby, compared to C for example.

Re: My Wishlist by Abhijit Deb

try running a.sort

Re: My Wishlist by Mike Berrow

Just use
a.sort {|x,y| x.to_s <=> y.to_s }

or, if you want to keep that fixture around,
save it in a Proc like so:
as_str = lambda {|x,y| x.to_s <=> y.to_s }

Then reference it like this:
a.sort &as_str

You can alter the block to perform whatever ordering
of a mixture of strings and integers makes sense
for you.

Behind the firewall enterprise development by Roger Voss

I develop strictly behind-the-firewall enterprise distributed software systems. My distributed applications are all heavily event driven and absolutely depend/require bi-directional (JMS) messaging. There is no web development - only .NET rich clients and embedded devices (which those are currently programmed via C# .NET Compact Framework) coupled to Java for the middle-tier. As such Ruby on Rails (and all web frameworks) are of zero interest to me.

I programmed in perl for several years and am keenly aware of how rapidly software can be developed in type permissive scripting languages.

So this article's first paragraph very much piqued my interest. I was keen to see if Ruby had anything to offer an enterprise developer in my shoes.

Alas, by the time I got to the end of the article I was very disappointed. The article indeed amounted to almost entirely a wish list for Ruby.

As things stand, I'm getting adequate scripting language utility out of Groovy. It runs on my JVM and integrates wonderfully with my Java software systems. Great for testing and prototyping. (I still use perl to craft any special build environment tool infrastructure.)

I admit Ruby is a cleaner language than perl (but perl has a ton of useful features that still set it apart and enable it with tremendous utility as a general purpose scripting language).

No doubt web jockeys have much to be excited about in regard to Ruby and to Rails. Yet for enterprise developers such as myself Ruby still remains pretty much a non event as there is just nothing new and useful that I don't already have access to with my current arsenel of tools/languages. Besides, Groovy has captured my attention much more so than Ruby (or JRuby). It has a lot more to offer to what I do programming-wise today.

Re: My Wishlist by Jonathan Allen

I don't mean to be rude, but if you find it horrible that a list can contain 1 and "hello", then you should stick with BASIC.

Um, excuse me.

Most variants of BASIC still in wide use, including VB and VB.Net, are late bound. You can stick anything you want into a Collection or Dictionary and the compiler won't blink an eye.

Re: My Wishlist by J. B. Rainsberger

I apologize. When I say "BASIC", I think of my much-hallowed WATCOM BASIC days.

Re: Behind the firewall enterprise development by Roger Pack

I want speed and more speed :)

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

19 Discuss