4 ms·
It's not really a random choice in this case, Julia was created on MIT, and this is an MIT course. It's also free and open-source unlike it's competitor Matlab.
by ddragon 6y ago
It's not really a random choice in this case, Julia was created on MIT, and this is an MIT course. It's also free and open-source unlike it's competitor Matlab. It's also a very appropriated language for the theme considered it was designed by and for mathematicians and physicists (even if it targets beyond those areas). And it's not like it's going very deep on the language.
But most importantly, it's a good idea to learn many programming languages even if you think you're not going to work with them. Each language teach new concepts (immutability, OOP, monads, ownership, macros and in Julia's case multiple dispatch in particular) that not only increase your repertoire of abstractions and ways to understand and solve a problem, but they also allow you to quickly move between languages when needed (for example if you find a nice job that happens to use one of those "niche programming language", which was my case with Elixir).
- Protostome 6y agoPython is a very well established programming language with plenty of support for scientific computing. If the course authors would like to make the course accessible to as much people as possible, there are very few reasons to choose languages which are not widely adopted.
- ddragon 6y agoI answered above on a general sense, but this course is Introduction to Computational Thinking. First it's an introduction course, so it's not required experience with any language (you have lessons explaining arrays for example). Second it's a theoretical course (computational thinking, not something like applied data science), not a practical one, so that support is not important here since things are being written from scratch (the second lesson is about convolution, and the exercise is writing the convolution function). You can probably agree that simply using numpy.convolve wouldn't teach as much as writing your own, and writing in Python would end up too slow for the larger images used unless you use Numba/PyPy/Cython (or make less pseudo-code version by vectorizing everything in numpy), all stuff that is not very introductory level. And Julia does have features besides speed that makes the course better for beginners, for example native multidimensional arrays. Images are just matrices of RGB pixels that you can freely manipulate like you would Python arrays (without the need to learn a library like numpy or any kind of conversion). And Pluto.jl reactive nature allows you to have immediate feedback of everything you change.