Why Ruby on Rails is the perfect framework for building next generation Enterprise Apps

June 4th, 2007 37 Comments

Despite what Joel has to say on this topic, I think Rails is ready for the enterprise. And companies who create enterprise apps should definitely be looking at Rails. Here’s why…

Having worked with PeopleSoft for over ten years, I’ve had the pleasure to experience the joy in building enterprise applications with a rapid and productive environment called PeopleTools. Although PeopleTools is now out-dated in comparison to more modern frameworks, it was (and still is) the most productive development framework I’ve ever worked with (i.e., for building enterprise applications).

Over the past several years, I’ve kept myself up-to-date with new programming languages, frameworks, and platforms and have seen lots of innovation in different areas. Some of it has been relevant to the enterprise, and some not. In the last decade, much of what’s influenced the enterprise software industry are ideas and products that have been successful on the web. PeopleSoft and its peers ported their client-server apps to the web because of the value it posed to its customers — cheaper and easier deployment of software. Today, the web continues to be the most disruptive influence on the enterprise.

The enterprise, however, is a very rigid landscape. Not much changes in this landscape unless it’s absolutely beneficial to the organization’s bottom-line. Today (and throughout the past decade), Java, XML, WS-*, SOA, and other ambiguous acronyms have been touted as the gold standard in the enterprise. An entire industry spins its wheels around this gold standard trying to make the promises of improving efficiency and productivity a reality. In my opinion, this gold standard is in need of change.

It might seem like I’m late to the party, but I’ve actually been tinkering with Rails since it’s 1.0 release, but as with any new emerging technology, you have to let it ferment a bit to see if it still smells pretty… especially when thinking of how it might affect the enterprise. Things move slow in the enterprise and there’s lots of red tape everywhere to make sure that the gears rotate at a slow clip. Most decisions are made by committee and if one party disagrees, it’s a show-stopper. So, getting Rails in the enterprise is not an easy thing to do. But you’re probably wondering why I think Rails is such a big deal for enterprise apps — at least for people who have to write enterprise apps. I’m not going to write about why Rails is an important technology. It’s been done, over, and over. What’s important to know is what Ruby is up against — the gold standard, Java. There’s been lots of feuds between the Java and Rails camps over the past few years and most of it is childish. It is obvious though that Rails struck a chord for many Java developers. Some have decided to join the Ruby camp, and some have held out thinking that this is just another fad. Well, I don’t think it’s a fad. Here’s my reasoning:

  1. Ruby on Rails is a super-productive environment for developing applications. It’s faster to build apps in Rails than in Java or .Net, hands down.
  2. Ruby is a powerful, easy to learn, fully object oriented language. Rails is nothing without Ruby.
  3. All the performance issues that Twitter (most popular Rails app known to man) is/was facing is not really relevant for enterprise apps. Point me to one enterprise application deployment needing to perform 11k requests per minute second. Per Tim Bray, “Right now, Ruby and Rails, out of the box with not much tinkering, are plenty fast enough for lots of applications. I mean, really a lot of applications”
  4. JRuby. Java is not going to fade away. It is and will continue to be an integral part of the enterprise. JRuby allows Rails to fit into that environment and leverage the hell out of it.
  5. Ruby’s community is growing by leaps and bounds every day… and so are its gems (libraries), plugins, etc.

I’ve built many applications with PeopleTools, which has many similarities to Rails (with regards to productivity for developers). It’s still a good framework for building applications (arguably the best in its class), but it is behind the times. I see Rails as the next logical step in the enterprise apps business. Although, this might just be wishful thinking on my part.


Possibly Related Posts

