Why you should start learning Ruby on Rails

Ruby on Rails (or RoR) is a web-application framework that is rapidly gaining acceptance among web application developers. Even Java and PHP experts are recommending Ruby on Rails because of its capability to build applications with less time and effort compared to Java and PHP.

While it is true that Ruby on Rails is still not as popular as Java and PHP, there is a growing online Filipino Ruby community evangelizing its use, and several companies have been started with Ruby on Rails as its platform. There is also the demand for outsourced projects from the US and Europe who are looking for Ruby on Rails developers.

Ruby on Rails is a web-application framework written in the programming language Ruby. Ruby is a high-level, completely object-oriented programming language designed and written primarily by Japanese Yukihiro Matsumoto (or ‘Matz’ in the open-source community). It is has seen an increasing adoption from programmers (especially in the US and Europe) because of its clean and elegant design.

Ruby on Rails is full stack framework with all the necessary infrastructure API to build web applications already available – database interface, request-handling, view templating, email and web-services. Ruby on Rails has been featured in Dr. Dobb’s Journal and a Linux World Journal issue was dedicated to it. Its primary author, David Heinemeier Hansson, has received the coveted ‘Hacker of the Year’ award from Google and O’Reilly last year.

Why Ruby on Rails

  1. Ruby is very easy to learn

    The programming language Ruby is a big factor in the success of Ruby on Rails although RoR by itself has great merits. Ruby has a simple and brief syntax that makes it easy to use by programmers. If you have written programs in C++, Java, and PHP before, using Ruby will definitely make you feel you have accomplished more in less time. The only other language I have experienced of that’s in the same league as Ruby’s simplicity and elegance is Python.

  2. Ruby on Rails is a complete framework

    It is wise for an organization to standardize on a framework. Using different implementations for the same tasks is a maintenance nightmare. Even if the same programming language is used, varying the techniques in every project would not lend to code-reuse and knowledge sharing among developers.

    Ruby on Rails is a well-thought web application framework. The APIs necessary to build web applications are already available and are well integrated with one another. Ruby on Rails already has code generation tools for automated builds, unit and integration tests. There are also a number of tools built around Ruby on Rails to handle, for example, deployment to a single or multiple servers and migration of databases.

    Ruby on Rails has strong emphasis on coding convention over configuration; For example, class names, the corresponding file names, and their locations follow a convention; separation of concerns using the model-view-controller paradigm are strictly enforced. While you may view these constraints as disadvantageous, it is actually a good thing because it forces the developers to focus strictly on business features and not on the details of the programming tool.

  3. The Ruby on Rails community

    Ruby on Rails is just over a year old and relatively new compared to Java and PHP. However, the adoption rate of Ruby on Rails is very high and many of the best programmers of both the Java and PHP communities are rallying behind Ruby on Rails. Dave Thomas, one the leading figure of the Pragmatic Programmer fame has already co-written (with David Heinemeier Hansson) a book about Rails, which is one of the best-selling computer books in Amazon.com’s history. Bruce Tate, who has written a number of best-selling Java books, is very candid about the weaknesses of frameworks based on Java (e.g. Struts) and is recommending Ruby on Rails. Other Java leaders are also adopting Rails like James Duncan Davidson and Stuart Halloway.

  4. Ruby on Rails and Web 2.0

    Ruby on Rails, as well as many frameworks, is independent of the visual design of a web application. However, based on applications launched in recent months, it is observable that Ruby on Rails programmers are also attune to Web 2.0 style of visual design. Ruby on Rails programmers are launching applications that are visually attractive and uses the latest Ajax approach to make web applications more interactive and responsive. The latest release of Ruby on Rails has built-in support for Ajax-based interface design that allows programmers to create interactive interfaces without the need to navigate around the complexity of Javascripts.

  5. Maintainability and productivity are imporant

    If you were given a choice to maintain between a 20,000 lines of Java code and a 800 lines of Ruby code, which would you choose? These numbers are based on the project by Rick Bradley whose team converted from Java to Ruby.

    Maintenance cost is a function of size and quality of the code. Even expert Java programmers will not argue that programs written in Ruby is an order of magnitude smaller than Java. More importantly is the understandability of the code. Ruby is definitely easier to comprehend than Java.

    One point used against Ruby and for defense of Java or PHP, is the few programmers who know Ruby. While this is true for now, this point is based on naive understanding of software development. Many organizations believe that if they used Ruby, it would be difficult for a Java developer to get up to speed. The truth is programming language plays only a small role. Knowledge of programming language alone cannot guarantee a quick understanding of the working environment and the business settings where the application is used.

    Ruby is definitely simpler than Java or PHP. Anyone who has experience in any two programming languages will have no problem picking up Ruby on Rails.

