Hacker News new | ask | show | jobs
by hoiuyoi9087 2354 days ago
Julia is dead, but few realize it.

It's not as nice as Python, nor as fast as C++. And much less supported (tools/libraries/...) than both.

So it sits in this awkward middle between Python and C++, basically sucking at both and excelling at none.

3 comments

This is serious nonsense! Julia is way nicer than Python. If Python was faster than Julia, I would still have picked Julia, unless I really needed the performance.

With Julia I get first class meta programming. I get awesome multiple dispatch. I get environments and package system really well integrated. I get awesome integration with the shell. Better module system. More natural syntax for arrays. Much better system for closures. Better named functions.

REPL programming in Julia is just light years ahead of anything in Python. The OOP design of Python really kills the REPL experience.

Unless you are a very skilled C++ programmer, Julia is going to outperform you as the program gets larger. C++ programmers are going to get themselves tangled up when trying to run multi-threaded code, running on multiple machines on GPUs and specialized hardware. Julia does this effortlessly.

C++ cannot do JIT, hence as soon as you deal with complicated machine learning algorithms with custom kernels, C++ is going to tie itself into a knot.

Why do you think large Astronomy projects like Celeste and the next major climate models are built in Julia and not C++? Because developers realized that when you need to run massive calculations on super computers on hundreds of thousands of cores, C++ is going to get in the way.

As for libraries and tools. All the Python tools I have tried to match my Julia tools have just sucked. Julia tools often excel over much older Python tools.

Library development moves much faster on Julia than Python. It is not hamstrung by relying on complicated C++ code based. Also Julia libraries integrate very well, while Python libraries are often their own deserted island. That means a few Julia libraries can do what must be accomplished with dozens of Python libraries.

I don't think it's dead. You are right on the other points. I think that Julia could have its day, it's having a lot of trouble getting traction. I mean I remember 20 years ago being laughed at for using Python for a web app, but now look at python.
I wouldn't claim that it's dead - it just fails to deliver on its main promise and the developer experience is still quite poor.
In which way does it 'fail to deliver on its main promise' and how is the developer experience 'quite poor'?
Does Julia have the number of libraries that Python does?
No. But the quality of the libraries is often much higher, and can do things that are impossible in Python and in most other languages (owing to the high degree of Julia's polymorphism and homoiconicity).
It's somewhat the other direction. In the area that I work, scientific machine learning and differential equation modeling, Python does not really have a well-developed ecosystem while Julia has all of the tools. High performance methods with stiffness handling, automatic detection of Jacobian sparsity form a Julia program, methods for stochastic/delay/differential-algebraic equations, and the ability to embed neural networks into arbitrary differential equations and train them in a scientific context. Python is very far behind even MATLAB or Mathematica in this domain.
That's interesting. How do you think R fares in this respect?

(The problem that I'm having with Julia isn't the math/computational aspect, it's Julia's use as a more general purpose programming language in additional to math.)

That wasn't its main promise and that doesn't much affect the developer experience if the existing libraries are of high quality.