Ruby Today

Mathieu D. Rousseau
8 min readMay 2, 2021

Is it still worth learning in 2021?

Photo by Joshua Fuller on Unsplash

Less than a year ago I began my journey as a programmer, and I spent a lot of time trying to figure out what would be right for me. First I was thinking about learning Python, but then my friends convinced me to checkout Javascript, which led me to take on a Web Development bootcamp.

When I first went through the curriculum, I noticed that we would be learning Ruby for a couple weeks. The objective was to get us used to the process of learning something we are unfamiliar with and being able to work on an existing codebase. The possibility of learning a second programming language had me very excited. I thought “wow, I’m going to have this amazing toolset to show off on my resume”. It lead me to doing a little bit of research on the language online, as I had never heard of it before. It took me only a few Google searches to topple over my excitement.

There are many negative articles and blogs about where the language is heading. My life experience made it hard for me to take all that was being said on forums and blog posts at face-value. Often the pessimistic point of view is the one that people listen to the most, as it invokes instincts of self preservation.

My inquiry on the matter lead me to thinking that language or framework popularity is not perfectly correlated to its power and ability to make great modern applications. It is very reminiscent of every other type of fads I have encountered in my life, there is an inflection point in a given industry and things rapidly change in a new direction. Ruby is far from the inflection point that paved way for its rise in the programming language space, but it is far from going the way of the dodo birds, and people have been saying the same about PHP for way longer.

What are some of the strengths of Ruby?

One of the first things Ruby developers will tell you about why they like the language is that it is pleasant to write in. The language is declarative, meaning that you are writing code that is closer to writing in english than most other languages. This transforms the coding process into a more human-writable and human-readable process. The benefit applies to whether you are working on a personal project, or with a group of people, and both cases results in a relatively smaller workload, and quicker development process from start to finish.

Another important thing to note is the value of the rich ecosystem that Ruby has to offer. You have a rich library of gems (downloadable Ruby programs) to chose from which will increase your productivity while adding great new features to your project. And there is the famous Framework called Rails, which reduces repetitive tasks and simplifies their implementation.

Spending less time building the code means reduced financial and time costs, which in turn affords you the ability to focus and develop on other equally important aspects of your project. One could read over these points quickly and not think too much about it, but the reality is that your resources are finite, and knowing how to use them effectively can make or break your project.

Photo by Ben White on Unsplash

What are some of the weaknesses of Ruby?

The language gets a lot a bad rep with its performance issues in some cases. While newer versions try to fix this, Ruby has a harder time keeping up to its counterparts in regards to CPU and RAM consumption. Although this might not affect your project in any noticeable way on a small to medium sized project, it could be noticeable once your project reaches the size and complexity of Twitter. However, for the most part, reaching the size that would make Ruby obsolete for your project is quite the feat to pull off, your first concern is to get there.

One minor issue for someone coming from another programming language might be the little use of brackets which could take some getting used to. Another feature that takes time to get used to is the implicit return, which means that you do not need to add a return statement in your function, it automatically returns the last line.

To address decreasing popularity of the language is an important consideration. According to the 2020 Stack Overflow survey, the popularity rating of Ruby is currently sitting around 10th position, in respect to programming languages, but has steadily decreased over the years. One person see this as a strong point against adopting Ruby, another could see this as an opportunity to earn a greater income learning an increasingly scarce skill that is still in demand.

There are other weak points worth considering, but those will be more task dependent, such as boot time speed being affected by the number of gems you have installed.

How important is it to pick the right programming language when learning how to code for the first time?

The importance of choosing your first language matters depending on what your goals are and what inspired you to want to learn how to program in the first place. At the end of the day a language is a tool, and you should pick the tool based on what you want to build, not because everyone else tells you it is “cool”.

If you are feeling ready to learn your first programming language, you are in for quite a journey. Similarly to learning any oral language, it is not going to happen overnight, and it will take consistent efforts on your part for an extended period of time. Ideally you are going to need to immerse yourself in the language and its community if you truly desire to develop your abilities to your full potential.

I have seen too many people spread themselves thin on multiple simultaneous learning objectives, and never really achieve anything. Perhaps that general concept is where the saying jack-of-all-trades-master-of-none comes from. I do not believe for a second that you can not master multiple tools in your lifetime, but the key differentiator with the master and the aforementioned Jack, is that the master took the time to focus on doing one thing and committing to it.

The beauty of programming is that your knowledge and skills are transferable, which means that if you can build yourself up to a solid foundation in one language, you apply yourself to a new language in half the time. This means that along your journey, you can pivot to a new technology if you determine that there is a better fit for your goal, and your previous learning is never wasted.

Photo by S O C I A L . C U T on Unsplash

How to Learn

Spend less time worrying about what book and course to learn from, and actually spend time learning. The former is actually a form of procrastination. I have wasted countless hours trying to find the best Javascript courses and tutorials, and there are thousands of them out there. Nothing comes close to actually immersing yourself in the subject you want to learn, and if your goal is to be a great programmer then you should not be aiming to pigeonhole yourself into the best technology ‘du jour’. On the contrary, if you focus on programming as a whole while always keeping an open mind, you will be able to always pick the best tool for the job.

Great achievements take time.

  • A medical doctor will spend minimum 10 years to become a fully licensed practitioner.
  • A Brazilian Jiu Jitsu martial artist can easily spend 10 years or more to become a blackbelt.

With the above examples in mind, hard work and determination is what will lead you to reach your goals. Here is the good news: you do not need to spend 10 years programming to become a skilled programmer. You can start working on your first project in your first month, and if you are consistent you will be surprised what you can accomplish within a year.

How important is the community/ecosystem, when considering it for production use?

A strong community around a language is as key pillar to hold it together. Without it, the knowledge would not be easily transferable and everyone would waste a lot of time discovering what was already discovered, and thus spend less time being productive. The Ruby community is top class, meaning that it is rich in information and examples, and it is all expressed in an easy to understand format. Giving newcomers and pros alike, a reliable resource to get their work done.

Pick the right technology for your team and your project

There are various reasons why you should choose Ruby today, and top 4 reasons for learning Ruby are as follows:

  1. Fast development process with Rails.
  2. Human readable code, that which can get you and your team up to speed quickly.
  3. A great community that is eager to support newcomers.
  4. The gems available for the language (downloadable Ruby programs).

These reasons alone make it a great first language to learn, or as a second, or even third.

At the end of the day, when you are ready to start thinking about which language to learn, remember that Ruby is a battle-tested tool, with a great community around it, that can noticeably improve your productivity. The shiny new tool that everyone talks about with all the great specs can be very attractive, but it is not always a question about what tool is trending. It is about what is right choice for the job and what the end user thinks is cool, and what the end user think is cool is a final product that adds value to them. This value can easily take the form of quick time-to-market and lower cost of development, making Ruby the right choice to make in many situations.

Would you care what brand of hammer your carpenter used to build your cabinets?

Footnotes

  1. https://www.indeed.com/career-advice/finding-a-job/how-long-does-it-take-to-become-a-doctor
  2. https://en.wikipedia.org/wiki/RubyGems
  3. https://medium.com/kkempin/swot-analysis-of-ruby-on-rails-c421a6c83c09
  4. https://thecodest.co/blog/pros-and-cons-of-ruby-software-development/
  5. https://insights.stackoverflow.com/survey/2020
  6. https://medium.com/codica/pros-cons-of-using-ruby-on-rails-for-web-development-b973f0dcfcf8

--

--

Mathieu D. Rousseau

Jr Full Stack Developer. I have worked in IT related businesses for almost 10 years, I am pursuing my passion for learning through programming.