Last week when discussing Rack in class, Steven mentioned the notion that with the advent of Rack and Rails, web development experienced something of a revolution and explosion in growth. My ears immediately perked up at this comment and I became intrigued with idea of a web revolution. In addition, as our course has shifted into more explicit work on the web, I really started to appreciate how all of what we have learned so far seamlessly integrates with the latest and much larger concepts we are beginning to tackle now.
My own perception of the history of the internet before this class consisted of 3 distinct stages, the first was my earliest memory of a screeching modem followed by the “You’ve got Mail!” announcement as I sifted through random emails from people who were also on AOL.
Next came the pets.com era as NASDAQ went above 5000 on its index only to crash even more quickly, decimating the web sector.
Finally the 21st century arrived and the internet stabilized, matured, and everybody focused on mobile devices or so I thought…
Now I know there is far more to the story. In December of 2005 David Heinemeier Hansson released Version 1 of Ruby On Rails as a web framework for Ruby. Perhaps as important, in August of 2006, Apple announced it was releasing Ruby on Rails as part of its next system release, Leopard. Of course this meant nothing to me at the time, but now I know better. What a monumental development this was! Ruby, a relatively new language along with a very new and comprehensive web framework was being put on every new Apple computer being sold starting in 2007.
On a timeline, this was occurring during a period of massive growth for Apple as iTunes was pushing its way on to computers of all kinds through the iPod, increased sales of laptops, and of course the iPhone was just around the corner.
This meant huge exposure for Ruby on Rails to a community of users many of whom already appreciated the idea of a unified, well designed, and codified approach to computing and tight integration of the internet. The similarities in rhetoric for Apple and Ruby on Rails are a bit spooky and cool all at the same time. They both just “work”, prioritize the experience of the user over the machine, and both celebrate the ideal of beauty through good design.
If there was ever a moment for a for a new innovative approach to the web this was it and Rails was the perfect unifying framework for the time. First, the underlying language of Ruby as we all know by now is a wonderful introduction to coding. The syntax and words of the language itself just beg to be used, but even after two weeks of intensive work at Flatiron, I still did not see what beyond this philosophy made the language specifically appealing for web development.
But then, we dove into databases and I learned how seamlessly SQL integrated into Object Oriented Programming in Ruby. I began to see the light. Next, as we shifted into ActiveRecord I started to see everything lock into place as it became clear to me there was specific codified pattern and structure in how Ruby objects interact with a database. Sinatra made that even more clear to me, but I still could not quite see how Sinatra and Rack could create the kind of “revolution” Steven mentioned. I was still curious and wanted to know more.
I discovered Ruby on Rails is the source of the revolution Steven discussed. Ruby on Rails has created a unified concise structure for back end web development that arguably never existed before its inception. In a sense, it has codified an approach to web development that consolidates several very good if not best practices in coding. First Ruby is unapologetically an Object Oriented Language that prioritizes flexibility and organization in code. Next, SQL is an excellent database language to use given its widespread adoption and integration with the web. In addition and maybe most important, Ruby on Rails utilizes the MVC structure that is easily adaptable and even includes templates. MVC is critical not only because it is a good design approach to many web, desktop, and mobile apps, but it is also widely used across many platforms, making it that much easier to adapt to Ruby if coming from another language or platform such as iOS or really any Objective C background.
In 2011, Rails integrated jQuery and Bootstrap which are also widely used in the front end community, giving front end developers a nice entry point into back end development. jQuery and Bootstrap are incredible tools to use especially after being exposed to making webpages without them.While many may criticize Bootstrap in particular, it can be fully customized and is far more appealing after one has tried to create a custom set of responsive columns without it. At this point, Ruby provides an entire framework that uses best practices, integrates a flexible and expandable backend database, and integrates a widely used customizable front end component as well. No wonder everybody seems to be building websites.
The closest frame of reference I can come up with for what Ruby on Rails is laying the foundation for is the discovery and adoption of standardized machine parts in the 19th century and the Industrial Revolution that followed. While Ruby on Rails is only a step toward a more unified set of tools to create, organize, and present data on the internet it is still a massive step in that direction and most definitely is a major part of the new revolution in web development and how we look at the integration of the web into all of the various computer devices we now use.