3 ms·
Dang, why can Common Lisp do this so well and Julia so poorly?
by the-smug-one 6y ago
Dang, why can Common Lisp do this so well and Julia so poorly?
- eigenspace 6y agoThe assumptions our compiler is able to make about types never changing (and a few other restrictions) allows for a lot of optimizations in julia that are not possible in Common Lisp. Julia's compiler is able to do a few things significantly more aggressively than CL. That said, there is some very interesting work happening on getting around these restrictions. There was a PR from Tim Holy a while ago that could have allowed it, but there were some problems with the PR, and there were also some associated costs that were deemed too steep to pay. That said, there's other great work on other ways around this. For instance, you can dynamically redefine structs all you want in Pluto.jl notebooks and there's no performance penalty! This is something that kinda just fell out as a natural consequence of it's reactive design.