Hacker News new | ask | show | jobs
by lasagnaphil 2104 days ago
One gripe I had with the Julia language: incredibly slow startup. Although it was touted to be good for quick interactive scripting, the time it takes for the JIT compiler to compile packages and scripts was a huge dealbreaker for me. (I expected simple operations such as plotting a line to be done in less than a second, but found myself waiting minutes for the plotting library to compile.) This really threw me off and prevented me from further exploring the language. Maybe I might consider trying it again when the situation is better.

The main culprit seems to lie in the fact that the LLVM JIT compiler isn't great in terms of performance, although it does compile Julia to really efficient native runtime code. For example, you don't have problems like this in LuaJIT: although the JIT does less thorough optimizations than Julia (hence probably slower and more unpredictable runtime performance), it wins in usability by having a really fast non-compiled interpreter path written in assembly (because Mike Pall is a robot from the future). Obviously Lua is quite different in the fact that it's fully dynamically typed while Julia has a static type system, and note in mind that Lua's design had some major flaws as a scientific language (hence most ML researchers moving from LuaTorch to PyTorch.)