3 ms·
I think it's just the people who decided to do it. I was working for Enthought back when SciPy and NumPy were new things. You can fit the people who built much
by SwellJoe 10y ago
I think it's just the people who decided to do it. I was working for Enthought back when SciPy and NumPy were new things. You can fit the people who built much of the scientific and machine learning stuff for Python into a mid-sized conference room (and they'll all already know each other).
Why they chose Python, rather than Ruby or something else, probably has to do with timing. They were already working on this stuff before Ruby made any in-roads in the western world. And, once you've got a few hundred thousand lines of code, customers, and an OSS ecosystem based around what you've built, you don't drop it and move over to another language.
Python also happens to be well-suited for the task. SWIG support, for hooking into the ATLAS C++ libs, and there were reasonable ways to hook into the FORTRAN libraries, as well (and FORTRAN is the gold standard for performance in the scientific computing world, or it was back then). So, the technical side of Python was pretty well-suited to the task, even early on. The fact that Python was beginning to show up in universities computer science programs probably helped with adoption, too, though back in the early days the people using Python for scientific computing often had to also spend time and effort on training their customers how to use Python, so it wasn't an easy path (they were facing off against Java using competitors who had a bit of a lead in the move away from FORTRAN and C++ in the industries where they work).
That said, before Python, there was a pretty large contingent of scientists using Perl, for a lot of the same technical reasons; and there still are in some fields. Biology and finance still have pretty big Perl presence in industry. So, again, it wasn't inevitable that Python would be the leader. It just happens that the people who work in those spaces wanted to use Python and built a ton of great tools for doing it. At some point, it becomes a no-brainer because the inertia of the ecosystem does so much of the work for you. So, people without strong opinions on language, but need to do this work will flock to the obvious choice, which is now Python.
I guess one could ask, "Why didn't Python take off as a web development language? Why did PHP first, and then Ruby, own so much of that market for so long?" Again, probably because of inertia plus some early movers who built valuable resources for the language, making it the easy choice for people without strong opinions. Scientific computing is a much smaller market, with a lot less room for a bunch of players to be "leaders", I think. So, even though web development has several strong ecosystems in many languages, I doubt scientific computing could be that disbursed and still be as effective.
Edit: Also Google. Google likes Python, and Google likes machine learning. And, with the already excellent scientific computing ecosystem (SciPy, NumPy, Jupyter/iPython), Tensor Flow was an easy fit.