Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Any chance of Julia supplanting Python for scientific computing?


Depends on what you mean. For me personally as a physicst, Julia supplanted Python like 7 years ago and I haven't looked back. There's a vibrant, active ecosystem of useful open source packages relevant to my needs constantly being developed. I've had zero reason to use python in ages.

Other people may have different needs, different experiences, and different organizational or legacy constraints that makes it so that switching from python to julia is just not on the table any time soon. That's fine.

Julia and Python continue to both grow in the scientific computing space, and I think Julia is becoming more and more of a known name, and an accepted tool in the scientist's toolkit. It may not be the tool the majority of scientists use any time soon, but that's not really a problem.


I am not at the numerical programming level of most folks in this thread but have written useful numerical software in Python, Julia, Fortran, Java, C#, C++, and Matlab.

My 0.02 is that Julia is awesome... if I was starting a new numerical project from scratch, I'd pick Julia 100% unless there was a very compelling reason to use another language (e.g. to interact with a legacy system). There are some Julia libraries that are so insanely good, like SciML/DiffEq, that I use Julia just to use those libraries (because I'm not smart enough to re-implement that stuff in some other language).

That being said, Python has a sufficiently good ecosystem that it's a sane choice for scientific programming where all out speed (or multi-node parallel computing) is not the top priority. Python with Numpy/Numba, RAPIDS and/or JAX can be very fast and it is very easy to write concise and fast programs this way. The code quality of RAPIDS and JAX are very high too and documentation is solid.

I'd also offer that Chapel and Rust belong in the "HPC/super-computing capable" pantheon of programming languages.


These discussions tend to go in circles because there are several incompatible notions of what “scientific computing” is. The first arena that comes to my mind is very high performance numerical code: simulations of merging galaxies, of the atmosphere, etc. In this arena, there are exactly four languages that have been used at the most demanding level: Fortran, C, C++, and Julia. Python is not on the radar.


I think this is somewhat restrictive. A significant amount of scientific computing work is done in high-level languages like Python that dispatch to lower-level kernels (like C++, jitted Numba, etc). I wouldn't discount them as "not scientific computing". The jitted kernels really blur the line, of course, because in many cases the jitted code runs in the same environment as the higher-level language.


In some sense it's not right to claim python is used in those cases. The core libraries are all written in one of the 4 languages GP listed. Python is just the glue, or high level algorithm.


Sure, but it's a pretty useless sense because it will, among other problems, cause you to answer the question "which language should I teach my undergrads first" completely wrong.


I think trying to supplant python is the wrong goal, or maybe the wrong frame. Supplanting an already established technology is very hard and depend so many factors that not directly controllable by the julia designer and community.

I think focusing on providing significant value to the dev community in a way that's not disruptive to their current workflow is a better metric of success.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: