4 ms·
This seems like a strange choice to me, the only reason for choosing Julia seems to be for speed but when doing any of these courses I can't see speed being muc
by Hansi 13y ago
This seems like a strange choice to me, the only reason for choosing Julia seems to be for speed but when doing any of these courses I can't see speed being much of an issue but rather the ability to leverage existing code and help available online and offline to learn the core mechanics of numerical programming.
In my opinion Julia is great but still a bit immature.
- JulianMorrison 13y agoLearning the speed of algorithms might well be part of the course - and in julia there is no sudden speed ramp between "done in fortran" and "done in matlab scripts". So you can write the naive, and then the progressively smarter implementation, and see how they speed up.
- idunning 13y agoI don't think speed is the only reason for using it - from my perspective in this context its more like free (in both senses) drop-in replacement for MATLAB, but with less "weirdness" than MATLAB (and Octave) that is also fast. I also think any "immaturity" is only really in the package ecosystem, especially after the release of 0.2. Even then, the package ecosystem is strong for the things that people really need (naturally), and of course you can call any Python package from Julia if you want as well.
- jordigh 13y agoWe try to not implement some of the biggest Matlab weirdness whenever possible: http://wiki.octave.org/FAQ#How_is_Octave_different_from_Matlab.3F http://wiki.octave.org/FAQ#How_is_Octave_different_from_Matl... Sadly, this is not possible very frequently.
- idunning 13y agoMust be frustrating! Octave provides a valuable service to the community.
- gajomi 13y agoIt may indeed be a strange choice, but I think there are many reasons for why one might try Julia beyond the speed aspect. The main one for me (and I think the language designs also state something to this effect) is the language wide paradigm of multiple dispatch on parametric types. Coming originally from a C/Fortran old school numerical computing background, it seems to me that many of the best numerical software (your lapacks,fftws, and whatnot) eventually end up at a point where you have a flat collection of a bunch of foo functions with some protocol over the function suffixes and signatures, so that you can can get at an optimized foo_* at the bottom level with a uniform interface through a top level foo at the level of granularity of basic fooness as understood by end users. Julia formalizes this structure, which is I think part of how it achieves speed, but more importantly allows people to focus on programming to the essential abstraction and adding in methods to optimize or specialize after the fact.
- StefanKarpinski 13y agoI love this post – you really get it :-)