Python = too big to fail?
Autor: mintwurm 13.10.21 - 20:09
I've tried Julia a couple of years ago and was not convinced. Back then it didn't even have a proper debugger (iirc that was released in 2019). And the startup times for a script could be painfully long.
This article motivates me to give it another try :)
But I can't help but wonder: How is Julia ever going to catch up to the Python ecosystem?
I mean, the pitch here is "The language is easy and clean but runs (almost) as fast as C".
But I rarely find my python code to be too slow.
Actually, plot twist: My python code is usually not python code.
Let's discuss datascience.
With python I can use pandas. It's incredibly productive for all sorts of exploratory data analysis, interactive visualization, etc. I don't think that Julia has something competitive.
Of course at some point the datasets grow too large for pandas.
But then there's pyspark. And at that point my python code is really not running in python, it's just a thin wrapper to dispatch jobs to the compute cluster.
So the speed of python doesn't matter :)
Let's discuss machine learning.
Actually, let's keep this one short.
Pytorch, tensorflow, jax, ...
I'm convinced that I can max out my gpu much more comfortably with Python than with Julia.
This one might go to Julia.
Numerical simulations tend to be lots of linear algebra and random number generation.
If I had to implement a solver for some PDE, I might be tempted to do it in Julia.
The solver probably already exists though, written in C++ based on some BLAS, and with a python interface...
Numerical simulations, v2.
Let's make it a bit more complicated. The simulation involves some functions to be optimized and mixes in quite a bit of creative math/ml stuff.
At this point you're probably happy to have the very rich stack of scientific python libraries (scipy, scikit, ...).
Hm, I didn't mean to write so much text. But there it is.
My point is:
Yes, it was nice if Python was faster.
But the main appeal of the language is in its flexibility at defining beautiful APIs.
And today, there are many excellent libraries out there that enable you to do amazing things in python.
Productivity is less about the language, and more about the frameworks at your disposal.
At this point I wonder how (if at all) Python can be replaced.
It's gained so much momentum already.