logoalt Hacker News

stousettoday at 12:31 AM4 repliesview on HN

I’ll never not be bitter than Python “won” the scripting language war over Ruby, more or less just because someone did a bit of AI work in it first and it took over that space by default.

Ruby has such a nice holistic consistency to it. With a few exceptions, it feels like it was conceived of by one person with a core idea in mind. Python feels like a mess.


Replies

Revanche1367today at 12:41 AM

Long before AI work, numerical data crunching is what Python became popular for among non-computer scientists and this led directly to the AI use cases. The reason was obviously the lower barrier to entry without having a software engineering background. I also share with you that feeling about Ruby in particular.

gucci-on-fleektoday at 2:04 AM

> I’ll never not be bitter than Python “won” the scripting language war over Ruby, more or less just because someone did a bit of AI work in it first and it took over that space by default.

This is just my personal opinion with no data to back it up, but I suspect that Python "won" because it has excellent Windows support, while Ruby doesn't. Even a decade ago, Python's website offered an official native Windows installer [0], while Ruby's website [1] still points you to a third-party installer, which doesn't even have native support since it uses MSYS2 [2].

Most non-developers use Windows, so if you're choosing the first language to teach a large group of people, good Windows support is fairly important. Python being the "default" introductory language gave it a huge number of users, then I suspect that everything flowed down from there.

[0]: https://web.archive.org/web/20160824235759/https://www.pytho...

[1]: https://www.ruby-lang.org/en/downloads/

[2]: https://rubyinstaller.org/

show 1 reply
frollogastontoday at 12:42 AM

Python's strength is that it's easy to make C libs work in it. That's also why CPython is de facto the only Python implementation and stuff like PyPy never took off.

show 4 replies
Daishimantoday at 2:46 AM

How is a language that has different semantics for referring to lambdas vs other functions consistent?

Ruby's most important error is that it does not support namespaces. This by itself makes it a far less scalable language than Python.

show 1 reply