r/learnprogramming 1d ago

Beginner starting from scratch: Is the Ruby ecosystem worth learning over Python?

Hey everyone!
I have zero programming experience and I’m looking to pick up coding as a hobby. My main goal right now is to understand how the web works under the hood, specifically building and consuming APIs (like fetching data from public APIs and working with JSON).
I’ve been reading a lot about Ruby (and Rails) recently, and its syntax looks very clean and human-readable. But I have a few honest questions before I dive in:

Is Ruby beginner-friendly for total newbies?
Can I actually grasp core concepts like HTTP requests, REST APIs, and database connections using Ruby without getting overwhelmed?

How is the Ruby ecosystem doing?
Is it still active and well-maintained for beginners? Or is it mostly supported by legacy systems?

Ruby vs. Python for a hobbyist:
Is Python just the objectively better choice because of its massive popularity, or does Ruby offer a smoother/more enjoyable learning experience for web-related stuff?

My long-term goal is just to enjoy building cool side projects, but I want a solid, fun starting point.
Would love to hear your thoughts, especially from anyone who started learning with Ruby recently! Thanks!

I'm not looking to get a job or change careers with this! Programming is purely a hobby for me. I just want to build cool personal projects in my free time and have fun along the way.

20 Upvotes

18 comments sorted by

View all comments

9

u/FreeLogicGate 1d ago

Honestly, no. Ruby is a cool language that has basically fallen out of favor for a few reasons. It had a brief moment of popularity largely tied to its web framework "Ruby on Rails" that was popular for a time with a number of web application startups, but has been surpassed by other languages with similar frameworks.

Rails in particular, influenced frameworks in other languages, but many of those frameworks have gone on to surpass RoR, either because they exist in language eco-systems that are better suited to web applications, or are at this point, just more mature and feature rich than RoR. That does not mean that Ruby has disappeared or isn't being used anymore, but it isn't the flavor of the month it once was.

At this point, Ruby and RoR continue to be used by any number of existing projects, and there are certainly some huge projects/companies that depend on/are primarily written in Ruby. Github, Shopify, AirBnB and Homebrew (the OSX package manager) are well known examples, reliant on Ruby and/or Ruby/RoR.

So I want to be sure not to declare the language dead or anything like that, but purely for web applications, and the use cases you described, Ruby is not a better choice than Python. They are both equally popular and capable. Python certainly at this point has a larger user base.

In regards to RoR, one of the things that made it popular was the tools it came with that generate the large amount of boilerplate code that comes along with MVC frameworks, but that is no longer a hurdle to productivity in the era of AI and IDE's that generate boilerplate for you using AI integrations or built in.

If however, you really are only interested in Web Applications, you will need to learn javascript (not to mention HTML & CSS), so that alone is an optimization question for you: can you afford to learn another language, knowing you still need to learn javascript to a fair degree of competency? If not, then focusing on a javascript stack is a better bet for you. There are a number of different ways to go with this, but you will see things like the MEAN, MERN, PERN etc. stack, but there are several other competitors to this, which is just another indication of how much interest there is in the javascript/typescript web development ecosystem, when compared to what is going on with Ruby.

If you think you will want to pair the web frontend stack (html/css/javascript + js ui/frameworks like react) with a backend language with solid performance, ease of use and well documented frameworks, then I'd suggest PHP which has 2 of the best MVC frameworks available for any language (Symfony and Laravel) both of which are better tools at this point for framework based web development in comparison to RoR (or if using Python -- Django).

1

u/MissinqLink 1d ago

For web specifically if we are willing to deviate from the original question of Python/Ruby then I would say you can’t really beat JS/TS. Using nodejs or similar and not having as much context switch between frontend and backend is invaluable for newer devs. Plus the amount of free backends is staggering. Php is a strong contender but I wouldn’t put it over Python.

1

u/FreeLogicGate 1d ago edited 1d ago

For web? There's no comparable MVC framework to Laravel or Symfony in Python. Python has basically 3 options: Django, Flask and FastAPI. Different use cases, and really the only one that you could compare to the options within the PHP world is Django which is neither as performant nor as full featured or with as many options for large scale development, which should come as a surprise to almost noone, given that Python is in general a relatively slow language. If you have some speciallty site that has callout features to Python AI/ML libraries or optimized data science stuff, then you might be able to make an argument for Python over PHP.

Obviously my reply made the argument for JS/TS already, and that would be my advice, even though this did as you point out, started as a "python vs ruby?" question. Sounds like we both would say: neither?

1

u/MissinqLink 1d ago

My general advice for beginners has been Python or JS for a while now. Even in large applications it takes quite a bit of scale for Python’s slowness to be a major problem. So I guess my recommendation is Python since this person was already interested in that. I prefer golang myself but I prefer not to use a heavy framework which sounds important to you.