Dion Hinchcliffe's Web 2.0 Blog
Web 2.0 University

Blog Feed

Subscribe By E-Mail

Enter your email address:

Delivered by FeedBurner



Web 2.0 Expo San Francisco 2008 Speaker

Enterprise 2.0 Conference 2008 Speaker

Web 2.0 Strategies 2008 Speaker

    follow me

    Dion's Facebook Status

    Recent Readers

    Web 2.0 Ajax SOA Power Panel

    Web 2.0, Ajax and SOA Power Panel with Dion Hinchcliffe and Jeremy Geelan
    Click above to watch a SYS-CON Power Panel discussion on Web 2.0, Ajax, and SOA with Dion Hinchcliffe, Jeremy Geelan, and other industry notables including SOA Web Services Journal Editor-in-Chief, Sean Rhody. Taped on Dec 7th, 2005 from the Reuter's TV studio in Times Square.

     

    Public Calendar

    Ruby on Rails 1.1: Web 2.0 on Rocket Fuel

    posted Wednesday, 29 March 2006
    The much-anticipated new version 1.1 of Ruby on Rails hit the streets with fanfare a couple of days ago.  And while even I am wary of the hyperbole that sometimes surrounds Ajax and Web 2.0, I'm very pleased to say that Ruby on Rails is the genuine article.  Rails has become one of the real success stories in Web development in just the last year.  Built by 37signals' charismatic David Heinemeier Hanson and a host of contributors, Ruby on Rails has ascended to near-mainstream status nearly overnight.

    For those of you not familar with Ruby on Rails, and a lot of you won't be or have just barely heard of it, Ruby on Rails is a complete, open, and free application stack based on the Ruby programming language . This means it provides a complete solution for creating great online Ajax-based software of the kind that's pouring out on the Web these days . Rails includes advanced Ajax support, Web services, an amazingly taut and clean model-view-controller implementation, and automatic object-relational mapping.  Rails even includes seamless script.aculo.us and Prototype integration, as well as support for just about any database you will need.

    Ruby itself is one of the interesting stores in software development lately because it's a dynamic language, meaning that it isn't compiled and is somewhat more akin to Perl and Javascript than a traditional hardcore language like Java or C++ .  But that's where similaries to Javascript end since Ruby is an elegant object-oriented language designed to make programming easy and make routine software development tasks almost effortless.  In fact, when I did my C#, Java, and Ruby Web services development comparison last year, Ruby won hands down in development time, compactness, and generated by far the most readable code, even though it was the very first time I'd used it.

    Ruby on Rails 1.1


    Rails is a natural extension of these concepts in that it adds a framework to Ruby to make it maximally easy to build Web-based online software, with the single-minded intent of pushing complexity out to the edge cases.  To get a sense of how powerful Ruby is, my recent discussion (video here) with David Heinemeier Hannson at Real-World Ajax revealed that 37signals not only built their 5 world-class online applications purely with Ruby on Rails, but they support almost 400,000 users on just 13 servers

    Dion Hinchcliffe and David Heineimeier Hansson discuss Ruby on Rails 1.1But there are dozens and dozens of Web development products out there, many of them very good, so what makes Ruby on Rails so special?  One is that the Rails' design focuses on trying to make the common Web development tasks fall-down-the-stairs easy, and it invariably succeeds.  Like the Rails home page says, "Ruby on Rails is an open source Web framework that's optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration."  Rails proponents are reknowned for their plain spokeness and directness and the result of this attitude is clear throughout the framework. 

    Another real advance in Rails is the fact that it considerably reduces something called abstraction impedance.  Abstraction impedance is a fancy $20 phrase that describes the barrier that exists when crossing from one way of thinking to another.  Say the barrier of going from objects to databases, or Javascript to Ruby.  Abstraction impedance is a productivity killer that sucks up programmer time doing things that don't matter to what the application does.  So instead of providing solutions to your users, you're spending time converting information from one form to another.  Rails makes this go away by giving the programmer plain old objects to deal with, no matter if you're dealing with XML, relational database data, and now even Javascript in the browser.

    This takes us to the new features in Ruby on Rails.  As its biggest new feature, version 1.1 actually allows you to write your browser-side Javascript in Ruby.  Javascript is a notoriously finicky language that doesn't make it easy to create sophisticated Ajax appliations and that's why IDEs, frameworks, and tools are springing up everywhere to make it simpler.  Now Rails has just dropped one more complexity out of the process of building Web 2.0 software applications with RJS, the Ruby to Javascript compiler.

    I could spend a lot more time talking about the details of Ruby and Ruby on Rails but the important point to take away is that it puts extreme power in the hands of the average Web developer by collapsing  the common tasks from literally days to just hours or even minutes in some cases. I've seen some of the demonstrations in person (most recently Hansson's talk at Real-World Ajax) and am continually impressed by how fast and easily that working software can be created with Rails.  Creating blog or wiki software from scratch can literally take just a few minutes.

    Web 2.0 software development has its own set of expectations and best practices: rapid feature evolution, real-time feature monitoring, all functionality available in both the GUI and as Web services so others can use them in their own apps, and more.  Rails makes all of these easy to do using one of the highest productivity languages out there.  That's not to say Rails is perfect, it's so new it couldn't possibly be fault-free, but there is clear evidence today of its reliability, scalability and ease-of-use (once you get past a brief learning curve.)

    What's New In Rails: (complete list here)

    - RJS - Write your Ajax application's Javascript in Ruby
    - ActiveRecord++ - Rails' ActiveRecord is a powerful, automatic Object/Relational Mapping tool.  It gets a major steroid boost in Rails 1.1.
    - API Support - Adding an API for your Web 2.0 software is now even easier
    - New Integration Tests - Rails understands testing and adds even more automatic test support
    - Backwards Compatibility - Even with 500 new changes, old Rails apps will almost universally run in Rails 1.1

    If you're interested in picking up Ruby on Rails, here are twelve excellent tutorials that can get you started.  And finally, if you haven't bought all of this yet, take a look at this screencast.  It shows step-by-step how to develop a working blog application in Rails from scratch in just 15 minutes, complete with comments and an administration interface.  That's the power of Rails, it really does let you focus on delivering great online software and not get mired in details that don't matter.  In any case, Rails is so new it has almost no enterprise penetration.  But as the next generation of programmers uses it more and more, expect that to change, along with the way enterprises develop with Web technology.  Read here about all the issues of Rails and the enterprise on Hansson's Loud Thinking blog..

    In other news, my Web 2.0 Trends podcast with Microsoft's MSDN Channel 9 and  Ron Jacobs is now online.  I made it when I went to MIX 06 last week and it came out pretty well if I do say so myself.  Ron was a terrific host and we had a good time talking up the latest developments.


    ARCast on Web 2.0 Trends with Dion Hinchcliffe and Ron Jacobs


    What do you think of Rails?  Is it a Java and C# killer or just another Perl and PHP?

    links: del.icio.us    



    AddThis Social Bookmark Button

    1. Andrews left...
    Wednesday, 29 March 2006 12:09 pm

    The concept of abstraction is critical to enlisting the thousands of traditional developers who have not yet entered the web world. RoR’s contribution in this needs to be acknowledged, but so must Morfik’s www.morfik.com who has since last year been pushing the same barrow, though without requiring the adoption of yet another language. I noted that recently they opened up their website and claimed in their email to testers of which I am one

    • “The JavaScript AJAX Engine which will run in your browser and display the page, and the backend business logic was developed using the WebOS AppsBuilder’s Visual Designer. Just for fun we decided to use the Object Pascal language for this project, but as you know Morfik supports the four most popular development languages: C#, Java, Basic and Pascal.

    "Please note that this website and its applications were developed with not a single line of hand coded JavaScript by either the developer or Morfik R&D. The Morfik WebOS AppsBuilder does not piece together JavaScript code snippets. All the controls you use in designing your application or in the new website were written in a high level language and compiled to JavaScript. Is there anyone else in the world that can make a claim like this? Certainly not ATLAS, DOJO, Backbase, Bindows, ColdFusion, TIBCO or anybody else I know of".

    On the surface this claim holds up; I have not really looked into it. As a traditional developer, this soup of Web acronyms leaves me lost and cold. Do I need to go back to the days of pre-Visual Basic i.e. hand code for everything. Do I have to learn Ruby or some new language to create applications for the web? I am all for abstraction and I am interested to see RoR doing something about it, but why not with languages I already know?


    2. Jared Klett left...
    Wednesday, 29 March 2006 1:19 pm :: http://www.geek-boy.com/

    There's been a lot of FUD flying around the web lately that Java and other languages are being threatened by PHP and Ruby on Rails. The important distinction to make is that PHP and RoR are tailored to building web applications, while Java and C# are general-purpose programming languages that can do the same thing and more.

    So the question to ask is not "Will RoR kill Java and C#" but rather "Will RoR overtake Java, C#, and PHP as the method of choice to develop web applications?"

    Did Java kill C? nope. Will RoR kill Java? nope.

    To qualify my comments, I'm a Java developer that's written a couple of web applications in RoR in the last few months, and I love it.


    3. Means left...
    Wednesday, 29 March 2006 1:30 pm

    Because the benefits of Ruby far outweigh the difficulty of learning yet another language. The syntax is dead-on simple and very readable.


    4. bilbo left...
    Wednesday, 29 March 2006 1:32 pm

    What do you think of Rails? Is it a Java and C# killer or just another Perl and PHP?

    I think you should compare it to ASP.NET, not C#.


    5. JK left...
    Wednesday, 29 March 2006 1:37 pm

    While RoR will likely overtake web development as a framework of choice, I sure pray that Ruby will overtake Java and C# for everything else. :-)


    6. Andy A. left...
    Wednesday, 29 March 2006 1:38 pm :: http://www.collaboradate.com

    Ruby will really help developers make ideas reality. Hopefully more people will adopt the system.

    Andy Arnott CTO Collaboradate.com


    7. Nate left...
    Wednesday, 29 March 2006 1:43 pm

    Dear sir, you are an idiot. Let me know when RoR can do 2-phase commits, async messaging to legacy systems, etc, etc, etc, etc, etc... and when is the last time you saw a system running RoR that had a couple hundred thousand concurrent users doing "real" work?


    8. yes left...
    Wednesday, 29 March 2006 1:53 pm

    "they support almost 400,000 users"

    Including those 350,000 who created their account to see how it works and have it abandoned since.


    9. Foo Bad left...
    Wednesday, 29 March 2006 2:05 pm

    What would make you say that Rails is "near mainstream?"

    I think 37signals and the pragmmatic marketers would really like for it to be mainstream, there is clearly some buzz but that's not "main stream"

    Where are the major rails webapps that aren't made by 37signals?


    10. johnny cockran left...
    Wednesday, 29 March 2006 3:16 pm

    w3b 2.0 ru1135!!!!1


    11. kartbart left...
    Wednesday, 29 March 2006 3:17 pm

    Sheesh, this article is as dense as a Christmas fruitcake combined with a pound-and-a-half cake.


    12. Brent left...
    Wednesday, 29 March 2006 4:30 pm

    "they support almost 400,000 users on just 13 servers"... what a useless statistic. What does this mean? 400,000 concurrent users with active sessions using the system at the same time OR a user enrollment base of 400,000? Supporting an enrollment user base of 400,000 users on 13 systems is simply pathetic. So, basically 37Signals saved development time using Ruby on Rails but traded the gain for an enormous amount of hardware?


    13. corsica left...
    Wednesday, 29 March 2006 6:52 pm

    RoR is frightening some of you and I love that !


    14. Byron left...
    Friday, 31 March 2006 11:46 pm

    Supporting an enrollment user base of 400,000 users on 13 systems is simply pathetic.

    As you just admitted, it's a useless statistic without more info, so don't overcompensate the other way. How many of those are concurrent users, what's their bandwidth, how many db threads and how many reads and writes are they doing, etc. Of the servers, what's the breakdown of web/app/db servers? Etc. Enough with the misdirected negativity already.


    15. love to code left...
    Saturday, 1 April 2006 2:37 am

    sheeeez. YES, the RoR folks (should say kids) do need to calm down the hype machine.

    granted, RoR v1.1 stack does looks impressive, so i'm gonna have to take another stab at it.

    i installed Ruby and RoR and worked some tutorials over christmas and i did not like the syntax.

    first they made a point about Ruby not having any braces or delimiters and then the freakin' tutorials had both braces and delimiters, something about in-line function or something???

    ruby is very terse, and it looks powerful. as for me, Java and PHP and Javascript rule.

    as a professional, i will shake the RoR tree again, to see what all the noise is about.


    16. Kish left...
    Sunday, 2 April 2006 12:21 am :: http://www.ajaximpact.com

    With this version Ruby will be more and more popular in the developers community.


    17. Laurie left...
    Tuesday, 4 April 2006 12:48 am

    Discovered your Web2 blog today. Discovered Social Computing concept today. While business and government always try to keep us apart, a practice which minimises our group effectiveness in asserting our perspective, W2W might just be the concept that brings the citizenry together allowing us to become a concerted voice in the future management of our society. Maybe, just maybe we will be able to tell our 'elected representatives' what we think about things such as DAFUR and MODERN SLAVERY and our disgust that nothing is ever really accomplished d apart from window dressing. W2W might just be the technology that enables a sufficiently deep global groundswell of opinion that will encourage our 'elected representatives and other dictators' to do something for future society. Perhaps they would even add it to their priority list immediately below fullfilling their obligations to their backers and securing their own future. Better still! W2W might enable candidates to reach enough voters without the huge flood of $$ currently necessary to stand any chance of getting elected. I think we had better be sure we know who has their hands on the switch; somebody will want to be able to switch this thing off if it gets to troublesome for them.


    18. Michael left...
    Thursday, 20 April 2006 8:47 pm :: http://seog.net

    Dion -- Watched the video, thanks for the insightful interview!

    To me Ruby on Rails is opening the possibility that there will be more developers who can focus on making true web *applications* and not merely web pages. For so much of the life of the web so far, pages have been this static, dead thing, not really an alive experience to interact with. By making javascript/ajax and many of these dynamic aspects easier to do, I believe it is going to open up many other ventures and make for a friendlier web. Its not that you couldn't do this in other places before -- but the elegance and ease of support means you will see a lot more chances at it and hopefully, a lot more useful web applications :)


    19. Pradeep left...
    Thursday, 27 April 2006 3:16 am :: http://aatish.blogsome.com/

    >> What do you think of Rails? Is it a Java and C# killer or just another Perl and PHP?

    What do you mean by Just another Perl (or PHP)?

    ;-)


    20. Mark Jumaga left...
    Saturday, 29 April 2006 1:17 pm :: http://www.backupbutler.com

    Guys. Java uses byte code and is write once execute anywhere, any operating system. The Java JVM is necessary for Ruby installation. This is the definition of hype - outrageous statements that when reviewed at a lower level reveal profound misinformation. When it works with Oracle, which it dosen't (yes the ruby oracle oci8 interface is problematic) then it will be enterprise strength. Till then .. waste your time learning a new programming language limited in it's ability to interface with existing databases, and plan to wait for a few years to get the rest of the tools to get the job 100% finished.


    21. Michael Stolovitzsky left...
    Tuesday, 6 June 2006 4:32 am

    Stop lying, you don't need JVM for Ruby installation.


    22. Ruby on Rails left...
    Friday, 1 September 2006 12:27 pm :: http://rubyonrailsblog.com

    Rails would compare better with j2ee and php than php imo. And you dont need JVM for Ruby. ^