37 Responses to “Why Ruby on Rails is the perfect framework for building next generation Enterprise Apps”

  1. Scott Becker - Synthesis Says:

    del.icio.us/joydivider AppleInsider | Apple to adopt ZFS as default file system for Leopard Oracle AppsLab » Why Ruby on Rails is the perfect framework for building next generation Enterprise Apps Firewall Builder Optimizing Queries with EXPLAIN FlexTime 2 OS X timers to watch: Flextime & Meridian | 43 Folders Amazon Web Services Blog: Start Crunching – Create Mashups using MapCruncher and Render on S3

  2. Vertical Hold Says:

    Oracle AppsLab » Why Ruby on Rails is the perfect framework for building next generation Enterprise Apps

  3. 우승이의 블로그 :: Says:

    또다른 웹2.0 어플리케이션에 적합한 언어 및 프레임워크로써의 루비 & 레일즈에 대한 개발 생산성에 대한 흥미로운 사례인 것 같습니다. 이 친구가 왜 레일즈가 차세대 엔터프라이즈 어플리케이션 프레임워크 인지에 대한 포스팅도 한번 읽어 보시길 바랍니다. 10년 이상 피플소프트웨어 기반의 엔터프라이즈 어플리케이션을 개발한 경험자로써 저와의 생각과도 많이 일치하는 것 같아서 반갑기도

  4. tomtaylor.co.uk Says:

    Recently Read [IMG Feed icon] Why can’t events be more like Facebook? ( at Amnesty International) I went to this. I’ll blog about it later.Oracle AppsLab » Why Ruby on Rails is the perfect framework for building next generation Enterprise AppsglTail.rb – realtime logfile visualization Watch Rails/Apache logs fly past the screen in OpenGL.Confluence4r Rails Plugin – Confluence Extension – Confluence Cycling in the square mile | Evening Standard

  5. Raimonds Says:

    For many years I have been managing plenty of Oracle E-Business Suite implementation projects for our customers. And recently I have been studying Ruby on Rails and I am really enjoying it.

    So I can compare current PL/SQL and Java technologies in EBS vs RoR and I see that RoR really would be much more productive environment for building enterprise applications.

    But so far as I have seen Oracle is building new Fusion applications just on Java technologies and currently I do not see that Oracle is considering using more productive dynamic languages for that.

    Do you have any “inside” information if Oracle is considering Ruby or some other dynamic languages for their Fusion applications platform (or at least some part of it)?

  6. Raimonds Says:

    For many years I have been managing plenty of Oracle E-Business Suite implementation projects for our customers. And recently I have been studying Ruby on Rails and I am really enjoying it.

    So I can compare current PL/SQL and Java technologies in EBS vs RoR and I see that RoR really would be much more productive environment for building enterprise applications.

    But so far as I have seen Oracle is building new Fusion applications just on Java technologies and currently I do not see that Oracle is considering using more productive dynamic languages for that.

    Do you have any “inside” information if Oracle is considering Ruby or some other dynamic languages for their Fusion applications platform (or at least some part of it)?

  7. Robert Dempsey Says:

    Rich,

    Thank you for a great article. I agree with a lot of what you say, and believe too that language wars are pointless. At ADS, we are looking a lot into JRuby, and I have posted a tutorial on the ADS blog as well. I look forward to deeper language integration and the spread of Rails into the enterprise.

    - Robert Dempsey

  8. Robert Dempsey Says:

    Rich,

    Thank you for a great article. I agree with a lot of what you say, and believe too that language wars are pointless. At ADS, we are looking a lot into JRuby, and I have posted a tutorial on the ADS blog as well. I look forward to deeper language integration and the spread of Rails into the enterprise.

    - Robert Dempsey

  9. Stevo Says:

    It’s far easier to create such a productive suite such as PeopleTools / PeopleSoft did when you control the whole stack! Comparing it to building an enterprise web application, utilizing at least 5 different technologies(html, css, javascript, xml, json) for the front end alone is comparing apples to elephants.

    Not that everyone is successful! Peoplesoft did a good job. But w/ them building everything down the a proprietary language…all the elements are in place!

    I agree, Rails has its place and I can think of a number of places it can be used for corporate internal apps. But would I use it to build the high profile, mission critical app avail 24×7 worldwide? No…

    I’ve done rails, django, and java enterprise for a long time. IMHO, if you are building a crud app, it’s very fast to do the same in java, esp if you leverage a stack like appfuse, or use hibernate / ibatis to generate your persistence layer. most of the dev time is spent in the UI’s

  10. Stevo Says:

    It’s far easier to create such a productive suite such as PeopleTools / PeopleSoft did when you control the whole stack! Comparing it to building an enterprise web application, utilizing at least 5 different technologies(html, css, javascript, xml, json) for the front end alone is comparing apples to elephants.

    Not that everyone is successful! Peoplesoft did a good job. But w/ them building everything down the a proprietary language…all the elements are in place!

    I agree, Rails has its place and I can think of a number of places it can be used for corporate internal apps. But would I use it to build the high profile, mission critical app avail 24×7 worldwide? No…

    I’ve done rails, django, and java enterprise for a long time. IMHO, if you are building a crud app, it’s very fast to do the same in java, esp if you leverage a stack like appfuse, or use hibernate / ibatis to generate your persistence layer. most of the dev time is spent in the UI’s

  11. Lars Borup Jensen Says:

    Arguing RoR is ready for Enterprise Apps you have to define an enterprise app!

    1) Ruby on Rails is a super-productive environment for developing applications. It’s faster to build apps in Rails than in Java or .Net, hands down.

    Well – Rails is a web-app tool, comparing it to Java or .Net is like comparing apples and oranges. You should be comparing RoR and JSF, Tapestry, Ripes (insert your favorite Java or .Net web framework here).

    2) Agree.. totally

    3) Again – you have to define enterprise app. I can easily point you to an enterprise app which should/and is capable of handling MORE than 11k request pr. minute (think corporate back-bone CICS like systems and you’ll see WAY more requests)

    4) Yes – Rails of JRuby will help the Rails fw to spread. Its the JVM platform that is really interessting.

    5) Sure (I dont know – don’t follow Ruby nor Rails much)

    Still – Not being much of a Rails kinda guy can you easily write and deploy remote (RPC style) entities with transactional contexts (2PC) and such in Rails.. Else I declare: NO CONTEST!

  12. Lars Borup Jensen Says:

    Arguing RoR is ready for Enterprise Apps you have to define an enterprise app!

    1) Ruby on Rails is a super-productive environment for developing applications. It’s faster to build apps in Rails than in Java or .Net, hands down.

    Well – Rails is a web-app tool, comparing it to Java or .Net is like comparing apples and oranges. You should be comparing RoR and JSF, Tapestry, Ripes (insert your favorite Java or .Net web framework here).

    2) Agree.. totally

    3) Again – you have to define enterprise app. I can easily point you to an enterprise app which should/and is capable of handling MORE than 11k request pr. minute (think corporate back-bone CICS like systems and you’ll see WAY more requests)

    4) Yes – Rails of JRuby will help the Rails fw to spread. Its the JVM platform that is really interessting.

    5) Sure (I dont know – don’t follow Ruby nor Rails much)

    Still – Not being much of a Rails kinda guy can you easily write and deploy remote (RPC style) entities with transactional contexts (2PC) and such in Rails.. Else I declare: NO CONTEST!

  13. Tim Goeke Says:

    The problem with development of great enterprise applications has very little to do with the speed at which the problem can be expressed in a language. Developer productivity is much more closely related to design and determining what to code. The actual act of coding could be as little as 20% of the total time during the SDLC.

    The other consideration is scability and support. I’ve looked at Twitter and they don’t get 11K messages per minute – looks like more like 11K requests per hour.

    The messages are pretty small. What if you get 4 million messages per hour and each message is 200K, not 140 characters as with Twitter. Or you need to support 15,000 simultaneous user sessions.

    The hardware required is extreme, eBay has 2000 J2EE servers. If they were running Rails, I think they would need 4000+ servers. These things aren’t free and they cost for a long time.

    If Ruby could be used to create features that simply could not exist in Java, then go for it. Just remember the time saved for a few developers is being offset in continuous server maintenance for twice as many servers. All for the convenience of a few hours of coding?

    Think about it.

  14. Tim Goeke Says:

    The problem with development of great enterprise applications has very little to do with the speed at which the problem can be expressed in a language. Developer productivity is much more closely related to design and determining what to code. The actual act of coding could be as little as 20% of the total time during the SDLC.

    The other consideration is scability and support. I’ve looked at Twitter and they don’t get 11K messages per minute – looks like more like 11K requests per hour.

    The messages are pretty small. What if you get 4 million messages per hour and each message is 200K, not 140 characters as with Twitter. Or you need to support 15,000 simultaneous user sessions.

    The hardware required is extreme, eBay has 2000 J2EE servers. If they were running Rails, I think they would need 4000+ servers. These things aren’t free and they cost for a long time.

    If Ruby could be used to create features that simply could not exist in Java, then go for it. Just remember the time saved for a few developers is being offset in continuous server maintenance for twice as many servers. All for the convenience of a few hours of coding?

    Think about it.

  15. Nick Halstead Says:

    I think you missed the point of what Joel was saying. He basically said that until Rails has been used for a few more years nobody is going to really know if Rails is mature enough to go enterprise.

    Point 3. I think you underestimate the number of hits that some ‘enterprise’ services cope with.

    E.g.
    Sainsburys (or any other big supermarket online system)
    bt.com (mainly run on weblogic, but mostly customer facing)

    I think you will find both of these easily have to cope with 11k+ per min.

    And I cannot possibly imagine either of these companies taking a gamble on building using Rails. And Joel was just showing that he thinks with his business head first, putting risk before ‘whats hot’.

    I like Rails & Ruby but for enterprise it is not proven compared with (C#, Java, PHP, or Python).

  16. Nick Halstead Says:

    I think you missed the point of what Joel was saying. He basically said that until Rails has been used for a few more years nobody is going to really know if Rails is mature enough to go enterprise.

    Point 3. I think you underestimate the number of hits that some ‘enterprise’ services cope with.

    E.g.
    Sainsburys (or any other big supermarket online system)
    bt.com (mainly run on weblogic, but mostly customer facing)

    I think you will find both of these easily have to cope with 11k+ per min.

    And I cannot possibly imagine either of these companies taking a gamble on building using Rails. And Joel was just showing that he thinks with his business head first, putting risk before ‘whats hot’.

    I like Rails & Ruby but for enterprise it is not proven compared with (C#, Java, PHP, or Python).

  17. Why Ruby on Rails is the perfect framework for building next generation Enterprise Apps Says:

    [...] gst via oracleappslab.com Submitted: Jun 05 / 05:15 Why Ruby on Rails is the perfect framework for building next generation Enterprise Apps Despite what Joel has to say on this topic, I think Rails is ready for the enterprise. And [...]

  18. Leo Says:

    “Rails is nothing without Ruby.” I strongly disagree with that comment! In fact, I would argue that Ruby is nothing without Rails!

    If Ruby were such a gem in and of itself then it would not have taken it over a decade to get above marginal recognition. As a scripting language Ruby has never achieved the popularity of Perl or even Python. So were it not for Rails, Ruby would have remained an unremarkable scripting language without JRuby or other efforts that seems to pop-up on daily basis.

  19. Leo Says:

    “Rails is nothing without Ruby.” I strongly disagree with that comment! In fact, I would argue that Ruby is nothing without Rails!

    If Ruby were such a gem in and of itself then it would not have taken it over a decade to get above marginal recognition. As a scripting language Ruby has never achieved the popularity of Perl or even Python. So were it not for Rails, Ruby would have remained an unremarkable scripting language without JRuby or other efforts that seems to pop-up on daily basis.

  20. StumbleUpon » Your page is now on StumbleUpon! Says:

    [...] Your page is on StumbleUpon [...]

  21. Eelco Hillenius Says:

    Sure. Rails is as ready for the enterprise as PHP is.

    Whether Rails is *the perfect* tool for the enterprise? Well… only if you think static typing should be put on the stack of useless programming concepts (you don’t care about the IDE goodies that gets you, and you believe unit testing is a perfect replacement for a compiler), if you don’t believe in a strict separation of logic and presentation (you don’t work with separate designers and/ or you just reproduce pages from photoshop designs), if you don’t believe in object orientation in the view layer (you’d rather program to a ‘stateless’ model), if you don’t believe in self contained components (reusability is overrated), etc, then I guess, yes, Rails is the perfect tool for you. :)

  22. Eelco Hillenius Says:

    Sure. Rails is as ready for the enterprise as PHP is.

    Whether Rails is *the perfect* tool for the enterprise? Well… only if you think static typing should be put on the stack of useless programming concepts (you don’t care about the IDE goodies that gets you, and you believe unit testing is a perfect replacement for a compiler), if you don’t believe in a strict separation of logic and presentation (you don’t work with separate designers and/ or you just reproduce pages from photoshop designs), if you don’t believe in object orientation in the view layer (you’d rather program to a ‘stateless’ model), if you don’t believe in self contained components (reusability is overrated), etc, then I guess, yes, Rails is the perfect tool for you. :)

  23. Rich Manalang Says:

    Lars, you’re right… I need to define what I mean when I refer to an “enterprise app.” In this case, I’m referring to the “ERP” type of enterprise app. Vendors like us, SAP, and others have typically built on a stack, whether it’s proprietary or open. These are the type of pre-packaged apps I was targeting with my article.

    Rich

  24. Rich Manalang Says:

    Lars, you’re right… I need to define what I mean when I refer to an “enterprise app.” In this case, I’m referring to the “ERP” type of enterprise app. Vendors like us, SAP, and others have typically built on a stack, whether it’s proprietary or open. These are the type of pre-packaged apps I was targeting with my article.

    Rich

  25. Rich Manalang Says:

    Tim, re: Twitter’s traffic. I actually screwed up. I meant to type in 11k requests per SECOND. That’s a lot.

    http://www.google.com/search?q=twitter+11k+per+second

    Rich

  26. Rich Manalang Says:

    Tim, re: Twitter’s traffic. I actually screwed up. I meant to type in 11k requests per SECOND. That’s a lot.

    http://www.google.com/search?q=twitter+11k+per+second

    Rich

  27. 한RSS Says:

    [...] 거부하기.Google Keeps tweaking Its Search EngineDesign Tip: Localize your Object Creation LogicWhy Ruby on Rails is the perfect framework for building Next Generation Enterprise App”하고 싶은 일이 있으면, 저질러 버리세요” – 앨빈 토플러 강연회 차세대 웹 [...]

  28. Oracle AppsLab » Why Ruby on Rails is the perfect framework for building next generation Enterprise Apps Says:

    [...] Why Ruby on Rails is the perfect framework for building next generation Enterprise Apps [...]

  29. rick Says:

    Re: Joel and his “points”. Joel spends a few thousand words telling you why you need to do your critical stuff in one of the few N + .5 languages, and then admits without irony that they rely primarily on a closed-source in-house Invented Here bastardization of BASIC to write their bug-tracker that noone publicly will admit to actually using. Whatever.

    Anyway, Java isn’t going away, PHP isn’t going away, .NET isn’t going away, Python isn’t going away, and Ruby is only going to get vastly more popular. What I would prefer to see is people realizing that and striving for more interoperability. As a heavy Ruby user in a shop that uses Oracle, I’d love to see Oracle actually contribute more than blogging commentary to the Ruby environment — i.e., actually take a look at the OCI Ruby adapter, at the Rails Oracle adapter, or even release a damned Intel Mac Instant Client library since it seems that a sizeable fraction of Rails developers are on Mac and the vast majority of those are on Intel Mac.

    Thanks,
    Rick

  30. rick Says:

    Re: Joel and his “points”. Joel spends a few thousand words telling you why you need to do your critical stuff in one of the few N + .5 languages, and then admits without irony that they rely primarily on a closed-source in-house Invented Here bastardization of BASIC to write their bug-tracker that noone publicly will admit to actually using. Whatever.

    Anyway, Java isn’t going away, PHP isn’t going away, .NET isn’t going away, Python isn’t going away, and Ruby is only going to get vastly more popular. What I would prefer to see is people realizing that and striving for more interoperability. As a heavy Ruby user in a shop that uses Oracle, I’d love to see Oracle actually contribute more than blogging commentary to the Ruby environment — i.e., actually take a look at the OCI Ruby adapter, at the Rails Oracle adapter, or even release a damned Intel Mac Instant Client library since it seems that a sizeable fraction of Rails developers are on Mac and the vast majority of those are on Intel Mac.

    Thanks,
    Rick

  31. stone mind » Exploring “JRuby on Rails” as an Alternative to Django Within a Java Environment. Says:

    [...] Why Ruby on Rails is the perfect framework for building next generation Enterprise Apps [...]

  32. Blinking (Oracle AppsLab » Why Ruby on Rails is the perfect framework for building next generation Enterprise Apps) Says:

    [...] No account? Create One! Username: [...]

  33. The Programming and Management Blog » Developer Links for 10/06/2007 Says:

    [...] If you’re new here, you may want to subscribe to my RSS feed. Thanks for visiting!Joel recently commented that Rails was not yet ready for the enterprise. This article tries to fight Rail’s corner. I actually added a comment because I feel Joel is right and that Rails still has a few more years to prove itself. Look how long it has taken for PHP to start encroaching on the enterprise arena. It is a bit early for Rails (and its users) to expect it to be adopted by big business. Why Ruby on Rails is the perfect framework for building next generation Enterprise Apps [...]

  34. One size doesn't fit all: 4 things I read more recently Says:

    [...] RoR has been getting a bit of hard going over more recently from Joel, and in turn a reply from the Oracle AppsLab blog. Reminds me of the Apex vs JDev argument I (accidentally) started sometime back.The Cyclists – [...]

  35. marcus / Rails e o ambiente corporativo (rails corporativo erp soa oracle) Says:

    [...] Matéria Original: Why Ruby on Rails is the perfect framework for building next generation Enterprise Apps [...]

  36. Discover From Your Favorite Topic or Web Page: random-data.rubyforge.org/ Says:

    [...] http://seattlerb.rubyforge.org/ar_mailer/ (rails plugin ruby email) Bookmark  [Discover] Oracle AppsLab » Why Ruby on Rails is the perfect framework for building next generation … [...]

  37. Rails versus Oracle APEX - Dogpile Web Search Says:

    [...] Austin to San Antonio Sponsored by: http://www.cmwtexas.com/ &#149 Found on Ads by Google Why Ruby on Rails is the perfect framework for building next … … e., actually take a look at the OCI Ruby adapter, at the Rails Oracle … over more recently [...]

Leave a Reply