10 ms·
I explored this topic a while ago on my blog [0] In essence, I don't think it has anything to do with elegance, syntax, or "easiness". It's more about timing +
by arnvald 4y ago
I explored this topic a while ago on my blog [0]
In essence, I don't think it has anything to do with elegance, syntax, or "easiness". It's more about timing + origin + corporate adoption:
* Python was created in Europe, Ruby was created in Japan - when Ruby gained more recognition in English-speaking world (~2004), Python has already been present and used worldwide for a decade
* Ruby was created as a personal, hobby project; Python was created while Guido worked in research institutions, and it helped Python gain recognition in academia environment
* Guido joined Google in 2005, boosting the adoption of Python; Ruby has never gained such a large corporate backing
Eventually I believe it was the combination of the latter 2 that pushed Python to top spot in popularity - scientists all over the world were familiar with Python, and with the rise of Data Science/ML (with Google being one of the main forces behind it), it became the most obvious choice for the new tools.
[0] https://www.notonlycode.org/why-python-has-won/ https://www.notonlycode.org/why-python-has-won/
- skywal_l 4y ago> * Ruby was created as a personal, hobby project; Python was created while Guido worked in research institutions, and it helped Python gain recognition in academia environment As a data point, I remember interviewing for an internship in a research institution doing some work on medical images around 2002/2003 and the supervisor telling me that Python was the lingua franca in this domain (from a research and POC development perspective).
- pjmlp 4y agoWhile I was at CERN during early 2000's, it was already being used for the build tooling and package management of HLT. Trainings for getting Python skills were a common offering.
- 4m1rk 4y agoThese explain why Python is the defacto for AI/ML which is interesting but I still totally agree with the idea of Python's simplicity making it just a better choice to get things done. I had a journey from Scala, a compile-time type-safe, flexible and exciting language to Python a dynamic, simple and boring one. Python code just end up being done fast and clean. Scala one never gets the team consensus and is never consistent.
- masklinn 4y agoNote that the Python core team started working with the scientific community very early on, the first scientific packages (as well as additions to python for scicom like extended slices) date back to the mid 90s. GvR’s background probably helped spread the word and thus get feedback, but as often Python’s overnight success was the result of years of work.
- jacquesm 4y agoThe Python core team early on was part of the scientific community. GvR worked at CWI (Centrum voor Wiskunde en Informatica), which was a part of the particle accelerator installation that Amsterdam had once upon a time until most such research went to Switzerland and the USA. CWI has, together with NikHef (the Dutch Nuclear Phyiscs Institute) done a lot of ground breaking research over the years and was the cradle of quite a few spin-off projects.
- bhaak 4y agoOh, I didn't realize until now that Guido worked there. So we got at least two major contributions from the CWI. One is Python and the other one is the game of Hack. :)
- jacquesm 4y agoThere are many more: The father of A*: https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm ALGOL 60 and ALGOL 68 First node on the Internet outside of the USA Python Various contributions to the improvement of encryption. CWI has a long, long history of quietly contributing to all kinds of stuff the world over and has a pretty good reputation. https://en.wikipedia.org/wiki/ALGOL_60 https://en.wikipedia.org/wiki/ALGOL_60
- recuter 4y agoBe that as it may, what does it matter? You are chronicling ancient history at this point. These languages are more alike than they are different. Or at least they are similar enough that one pulled ahead and subsumed the other. Like a twin eating his brother in the womb. Maybe it could have gone the other way and we would have ended up pretty much in the same place. Or maybe it is a case of worse is better. But not that much worse/better frankly and here we are. Salivating over rust. ;)
- optimuspaul 4y ago> These languages are more alike than they are different. I agree with this point. I learned python years before I learned Ruby and I found them to be very similar. Ultimately I dropped ruby because I didn't care much for the syntax and I like whitespace.
- taf2 4y agoAgreed on timing… twitter, Shopify, GitHub, Stripe - to name a few notable brands that followed using Ruby as their core language
- keithalewis 4y agoIsn't Excel 10x, 100x? more "popular". If that is your measurement stick.
- chucke 4y agoI think you're spot on. Ruby actually gained wider appeal only when it gained visibility in the US (via rails). Being present in the markets which drive adoption matters more than being consistent, which python isn't ("one way of doing things" is mostly a meme nowadays, everyone touching python knows it's fake).
- ilyt 4y agoPHP got popular coz it could get barely code-literate HTML/CSS web designer to write a dynamic app, and host it easily Ruby got popular coz Rails could get barely code-literate graduate to write CRUD app and so it was cheap (famous 15 minutes to blog tutorial) for companies. JS got popular coz, well you ain't got fucking choice on frontend and having your then-frontend JS/HTML/CSS designer be able to also do backend is, well, again, easy and cheap. There is clear pattern here...
- hoipaloi 4y agoI'm gonna disagree with "Ruby got popular coz Rails could get barely code-literate graduate to write CRUD app and so it was cheap (famous 15 minutes to blog tutorial) for companies." That's not what happened, instead Ruby got popular with advanced web developers working in Java who saw that Rails was had better answers than J2EE. If you were barely code-literate graduate you wouldn't recognize that Rails was offering new unique ways doing things. The 15 minute blog tutorial wasn't really indicative of what Rails was like, just a small sample about how it was different. It was an advanced tool for advanced users with a long learning curve that eventually paid off in better productivity.
- michaelteter 4y ago> advanced web developers working in Java who saw that Rails was had better answers than J2EE I was not "advanced" at web development in 2006, but this is exactly what got me to try Ruby. Previously I had been reasonably happy with JSP and Java Servlets, but this Rails thing promised a better way. And it turned out for most of my needs, it was much better. Also, the Rails Depot book was excellent, even back in the 1.x days (IIRC). It covered enough that you could build a fully working app with sessions, auth, crud, and reasonably abstracted layouts/views. Oh, and because Ruby was "simple", you honestly could start with that Rails book without knowing Ruby.
- tragomaskhalos 4y agoFor me personally, the killer was that python is typically pre-installed on linuxen while Ruby isn't, and if those environments are controlled or locked down in any way it can be a ballache to get ruby on there. Hence python is the path of least resistance.
- michaelteter 4y agoThis is absolutely a reason to choose Python. I’ve experienced this and made the same choice in the past. In terms of pre installed options, especially on older systems, Python is the best choice for integrating and extending systems.
- ralkr 4y agoI agree with the timing and origin. I think corporate backing was just luck. Google used Python very early, but other languages became more prominent in 2005, culminating in the creation of Go, after which GvR left. Indeed people talked a lot about Google "supporting" Python, but the support was pretty minimal (50% job for GvR, where you cannot really do much). Python has way better marketing though the PSF though. They understood that you can create a circus around the language that is completely removed from engineering, fundamentals and actual core development. If Ruby had been as shameless, it might be #1 today.
- asdf123wtf 4y agoI think the timing was the most important factor. Perl was everywhere (on Linux/Unix). Then Python came along an offered enough net benefit over Perl that it really started to displace it, and became the defacto scripting language that you would reach for when creating programs on Linux/Unix. Ruby has some niceties over python, but doesn't provide enough of a net benefit over it for that same kind of displacement to happen.
- oezi 4y agoI think Python was conveniently there when teaching was looking to switch away from Java. Each wave of students exiting their institutions with a Python background made Python more popular in the field.
- michaelteter 4y ago> Python was conveniently there when teaching was looking to switch away from Java. Each wave of students exiting their institutions with a Python background made Python more popular in the field This, plus what other commentors have noted regarding Pythons early developments in academia, have had multiplying effects on adoption. The alternatives were C, C++, some "academic" language like Lisp (which I wish had really broken into commerce more), Prolog etc., and eventually Java. Python was at such a higher level that it definitely made more sense as a first language for many people... especially since it was capable enough to be more than just a first language.
- cjohnson318 4y agoI don't know about corporate adoption. I started programming around 2008 or so, and the first things I encountered outside of grad school were Ruby and Python. At first I used Ruby because I felt like anything I wrote "just worked", but later I switched to Python because there was just "one way to do things", and also because of NumPy/SciPy/Jupyter.
- michaelteter 4y agoThe thing is, the “one way” is not at all true now. Maybe it was then. Today’s landscape is better but also very different. And when looking up how to do certain things in Python, Stackoverflow will show you a multitude of options. The problem for me is that I dislike most of them.
- cjohnson318 4y ago> The thing is, the “one way” is not at all true now. Agreed. It was a smaller language then, but it's never been as expressive as Ruby.