Hacker News new | past | comments | ask | show | jobs | submit login

Sure, but the large packages which are the big selling point for scientific computing are for the most part C/C++

- NumPy - Pandas - TensorFlow

etc.

In contrast the most popular scientific packages in Julia are almost all pure Julia.




Yes, but these large packages represent a very small portion of Python packages. Also, they still include very large amounts of Python code.

So a typical user who knows only Python can still contribute even to these packages, and certainly to the other 99.9% of pure Python packages.

The barriers only exist if you want to contribute to the C++ core of NumPy or TensorFlow, and these parts are so complex and performance critical that even in Julia I'm sure only experts would be touching them.


I am not convinced. It does not reflect the frustrations I have heard from Python developers who ended up switching to Julia.

I don't have personal experience interfacing C/C++ code with Python but I spent a lot of time with Lua and C/C++ and Lua is considered far easier to integrate than Python.

Yet looking back and those experiences, while I thought it was super easy and cool back then, it was fraught with all sorts of problems with impedance mismatch.

Especially shuffling large chunks of data back and forth between the interfaces of two languages is hard. You cannot take an arbitrary Python data structure and push it into say NumPy.

I've seen in practice how much problems that can cause at one of my previous companies. We made a C++ application with a Python interface. We got major performance issues because we shuffled data back and forth as NumPy arrays.

It also limited what we could do with the data. Rather than being rich objects with associated functionality, you are stuck with blobs of NumPy data, which is really just dumb data with generic operations associated with them.

With Julia I can create e.g. an RBG buffer, where ever element is an RGB value and register functions working specifically for this type of data. In Python you would be stuck with pretending your NumPy array of floats or ints represents an RBG buffer.

But don't take it from me. Talk to people who have switched from Python to Julia and let them describe the benefits. I meet a lot of these people and they talk about how much simpler code they can write and performance gains they get.

Sure if your Python packages fit your niche great at the moment, no need to switch. But too many people twist themselves sideways to continue with the technology they have determined is all they ever need. Python developers should know that too. Lots of Java, C++, Perl etc guy at some point resisted going over to Python with lots of lame excuses.




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

Search: