Ruby: First Impression of Ruby in 2017
Even though I had been exposed to Ruby for some time now, it was not until recently that I finally sat down to learn it. After a couple of months of immersing myself in the language, community, and projects I found myself having an entirely different outlook on the language, as well as thinking differently when creating new projects. Of course there have been many benefits and caveats that I have run across, leaving me with feeling a strong need to mention each so others can fast-track their ruby learning, as well as what to expect.
Note: I want to first mention that this is about “my first impression” based on what I experienced while learning Ruby. If you have any resources, groups, or projects to share that I have not mentioned, by all means share in a comment below!
As any starting point, the first place I always go to is TreeHouse, but when it came to Ruby and Rails, it didn’t take very long to go through all of the latest content. I did find myself migrating over to CodeSchool which offered a bit more, but overall there was very little in terms of learning Ruby and Rails for today’s versions. This is especially true when it comes to Rails, which is now at version 5.1. I found searching for content on Rails 5.0, or 5.1 almost completely non-existent, except for APIDock pages, but in most cases resolutions for issues were found in Stack Exchange, but still focused on 4.2, with few updated answers when they could be valuable.
While I have yet to find any community outreaches to help with learning, the best plan I could come up with was to learn from the older Rails 3 and 4 resources, then go through the upgraded options from there.
Fun fact: a lot of ES6 was heavily influenced by Ruby, so coming from JS feels like moving into a second home.
Even though creating anything with Ruby is slick and elegant, creating Rails apps is a truly amazing for experience for creating custom web-apps. Of course there are some businesses like Basecamp who create Electron apps with a Rails backend, which only made fueled my passion for Ruby even more. If it is one thing Rails does extremely well, it is allowing anyone to flesh out an entire full-fledged web-app in the shortest amount of time using the Rails Domain Specific Language, and without sacrificing functionality. Everything you need is built into the framework, and what isn’t built in can be found easily.
One thing I did notice with Ruby was that the majority of the ecosystem seemed to revolve around Rails. Almost anything you find Ruby-ish relates to Rails in some shape or form. I cannot say that this is a bad thing since Rails is such a hot commodity in the web world, but it is sad when you see pure Ruby projects without demand, maintenance, and left to decay. Looking at the dates of last commits, it was like seeing the aftermath of a Ruby-pocalypse in 2015.
Seeing much less done with Ruby, especially when discussing Crystal has been disappointing to say the least. While looking at various Ruby projects it looked like most contributions fell stiff around 2015, with no signs of life afterwards. When you hear about people asking if “Ruby is dying”, you can certainly understand where one could get such an idea.
To immerse myself in a language I always look for a podcast to binge, learn about projects, and learn about who are the pillars of the community. With Ruby I could only find one that was still thriving, but eventually left me livid in the end. Coming almost any other programming community it is not new to see such thriving on open-mindedness, and helping others, and you would expect something similar. Instead I found myself listening to a group of people talk down on everything that wasn’t Ruby, giving misinformation to discourage non-Ruby projects with self-centered mindsets, all while spreading negativity of all sorts simply making the community feel unwelcoming all together. Those people who did not have this mindset tended to disappear from future podcasts, but the irony really set in when I noticed one presenter was the host of a JS podcast with a different attitude.
I am not going to mention the name of this podcast simply because I want any other listener to make their own decision, and not one based on my own opinions and observations gathered. I will mention this was not based on listening to a small handful of episodes, but instead listening to at least 40 hours worth of audio from episodes spanning from 2015 to 2017..
While the community depiction from the podcast was a disappointment, the rest of the community feels nomadic and sparse, but I continue to explore in hopes of proving myself wrong, finding that hidden community where anyone can talk about Ruby, as well as other languages without it falling on deaf ears.
Overall I have enjoyed Ruby, giving me an overwhelming need to find excuses to use it as well as find reasons to jump into Crystal and jRuby (JVM compiled Ruby). While the resources and what part of the community I experienced was nothing short of unsettling, I do not want give up trying to find a group of people who have the same mindset seen with other languages, as well as try to offer as many resources as possible to help fill in the blanks.
It is needless to say that I do not plan to stray from Ruby anytime soon, and while I will continue to stick with JS strongly, just having the now React-friendly Rails gives me another strong weapon in my arsenal for web-development. I’m sure it is more then evident that you will see this site completely rewritten in Rails with React, as well as many new articles on the language itself in the near future.
If you haven’t tried Ruby yet, but are no stranger to dynamically typed languages, Try Ruby today! If you have used Ruby, and have great things to stay about it, other projects, or the community, please share in the comment below!