Julia is designed for ML Python isn’t

Erik Engheim
2 min readFeb 4, 2020

Python is a nice language. It would probably be my second or third choice after Julia. However to argue that Python is some kind of ML wonderland is to get ahead of oneself.

Python has a strong position in ML today because of its ability to easily glue to C/C++ code and high popularity. This has led to the development of impressive ML packages which can be used from Python.

However Python as a language has zero advantages in ML. Quite the contrary as a language it is rather poorly suited for the task.

Python is merely being used as a configuration langauge for ML code written in C/C++. Well defined pieces in a neural network made in C/C++ can be organized and connected with Python code. Actually running machine learning algorithm in Python would be slow as molasses.

ML code involves a lot of numerics, big matrices etc. That is exactly the kind of stuff that Julia was specifically designed for. Julia runs ML algorithms in pure Julia code at high performance.

Doing ML in Python relies on having a very rich library of pre-made components made in C++, which you can assemble to solve your problem. As soon as you need customization, you are screwed. Putting in a node or kernel in pure Python code anywhere is going to kill performance.

This has significant implications for the emerging field of scientific machine learning. Here one uses ML algorithms with scientific models. This requires automatic differentiation, which cannot cross language barriers. You cannot use automatic differentiation on a chunk of C++ code glued together with another chunk of C++ code using Python. However with Julia you can easily to this because it is Julia all the way done. No cheating with a high performance language under the hood.

Who is using julia? Anything that even remotely picks up from Java architecture is just wrong even if it improves from previous…

Then I seriously suggest you learn more about Julia before criticizing it so heavily. This comment betrays that you don’t know all that much about a technology you have very strong opinions on.

Julia was in no shape or form inspired by Java. Julia has more inspiration from Matlab, LISP, Python, R, Fortran and a number of other languages. But I have never heard any Julia creator mention Java as an inspiration. Nor can I as a user see any trace of such an inspiration.

I can only speculate that you have drawn this conclusion because Julia uses a Just in Time Compiler. Something that originally made Java famous. However this is not technology specific to Java. It existed in language before Java and it exists in plenty others. A reason JavaScript has such good performance in the browser is because it used JIT compilation.

Fair criticism is always welcom. But it is not fair to judge harshly something you don’t know anything about.

--

--

Erik Engheim
Erik Engheim

Written by Erik Engheim

Geek dad, living in Oslo, Norway with passion for UX, Julia programming, science, teaching, reading and writing.

No responses yet