3 ms·
> Julia seems like a much better target for this Exactly, at least from an outside perspective, why tf?! It seems like people love so much bolting stuff to "cl
by nnq 7y ago
> Julia seems like a much better target for this
Exactly, at least from an outside perspective, why tf?! It seems like people love so much bolting stuff to "classic, conservative" languages that they do it even if it's 10x more work than doing it in a language already having full fledged mature real macros. And this is not Common Lisp we're talking about... Julia is a pretty "normal" language that wouldn't scare anyone off!
(EDIT+: though, as a software engineer primarily, I do have a slight personal preference for more classic single-dispatchy languages like Swift... I imagine that in general it's some king of Stockholm-syndrome we developers experience :P)
- deleted 7y ago[deleted]
- MiroF 7y ago> "classic, conservative" Very odd to see these words used in conjunction with a modern language like Swift.
- dnautics 7y ago> classic single-dispatchy languages like Swift Is C++ not classic enough these days?
- madhadron 7y agoHard to categorize C++. The base object system is single dispatch, but the way you use the STL is multiple dispatch.
- dnautics 7y agoYou can overload any function in c++. It's multiple dispatch.
- ddragon 7y agoMultiple dispatch is a little more than just overload. In C++ if you have a base class Animal with two derived Dog and Cat, and you have an Animal * pointer to Dog or Cat and do animal->walk() it will dispatch to either the Dog or Cat method (single dispatch). If you do animal->meet(animal) it will dispatch to either dog.meet(Animal * ) or cat.meet(Animal * ), not dog.meet(Dog * ) or cat.meet(Cat * ) like multiple dispatch languages do. You need a visitor pattern in C++ (or apparently templates) to get double dispatch: https://en.wikipedia.org/wiki/Visitor_pattern#C++_example https://en.wikipedia.org/wiki/Visitor_pattern#C++_example
- cbkeller 7y agoJulia seems to be making good progress on this front anyways :) https://github.com/FluxML/Zygote.jl https://github.com/FluxML/Zygote.jl