|
|
|
|
|
by eigenspace
1908 days ago
|
|
What the OP is talking about is julia's method-based JIT strategy coupling very well to multiple dispatch. JIT is not new, multiple dispatch is not new, and multiple dispatch + JIT also isn't new, but nmo existing langauges combined them in a way that allows for the fantastic, efficient devirtualization of generic methods that julia is so good at. This is why things like addition and multiplication are not generic functions in Common Lisp, it's too slow in CL because the CLOS is not able to efficiently devirtualize the dispatch. In julia, everything is a generic function, and we use this fact to great effect. CLOS and Dylan laid a ton of important groundwork for these developments, but they're also not the same. |
|
The really nice thing about CLOS, though, is that the meta-object protocol lets you choose an implementation of OOP that makes sense for your use-case.