The Ruby programming language has many practical uses.
But here’s the thing…
Many people are attracted to Ruby because of Ruby on Rails. Rails is a framework. A framework is a set of tools that helps you build websites, or web applications, easier & faster than if you had to start from scratch.
But Ruby is a beautiful programming language by itself, and after you spend some time with it you’ll fall in love!
Now the question is…
Is Ruby limited to what Rails can do?
Not at all.
Ruby is a general programming language.
In theory, you can make anything you want with Ruby.
How hard it’s to make something is another story.
It depends on what gems & libraries are available because these gems do a lot of the heavy lifting for you.
Things That You Can Make With Ruby
Here are some examples if you need inspiration:
- Full-stack web development
- Web scraping & crawling
- Static website generators
- Command-line media player (using FFI + libVLC) & other command-line tools
- Automation, Backup & DevOps tools
- Parsing, data cleaning & filtering
- API Clients (like Twitter API or Github API)
- Report generators (PDF, HTML, CSV)
That’s a good list!
You can do all of these things & deliver them at a production level.
Less practical, but still doable:
- Games (gosu / Ruby2D)
- Data science
- Machine Learning & AI
These you can do mostly for personal projects & fun.
You can still do it, of course, but it’ll take a lot more work, code & domain knowledge.
Popular Open-Source Ruby Projects
I want to give you a list of projects made with Ruby so you can get inspired & see what’s possible yourself.
These projects all have 4k+ Github Stars.
- https://github.com/postalhq/postal (Email inbox)
- https://github.com/huginn/huginn (Event notifications)
- https://github.com/discourse/discourse (Forum software)
- https://github.com/gitlabhq/gitlabhq (Web-based git interface, like Github)
- https://github.com/puma/puma/ (Rack application server)
- https://github.com/hashicorp/vagrant (Developer environments via Virtual Machines)
- https://github.com/sparklemotion/nokogiri (HTML / XML parsing)
- https://github.com/Homebrew/brew (macOS package manager)
- https://github.com/fluent/fluentd (Logging unification tool)
There are thousands of projects made with Ruby, but these will help you get an idea of what you can do with this programming language.
If you want to crunch the digits of the pi number (3.14159….) as fast as possible & get the maximum performance possible out of your hardware, you wouldn’t use Ruby.
But you wouldn’t use ANY other interpreted language for that task either.
Like for example PHP or Python.
Because they share many of the same limitations.
To max out your performance you may have to go all the way down to ASM (Assembly Language), which is the closest you can get to speaking in 1s & 0s to your computer.
Here’s the thing…
There is a tradeoff for everything.
If you want the ease of use & programmer friendliness, you gotta pay with some performance.
There is no way around that.
With that in mind, if you want to build a full website, any kind of helpful tool like backup automation, report generators, crawlers, calculators of all kinds, API clients, etc… Or just get started in the programming world & have lots of fun.
Then Ruby is perfect for you!
It’s under active development, it’s easy to learn & you can always find help if you get stuck.
So why not give it a try?
I look forward to seeing what wonderful projects you build with Ruby!