Surrender to the Flow

Simple, pain free, no fuss. Ruby is a lot of things that make a developer’s life easier. Making a coding language readable by the average person is incredible accomplishment. Every language has advantages over other languages so Ruby isn’t the best language; it’s just great for easy communication.

Other languages have their advantages as well. PHP, .NET, and many others all have their place in the ecosystem. They have their quirks as well.

When David Heinemeier Hansson was building basecamp in 2004 he needed a way to deploy a web application simply and effectively. He had used PHP but felt like it was too repetitive and bogged down by unneccessary details. In Ruby he found the language that he needed. In addition to being readable, uncluttered, and capable of extraction, Ruby had the added plus of Gems. With a vibrant culture and large amount of resources already available Ruby seemed like the perfect language for this project.

As he created Basecamp, Hansson began building a framework and library of tools that would make deploying web apps with Ruby more simple. These came to be known as Rails.

Ruby on Rails has since grown to become one of the more popular ways to write web applications available today. In the span of ten years Hansson’s project has changed the shape of the development realm.

This is because Rails follows the same rules of thought that Ruby does. It makes things easier to get off the ground and it’s an excellent way to quickly deploy seemingly complex applications. For the developer that values his time and enjoys a huge array of resources it’s an excellent language to learn.

Ruby’s built in framework standardizes the approach to things like email and html writing and a number of other things. This is great because other coding languages had not taken the effort to standardize them yet. If you’re a good developer, of course you can read and modify code how you see fit but by having everyone on the same page has it’s advantages as well.

Realizing that what the world needed was a uniform and less cluttered approach to web application development, Hannson set to work on establishing a set of Rails standards and guiding principles. Soon developers everywhere were seeing the benefits as the language blossomed.

By having a uniform layout it makes communicating with other developers much easier. The only caveat that happens when having something uniform is we give up things that make us stick out. Yes, Rails still allows for programmers to let their personalities to shine through but, unlike other languages, Rails has things to say.

Chances are if you know any rednecks or sadistic feline haters the phrase “there’s more than one way to skin a cat” has popped up. This means there’s several ways to get the same outcome. It also means that poor cat is dead.

A moment of silence for Mr. Whiskers

Many other languages are pretty blase about how to get from A to B. That’s one of th great things about coding is that the possibilities are pretty much endless when it comes to the actual code we write to get the results we want. The disadvantage of that is that it’s hard to get everyone on the same page if we can’t just nail down some basics.

Rails has preferences when it comes to certain things. It has opinions. It has wants and needs. It has an idea of what’s best.

Best might be subjective but Rails is a language that knows what’s best for you and for the software. It’s like the overbearing mother of the programming world. You can not listen to it and still do fine but you will probably wind up wishing you had gone with what it said the whole time.

Hannson famously declared Rails as Omakase. A Japanese phrase meaning “I’ll leave it to you.” Omakase means trust in the person who developed it that they have your interests at heart. He expounded on this thought by say

“A team of chefs picked out the ingredients, designed the APIs, and arranged the order of consumption on your behalf according to their idea of what would make for a tasty full-stack framework…. When we, or in some cases I — as the head chef of the omakase experience that is Rails — decide to include a dish, it’s usually based on our distilled tastes and preferences. I’ve worked in this establishment for a decade. I’ve poured well in the excess of ten thousand hours into Rails. This doesn’t make my tastes right for you, but it certainly means that they’re well formed.”

These ideas are at the heart of Rails. You have to surrender to the flow if you choose Rails as the language for you. It will make things go a lot faster and make your job a lot easier.