How This Art School From 1919 Has Influenced Ruby on Rails?
Tags: rails, ruby, webdev
Published: 2020-12-04 02:17:53

Before Ruby on Rails, web development was a different reality. Enterprise languages and frameworks cornered the market. No automated tests, complex solutions to simple problems, and other issues. DHH, a Bauhaus-rebel for its time, has transformed this scenario by thinking design-driven, developer-first, and, simple. Form follows function, they say.

# Back to 2004

![](https://dev-to-uploads.s3.amazonaws.com/i/6ztyeepj21ytvxjzqfto.png)

The birth of Facebook, the rise of Firefox, the iPod, and blogging. The most used web technologies were [ASP.NET](http://asp.net/), JavaServer Faces, ColdFusion, and, PHP 3 with an enterprise mindset.

The Ruby programming language may be significantly known these days, but this Japanese language wasn't globally famous even when Rails was first released in 2004. Not just the language was uncommon, but Ruby on Rails had everything to fail:

- Uncommon language
- No enterprise database support (MySQL by default)
- No Microsoft Windows support

# Back to 1920s

![](https://dev-to-uploads.s3.amazonaws.com/i/uhimdp3xik1zf5mlnpxs.png)

At the end of WW2, Staatliches Bauhaus, or simply Bauhaus, the art school that was ahead of its time, was founded. It was one of the single most influential cultural movements of the 20th century.

Bauhaus reached far beyond architecture, but design in general, including graphics, typography, product and, furniture. Even Steve Jobs was influenced by Bauhaus in Apple's minimalist and revolutionary design. The main principles of the movement were:

1. Form follows function
2. Minimalism
3. Smart use of resources
4. Simplicity and effectiveness
5. Constant development
6. Paradigm shift
7. Uncomplicated beauty

Rails was created inside 37signals, currently Basecamp, a web software company founded in 1999. The company's design-driven philosophy relates to Bauhaus's thinking in many ways.

> Simple interfaces are easier to use, easier to understand, more intuitive, faster loading, and easier to maintain than their flashy, image laden counterparts. Our work proves that simplicity doesn't have to look cheap, feel plain, or be downright ugly. (...) We believe usability should take precedence over "cool."

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/msmsmcrggtgz803djez4.png)

# The Rails boom

In 2005 DHH presented "how to build a blog engine in 15 minutes with Ruby on Rails" in a libre software conference in Porto Alegre, Brazil.

{% youtube Gzj723LkRJY %}

Using a MacBook, the terminal, TextMate, and Ruby on Rails, the Danish programmer, David Heinemeier Hansson, creates a blog engine in 15 minutes using Rails generators. Revolutionary, seamless, minimal, simple, paradigm-shifting, uncomplicated. Ruby on Rails' philosophy was introduced to the community. Software development can be simple, minimalist, effective, and without bureaucracies.

In 2006, a year after this video, Ruby was the most popular programming language, according to the TIOBE Index. The mid-1990s Japanese programming language that wasn't planned for this specific use.

> I knew Python then. But I didn’t like it, because I didn’t think it was a true object-oriented language—OO features appeared to be an add-on to the language. As a language maniac and OO fan for 15 years, I really wanted a genuine object-oriented, easy-to-use scripting language. I looked for one, but couldn’t find one. (Matz, creator of Ruby)

![](https://dev-to-uploads.s3.amazonaws.com/i/rukbdku1g2ik5xbfe8lk.png)

Ruby's rise is highly related to the Ruby on Rails paradigm shift. The Rails Doctrine, written by DHH in 2016, explains a bit more of the framework philosophy:

> Ruby on Rails’ phenomenal rise to prominence owed much of its lift-off to novel technology and timing. But technological advantages erode over time, and good timing doesn’t sustain movements alone over the long term. So a broader explanation of how Rails has continued to not only stay relevant but to grow its impact and community is needed. I propose that the enduring enabler has been and remains its controversial doctrine. (DHH, creator of Ruby on Rails)

# Footprints

![](https://dev-to-uploads.s3.amazonaws.com/i/q3812b95d32q7qc8g0vb.png)

The Bauhaus was a rebel for its time as Rails. Everything from Apple to Nike has been influenced by the school. Rails' credo has also influenced other programming communities, such as PHP, which now has Laravel, "The PHP Framework For Web Artisans", which was inspired on Rails. Phoenix, a web framework for the Elixir programming language that gives you peace of mind from development to production, was motivated by Rails.

All this strong influence creates a new default on web frameworks that have generators, tests by default, are simple, and adopt convention-by-configuration. Currently, it is expected for a web framework to have all these features that Rails first compiled.

# Maturing and staying relevant

The Ruby on Rails web framework powers lots of services out there, including GitHub, Heroku, CodeClimate, TravisCI, and Shopify. It is indeed widely used and popular technology. But what makes Ruby on Rails so special among all the other options nowadays?

Nowadays every language has its Rails-like web framework. PHP with Laravel, Elixir with Pheonix, Java with Spring Framework. Ruby on Rails is not as disruptive as it was back in 2004. Every year Ruby developers have to answer the same question: `"Is Rails dead in #{Date.today.year}?"`. The truth is Rails is still firm in its philosophy and are always improving. The last big releases included:

- **Action Mailbox**, a new way to serve to [route incoming emails](https://github.com/rails/actionmailbox/blob/master/lib/action_mailbox/base.rb#L6) to controller-like mailboxes for processing in Rails
- **Action Text**, bringing the [Trix editor](https://trix-editor.org/) to the framework
- **Parallel testing**, allows you to parallelize your test using forks or threads
- **Webpack** as the default JavaScript bundler
- **Active Storage**, a modern approach of uploading files straight to the cloud
- **HTTP/2 Early Hints**
- **Credentials**, a new and secure way to store secrets

Not to mention Ruby 3 improvements and new features, such as Ractors (Erlang-like actor-model concurrency), typing definitions, and more.