Today a friend of mine asked me what programming language I was learning in this course and I told him HTML, CSS, JavaScript, Ruby, and SQL. He said to excuse his ignorance and asked what SQL. I said don't worry, I don't even know what the Rails part of Ruby on Rails means, and I'm taking a course on it! (SQL is a type of database, in case you're wondering.)
This week's blog was a choice of topics and one was Rails, so I decided to englighten my own ignorance and find out what it is.
So lets start with what Ruby is. Ruby is a programming language that is different from other programming languages in that it's created with programmers in mind. It's easy to write, it allows lots of different ways to do any one thing, and it reads like English. Rails is basically a web app framework that is open source. It allows you to create a web app in seconds. More than that, Ruby has a doctrine with eight pillars.
1) Optimize for Programmer Happiness
This one is self explanatory.
2) Convention over Configuration
Basically, you can build a web application a million different ways. There is nothing necessarily wrong with any approach, and different apps can be optimized with different approaches. But the problem is do you have the capacity to select all of the best approaches to an application you haven't even built yet? And what if you don't know anything about apps and this is your first one? Ruby on Rails basically makes a bunch of the decisions for you so that you can get up and running quickly.
3) The Menu is Omakase
Omakase is when you go to a restaurant and you don't know what to order so you ask the chef to choose for you and guarantee yourself a good meal. The same can be said for Rails. This is the same as Convention over Configuration, excent convention centers of ways to use frameworks whereas omakase is about which specific frameworks are used.
4) No One Paradigm
Rails is basically a hot mess of ideas and paradigms. There is no central idea looming ominously over every individual piece.
5) Exalt Beautiful Code
people say beautiful is subjective, but I think it's objective. Either way, Ruby likes to look good.
6) Value Integrated System
Rails is first and foremost an integration if systems that together address an entire problem. I don't know why this isn't first on the list - I write it!
7) Progress Over Stability
Rails prioritizes improving itself to ensuring backwards compatability.
8) Push Up A Big Tent
Rails is built by different people and those different people have different goals and needs. It's about being inclusive and making sure those that are passionate can contribute.
I learned something today for this, I hope you did too! See you next week!