5 ms·
The main issue I encountered as a Julia user is that multiple dispatch doesn't scale very well. When you start building out a project, it's easy to keep track
by ritoune 8y ago
The main issue I encountered as a Julia user is that multiple dispatch doesn't scale very well.
When you start building out a project, it's easy to keep track and debug if multiple dispatch starts failing (i.e. <any> type starts spreading everywhere and Julia slows to Python like speeds).
In medium-to-large projects, it becomes extremely cumbersome to manage this. It's doable, but adds a layer of complexity management to projects that simply doesn't exist in strictly typed or pure scripting languages.
Of course, you can just decide to explicitly type everything - but the issue here again is the lack of enforcement.
In a nutshell: Julia is great when you're a grad student working mostly by yourself on small scale projects! But not so great in prod.
And there's really no problem with that; that's who the language was designed for!
- nicoburns 8y agoThe optional typing seems like the perfect solution to this... skip explicit typing for small scale projects, but make sure you add it for production...
- byt143 8y agoBoth cassette based performance linting and static type checking will solve this problem. There are already the beginnings of the tooling being formed.
- m4x 8y agoI think multiple dispatch will scale perfectly fine for large projects when it has better IDE support. There's no reason Juno or any other IDE couldn't display the output of a static analyser inline, or allow you to command-click a function call to go to the site of the exact function being called, or show a list of alternatives, and so on. Give Julia and its IDEs a few years to improve and you might find it much better suited to large projects. I wouldn't consider Java any good for large projects either, if it didn't have the excellent IDE support it now enjoys.
- ethelward 8y ago> In a nutshell: Julia is great when you're a grad student working mostly by yourself on small scale projects! But not so great in prod. Some people would disagree with that https://juliacomputing.com/case-studies/celeste.html https://juliacomputing.com/case-studies/celeste.html
- antpls 8y agoThis was published on their own website, it is therefore biased toward a good perception of them. It doesn't seem to be a fair and independent review to help build an opinion.
- ethelward 8y agoAnd these were not published on their website: https://arxiv.org/pdf/1801.10277.pdf https://arxiv.org/pdf/1801.10277.pdf http://proceedings.mlr.press/v37/regier15.pdf http://proceedings.mlr.press/v37/regier15.pdf https://arxiv.org/pdf/1803.00113.pdf https://arxiv.org/pdf/1803.00113.pdf I had to go so far as to read the project Github page to find them.
- antpls 8y agoIn all those papers, there at least one member of the team in the author list, or a member of a partner organization (Intel, Lawrence Berkeley National Laboratory, etc). I wouldn't call them fair independent reviews of the language.
- ethelward 8y agoAre you really complaining that the people writing about the tool are the ones developing it? Whose opinion do you want, the Pope? Would a divine sanction be enough for you?
- tremors_123 8y agoWould a divine sanction be enough for you? No, but a reliable and independent opinion will do it. And to be honest, the Julia fanboys are becoming increasingly bothersome and pernicious to the data-science community with their over the top and heavy handed evangelism
- ritoune 8y agoSorry - I didn't mean to sound so negative! I'm very well aware of all the large Julia use cases and they're often great applications of the language. I would also argue that the large open source Julia packages are also great examples of Julia "in prod". Just highlighting what I think is a significant con in a language with many pros!
- ummonk 8y agoYeah, my biggest want for Julia 2.0 would be a built-in static type analyzer.
- oxinabox 8y agoThat is neither a breaking change, (and thus could come in 1.3) Nor something that needs to be baked in. (thus could be in a package)