News for hackers. Stuff that matters.
Re:Julia Language Co-Creators Win James H. Wilkinson Prize f... by tombert on Wednesday January 23, 2019 @10:22AM (#18978863)
I'm not sure how I feel about multi-dispatch...I've had a few headaches chasing down problems with multimethods in Clojure...I'd have to try using Julia full-time to see how it feels.

I was unaware that Julia was homoiconic...I'm somewhat of a Lisp fanboy so I might need to give the language another chance.

Re:Julia Language Co-Creators Win James H. Wilkinson Prize f... by lenticular on Wednesday January 23, 2019 @10:40AM (#18979086)
There's pretty big differences in usage between multimethods in Clojure and Julia. I've used both a decent amount. All functions in Julia are multimethods by default. If you don't use type annotations, a new method will be generated whenever you call the function with new argument types. This explicit type specialization is a very important part of why Julia can have such a consistently fast JIT despite its dynamicity.

Errors from missing or conflicting methods tend to not happen much in practice.

https://docs.julialang.org/en/v0.7.0/manual/methods/

Re:Julia Language Co-Creators Win James H. Wilkinson Prize f... by nicoburns on Wednesday January 23, 2019 @11:28AM (#18979655)
> If you don't use type annotations, a new method will be generated whenever you call the function with new argument types.

Damn. That's a pretty clever trade off between dynamic and static types.

Re:Julia Language Co-Creators Win James H. Wilkinson Prize f... by vanderZwan on Wednesday January 23, 2019 @12:05PM (#18980054)
I vaguely recall a talk by Stefan Karpinsky where he mentions meeting one of the big names in compiler land (working on V8 or something) and they said Julia's JIT is just a lazily evaluated AOT compiler, and as a result much simpler than the JITs typically seen in other languages.
Re:Julia Language Co-Creators Win James H. Wilkinson Prize f... by tombert on Wednesday January 23, 2019 @10:59AM (#18979306)
Forgive a bit of ignorance here, but that doesn't sound terribly different than overloading functions in C++. Am I way off on that?
Re:Julia Language Co-Creators Win James H. Wilkinson Prize f... by KenoFischer on Wednesday January 23, 2019 @11:05AM (#18979395)
The difference is run-time (semantically) vs compile time. If you had overloading at runtime in C++, you wouldn't need virtual functions or any of the thousands of OO "patterns" (visitor, factory, etc.), that are working around the lack of this capability.