This post originated from an RSS feed registered with Ruby Buzz
by Obie Fernandez.
Original Post: Ruby and Rails Bullet Points
Feed Title: Obie On Rails (Has It Been 9 Years Already?)
Feed URL: http://jroller.com/obie/feed/entries/rss
Feed Description: Obie Fernandez talks about life as a technologist, mostly as ramblings about software development and consulting. Nowadays it's pretty much all about Ruby and Ruby on Rails.
Here is a comprehensive list of bullet points with the Ruby and Rails story as I see it today. This list is written as my high-level overview of the Ruby / RoR phenomena as of September 2005 — to an audience of executives and business-development people.
Ruby
Ruby is a high-level, completely object-oriented programming language very similar to Smalltalk. It's explosive adoption rate in 2005 has been called "Smalltalker's Revenge" by many commentators.
Ruby has been around 10+ years and is written primarily by a single Japanese designer, 'Matz', which means it does not have "design-by-committee" problems; it is very clean and elegantly designed.
Ruby is multi-platform by merit of the wide array of interpreter/runtimes available for it -- just like Perl.
Ruby is completely free open-source as are 99% of the libraries available for it.
Most libraries are installable with a single command-line statement, for instance to install Ruby on Rails you type 'gem install rails'
Ruby on Rails
Ruby on Rails is a web-application framework written in Ruby.
The primary author of Rails is David Heinemmeier Hannson (DHH), one of the partners of the world-reknowned design shop: 37signals. His firm has recently stopped consulting clients and now operates strictly as a producer of their branded line of hosted web applications. Their flagship application is Basecamp, a project management application.
Rails was originally written as the foundational framework of Basecamp. DHH says he chose Ruby because of its design elegance.
A little over a year ago, DHH open-sourced Rails and began building a community around it. Since then, many of the best and brightest of both the Java and PHP communities have rallied behind the project, led by Pragmatic Programmer Dave Thomas.
Dave Thomas and DHH released their book about Rails on July 1, 2005: Agile Web Development with Rails (AWDR). It immediately skyrocketed to the top of the Amazon computer book charts and has sold out three printings.
Some have called Rails as a 'kitchen-sink' framework because it provides all of the infrastructure APIs necessary to build web applications: database, request-handling, view templating, email and web-services.
One secret of the success of Rails is the strong emphasis on coding convention over configuration. Rails severely constrains how an application is designed, forcing the developers to focus strictly on business features. Notably absent are any XML configuration files.
Not surprising given the attractors of Rails, the average Ruby on Rails programmer is more in touch with loosely-coupled, "Web 2.0"-style progressive thinking and possesses more visual design talent than comparably-experienced peers in more mainstream technologies. Correspondingly, Rails programmers are delivering applications which are more visually attractive and place more emphasis on design elegance and interoperability.
DHH is a leading Agilista, strongly influenced by Martin Fowler and Rails reflects those influences. Rails applications are bootstrapped with code-generation tools which create automated build scripts, deployment & migration support, as well as skeleton code for comprehensive developer testing.
Another factor of the Rails success story is that it is a complete stack of technology, similar in that way to .NET. All the components of Rails are consistent, well-integrated with one another and importantly, written in Ruby. Hardcore Java technologists do not generally understand this approach -- the ones that do have mostly jumped ship to Ruby.
In contrast to the design constraints of Rails and the locked-down nature of compiled Java, Ruby itself is a dynamic-language with very advanced and powerful introspection and fully capable of modifying its behavior at runtime. The power and flexibility of Ruby is what makes an advanced framework like Rails possible and appeals strongly to master programmers.
Future
Rails 1.0 will probably be released before the end of 2005, but the current version (0.13.1) is very stable and complete.
We can feel comfortable recommending Rails for small to medium web-based applications, with an emphasis on the time-to-market advantages. Our experience is proving that a focused team experienced with Rails can deliver a production-ready app in a fraction of the time it takes with J2EE or .NET.
Ruby is too new to the marketplace to make a significant impact on "enterprise" development today, but over time it will prove disruptive to that marketplace just as it is shaking up the web development world today. Similarities exist to the position and adoption rate of Java in '97-'98.
The ongoing backlash against J2EE complexity and the nature of enterprise Java applications to become legacy code immediately upon entering production life will provide years of fertile ground for innovative and dynamic technology like Ruby to take root within large organizations.
Increasingly, the "Java is the new COBOL" meme is driving talent and innovation into other technologies. Arguably, Ruby on Rails is the first startling example of this trend.