One would think that the Klondike times of web development are finally over. The frenzied placer mining period of the late 1990s came to an end in 2001. Since then, Internet growth has decelerated, development platforms have matured, and developers have -hopefully- learned the lesson. Technologically, however, the period from the dot-com-bust to today has been a boon. Web development languages have not only proliferated, but they also became more robust and more powerful. Today's web development arsenal is fitted with languages and tools that incorporate modern software engineering concepts. One of the more remarkable additions to this arsenal is the Ruby language.
The Ruby language is actually not that new. It's originator, Yukihiro Matsumoto, released the first version in 1995. Between 1995 and the early 2000s Ruby became popular in Japan, but it wasn't very well known internationally. This has changed with the introduction of Ruby on Rails, a web development framework for Ruby based on the model-view-controller architecture. Currently Ruby is in version 1.8.5 and Rails in version 1.16. During 2006, the Ruby on Rails combination has experienced an extraordinary adoption rate. Not only has it spurred worldwide interest in the Ruby language, but it also prompted a wave of Rails-like MVC frameworks for other development platforms, such as PHP and Python. It isn't Klondike, but since even long-time Java luminaries are migrating web development to Ruby on Rails, one may rightly speak of a Ruby Rush.
So why Ruby? The Ruby on Rails framework promises to combine the high productivity of dynamical script languages with the scalability of statically typed languages like Java or C++. Writing code is as easy as it gets, whereas large enterprise projects are still manageable and maintainable. Productivity is comparable to 4-GL tools, yet without the inherent limitations of the code generation approach. Ruby on Rails runs on all major operating systems; it works with a wide variety of web servers and it supports many databases, including MySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2, and Firebird. Minimal configuration, easy deployment, and well-integrated support for AJAX are further advantages. Last but not least, Ruby on Rails is free open-source software.
What is Ruby, exactly? The Ruby website explains: “A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.” Ruby is a one-pass interpreted, fully object-oriented language. Every bit of data is an object, even primitives, such as boolean and integer variables, and every function is a method. Ruby supports single inheritance, parametric polymorphism, and mixins instead of interfaces. It allows procedural programming by making stand-alone functions and variables implicit members of the root object. Other features include automatic garbage collection, multi-threading, iterators and closures, operator overloading, reflection, meta-programming, and exception handling. It's syntax is a quite unique and terse; it contains some elements of Perl, Python, Lisp, and Smalltalk.
Ruby on Rails is distributed via RubyGems, the standard packaging manager for Ruby libraries and applications. Rails expands on the underlying philosophy of Ruby, such as “Don't repeat yourself” (DRY), “Convention over configuration”, and the “principle of least surprise”. It provides a complete command-line driven framework for web development, including scaffolding to quickly construct the program logic and views to perform CRUD operations. Rails implements a strict MVC separation, where the model corresponds to the RDBMS model and the object-relational mapping, the view is commonly provided by embedded Ruby (.rhtml) files or .XML templates, and the controller contains most of the application logic programmed in Ruby.