DEV Community

Discussion on: Ruby and Python, them and the differences

Collapse
 
val_baca profile image
Valentin Baca • Edited

See the StackOverflow Developer Survey: stackoverflow.blog/2019/04/09/the-...

Python, the fastest-growing major programming language, has risen in the ranks of programming languages in our survey yet again, edging out Java this year and standing as the second most loved language (behind Rust).

I'm a personal fan of Ruby and I just think it's a wonderful language. I remember reading The Ruby Programming Language cover-to-cover my senior year of college and just falling in love. Up until then I had only written lower level languages, such as C, C++, Java, Verilog, and Matlab. It was such a breath of fresh air to see a language made for programmers and not for processors.

However, here's what I recall happening:

Python focused on pragmatism and ease of use.

This led to it's adoption in the scientific community and eventually as a great First Language to Learn and eventually as a go-to scripting language and eventually as the go-to general language of choice for many.

Ruby focused on being elegant and a joy for programmers. It focused on developer speed at the cost of execution speed. This was still a contentious topic at the time. It was under the radar practically completely until Ruby on Rails came out. It was HOT. But it also kind of shoehorned Ruby into being the language to use Rails with. I do remember the Agile community particularly loving Ruby exactly because of the developer vs processor speed tradeoff mentioned before.

Python won out by gathering momentum. People want to program in languages that others are using as well because that means there are useful libraries and frameworks to help you with your problem.

Unfortunately, Ruby got married to Rails, and when giant tech companies started moving away from Rails due to scaling issues, others followed suit (even if they didn't need to and they wish they had the scaling problems Twitter did). Once Rails lost the spot as the New Hot Thing, it also lost the appeal to developers looking for a fun, shiny thing to play with.

Regardless of which "wins" I think they're both quite enjoyable to write in. They let you focus on what you really want to do with your program.

The main worry I have about the future of both languages is their viability in the future where we have fewer and fewer individual CPU-core gains and move to more cores and more servers working on problems. To that end, I've begun looking into Go and have been impressed but find some things too low-level.

So to that end, for something that blends the best of Ruby and Go, I turn my sights on the new kid on the block: Crystal

P.S. It may sound like I hop between languages often, but that's only because in my 9to5 I use Java about 99% of the time, so I use my free time to play in the way that I often can't in my day job.