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 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?
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.
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.
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.
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.
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'
|
[close]