top | item 35885257

(no title)

jbieler | 2 years ago

This makes a big difference in usability, before loading a big project was almost in the "coffee time" category, now it's more "wait a few seconds". It helps a lot to make the tool feel more responsive.

discuss

order

tastyminerals2|2 years ago

So, you mean that loading a bigger project in Julia was more or less equal to compiling it with some language like C++? And you had to do it every single time in order to work with the project? This doesn’t sound too good tbo.

krastanov|2 years ago

That used to be the case before this version, indeed. It was due to how incredibly difficult it is to cache code efficiently in a language that (1) dynamically compiles things and (2) supports multimethods. Point 1 is crucial for the high performance, and point 2 is crucial for the incredible composability of libraries and reuse of code. To my knowledge julia is the first language to solve both with UX that is getting better and better. JAX/PyTorch/Tensorflow have some similarities (with long compile times for models), but lack the composability.

adgjlsfhk1|2 years ago

It isn't. That said, it's not as bad as it sounds at first because there are tools like Revise.jl which let you change code without recompiling.

gugagore|2 years ago

You did not have to do it every single time. There are many changes you can make that are handled correctly by Revise.jl

GaryNumanVevo|2 years ago

In practice, it's not a huge issue. Static imports are already precompiled and any code paths within your project are cached. Typically people will use a single session and use hot code reloading, so any changes in the codepath will need a recompile (on the order of milliseconds).