November 18, 2017
Let's Build: With Ruby on Rails - Introduction
Welcome to a brand new series of articles and videos revolving around Ruby on Rails.
This new series is dedicated to those interested in learning Ruby on Rails. This video is a quick introduction to why I chose to use the framework as well as a bit more on what the series will entail.
Maybe you've never heard of it? Well, to start with, the framework was created by the folks at Basecamp. The programming language
Ruby was written by Yukihiro “Matz” Matsumoto. Straight from the about section of ruby-lang.org the ideals of "Matz" are as follows:
Ruby is a language of careful balance. Its creator, Yukihiro “Matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming. He has often said that he is “trying to make Ruby natural, not simple,” in a way that mirrors life. Building on this, he adds:
Ruby is simple in appearance, but is very complex inside, just like our human body1.
You can tell by looking at the language that it is indeed natural as it reads almost like the English language at times. I think
Ruby in itself was a big reason I liked Ruby on Rails over other web development frameworks like Laravel or Node/Express. The language and syntax patterns were so clean and simple. You need no semi-colons, weird-looking loops, or crazy
<?php ?> based characters. Instead, you write similar to how you speak which is a huge selling point for me.
Why do I need a framework?
Honestly, you don't, but frameworks like Ruby on Rails exist to make our lives easier. There is a lot of work involved when creating a complete web app. You need to handle things such as databases, tests, routing, sending emails, running servers, separating working spaces into environments like development, production, and testing. Having to roll all of those things yourself could take quite some time.
No matter what framework you choose, you will find that most have similar principles when it comes to building web applications. Both Ruby on Rails and Larvel follow an MVC pattern where Ruby on Rails is a little more opinionated in how you author your application. I actually prefer the more opinionated approach as it's easier to find answers when you run into errors. Ruby on Rails is most popularly known for it's Convention over Configuration mantra of which offers some predictability in a developers workflow. Some developers love this whereas others loathe it. You'll have to design whose side you are on.
I spent a lot of time researching frameworks, tech stacks, and more to uncover the best way to build out a recent idea for a web app I had. With so many resources out there it was definitely a hard choice. I have worked with
PHP for a long time using WordPress, Kirby, Code Igniter (back in the day), and more to build basic websites that were mostly for marketing purposes. I finally got sick of building only marketing sites and decided it was time for a change. I wanted to build an app with users, payment gateways, admin only areas, and more. I finally did it and I'm glad I stuck with it.
But Ruby on Rails is old...
Yes, it's been around the block a while. But that hasn't stopped Basecamp, GitHub, Shopify, Airbnb, Twitch, SoundCloud, Hulu, Zendesk, and Square from using it. Twitter even used to be built on the framework. Need I say more? The older a framework gets, the better it gets in my opinion. More time alive means more bugs worked out.
Ruby on Rails has plenty of perks. I have yet to see many downsides in my own work other than finding adequate hosting for a Ruby-based app. Getting Ruby on Rails installed can be a little daunting of a task (especially on PCs), but it is indeed possible.
What will we be building?
The plan is to ease into the framework at the start. We will build out things you may already have experience building like blogs, newsfeeds, small user-based apps, and more. The bulk of the series will be a learning path for both you and I. I consider myself a novice with Ruby on Rails and want to get better with the framework. Having already built my own app, I struggled with a lot of concepts but ultimately found my way through. My hope is for you to be able to do the same. In the end, to really learn the framework you need to build stuff. Practice makes perfect as with anything else.
Useful Links and Resources For Our Journey
- Ruby on Rails Guides
- Railscasts - Pretty far out of date but still helpful.
- GoRails.com - A newer site dedicated to Ruby on Rails and advanced concepts.
- Ruby on Rails Tutorial - Book - A great guide to understanding foundational Ruby on Rails concepts. Read the online version for free.
Shameless plug time
I have a new course called Hello Rails. Hello Rails is modern course designed to help you start using and understanding Ruby on Rails fast. If you're a novice when it comes to Ruby or Ruby on Rails I invite you to check out the site. The course will be much like these builds but a super more in-depth version with more realistic goals and deliverables. Sign up to get notified today!