6 ms·
There are several repeating (valid) critiques. There is also a sense that things won't get better. I don't think that's necessarily the case. I can't give time
by dklend122 4y ago
There are several repeating (valid) critiques. There is also a sense that things won't get better. I don't think that's necessarily the case.
I can't give timelines, but I'll list the themes and point to the very active work going on in those areas:
1. Static analysis/ it's hard to write large codebases of correct Julia code.
That's being addressed on several fronts:
a. Work on both traits/interfaces and sound static typing is progressing in Jan Vitek's group at Northwestern
b. User extensible type lattice for correctness proof of programs. See here: https://news.ycombinator.com/item?id=26136212 https://news.ycombinator.com/item?id=26136212
c. Jet.jl already catches method errors at JIT time. It's under-used IMO.
2. Compilation time and package dev latency.
a. We're getting close to native code caching, and more: https://discourse.julialang.org/t/precompile-why/78770/8 https://discourse.julialang.org/t/precompile-why/78770/8
As you'll also read, the difficulty is due to important tradeoffs Julia made with composability and aggressive specialization...but it's not fundamental and can be surmounted. Yes there's been some pain, but in the end hopefully we'll have something approximating the best of both worlds.
b. Runtime free static compilation: https://www.youtube.com/watch?v=YsNC4oO0rLA https://www.youtube.com/watch?v=YsNC4oO0rLA
c. Semantics for separate compilation: https://gist.github.com/JeffBezanson/dd86043ef867954bd7e2163ab66f8b4e https://gist.github.com/JeffBezanson/dd86043ef867954bd7e2163...
Some combination of the above should also address deployment scenarios, whether that be CLI, mobile, browser or even embedded (Yes, with an (expanding) subset of code, StaticCompiler can produce binaries down to the 10s of Kbs with real working Julia programs that use non trivial abstractions like subtyping and higher order functions)
3. Zygote is rough
a. Enzyme will do (almost) whole language AD, including mutation.
b. Diffractor.jl
- catelm 4y agoDo you have a link to some information regarding the work on traits/interfaces and static typing, please?