BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News InfoQ Article: Enterprise-Ruby Wish List

InfoQ Article: Enterprise-Ruby Wish List

Bookmarks

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
Style

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.

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

Community comments

  • GoldenHammerFactory

    by Jaan Oras,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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: manuals.rubyonrails.com/read/book/17

  • Right Tool for Problem

    by Christoph Henrici,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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 Pre,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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.

    -Abhijit

  • Re: GoldenHammerFactory

    by Jaan Oras,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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,

    Your message is awaiting moderation. Thank you for participating in the discussion.

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

  • On Message Queuing

    by Brian McCallister,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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 :-)

    -Brian

  • Re: My Wishlist

    by Abhijit Deb,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Maciek,

    I find it quite horrible to be able to do:

    a = Array.new

    a << 1
    a << "hello"

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

    Thanks,
    -Abhijit

  • Re: My Wishlist

    by J. B. Rainsberger,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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,

    Your message is awaiting moderation. Thank you for participating in the discussion.

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

  • Re: My Wishlist

    by Abhijit Deb,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    try running a.sort

  • Re: My Wishlist

    by Mike Berrow,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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.

    www.humbleblogger.blogspot.com/

  • Re: My Wishlist

    by Jonathan Allen,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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,

    Your message is awaiting moderation. Thank you for participating in the discussion.

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

  • Re: Behind the firewall enterprise development

    by Roger Pack,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I want speed and more speed :)

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

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

BT