Will Ruby on Rails replace Java?

It is natural for many programmers to have second thoughts on the merits of Ruby on Rails; some even dismissing it as simply a language for writing toy programs or throwaway prototypes. What is noteworthy is that veteran and novice programmers alike are rallying behind it and organizations are consistently publishing experiences proving their use of Ruby on Rails a very good decision.

When Java was introduced, naysayers said that Cobol will die. But it didn’t happen. If someone tells you that Java will die, don’t believe them. Java will never die. If someone tells you that Ruby on Rails will replace Java, don’t believe them. But Java will lose (or is already losing) a significant share in the web application space.

Java will eventually slide to Cobol’s and C++’s status. Not too long ago I use Yahoo and Alta Vista as my search engines. But now all people know about Yahoo is email and photos, and what the heck is Alta Vista? Is that a resort in Laguna? It’s the nature of innovation. No technology will be on top of the curve forever. Sooner or later, it will slide and another will take over. For some, it will come as a surprise; for others it will be the classic, “I told you so”.

public class HelloWorld {
    public static void main(String []args) {
        System.out.println('I am Java program');
    }
}
puts 'I am Ruby program'

Your choice?

16 thoughts on “Why you should start learning Ruby on Rails

  1. Time and again I wonder if I really could learn a programming language. The trauma of college programming classes is stuck with me for ages. I sometimes wonder if I should give Ruby on Rails a go. In any case, you wrote a nice write up about it 🙂

  2. Hi Clair,

    Believe it or not, I find writing more challenging than programming 🙂 It’s never too late. If you want to learn it, I recommend “Learn to Program” by Chris Pine. It uses Ruby to teach programming. It is published by the Pragmatic Programmer so you are assured of the quality.

  3. Hi, Greg 🙂 Thanks for the recommendation.

    Writing is fun and easy for me. I do it every single day 😉 I guess I have been given a lot of opportunities to write and so I have been doing it relatively well, in a way.

  4. Hi there Greg,

    I am an IT project manager and currently bidding on systems development project. We are looking for an expert on ruby and rails that will serve as our technical resource person.

    Kindly contact me if you are interested. my landline number is 6356621. mobile- 09209291519

    Best Regards!
    Allan

  5. Hi Greg
    I would like to learn more about Ruby on Rails. Can you help me? Do you teach Ruby on Rails?

  6. sir i want learn ruby on rails can u help me . i alrady install the ruby but i dont know how to do programing on it and run the program ,
    for this i will very thank full.

  7. Hi Greg,

    Glad to know you’re into RoR development… I’ve developed some small web apps, and I was wondering… how can I learn, share and be of help to those who are also interested in RoR… I’ve put up a Forum which is also built using RoR. It’s mostly a blank canvas… I’ve just tweaked it for my liking… I’m hoping this could serve as a common place for us Pinoy RoR users. Hope to see you there… Oh and I’m not really good in writing I was wondering if you can be one of the moderator for the pinoy RoR community if it’s ok with you. Thanks!

  8. Hi Greg,
    I heard a lot of good things about RoR. I want to learn more about it. Can you give some ideas on how i could learn it? maybe a website that offers tutorial or the likes.
    I had previous xperienced with Php. Do you think it will be easier for me to learn RoR?

  9. Jhun: Since you have web development experience, I have no doubt you will learn RoR in a jiffy. I learned RoR by simply reading “Agile Web Development with Rails” and of course, lots and lots of practice. It also helped that I am developing SchoolPad, which allowed to learn things not included in the book like deployment.

  10. >>5. Maintainability and productivity are imporant

    There are actually many other things that meets the eye. I been using Java for years and have done a bit of coding RoR (as a hubby) a year ago. My observation is that it may depends of what sort of application you are writing. A large Java code base is not hard to maintain if strict documentation is enforce i.e., using a methodology that won’t allow you to modify code base unless you also do a corresponding component/class diagram update first. Or with an IDE eg MyEclipse, the speed of writing an MVC web app in Java is comparable to that of ROR.

  11. puts ‘I am Ruby program’
    is equal to
    System.out.println(‘I am Java program’);
    and not
    public class HelloWorld {
    public static void main(String []args) {
    System.out.println(‘I am Java program’);
    }
    }
    ROR may be easy if your specs are also common and easy. It’s like having a very complex car in a blink of an eye. But if something goes wrong of that car mind you me, you’re gonna be tracing a hell lot of code just to get something specific.

Leave a comment