4 ms·
I'm glad that courses like these are taught using Julia and not Python. I'll definitely have to go through this material.
by dunefox 6y ago
I'm glad that courses like these are taught using Julia and not Python. I'll definitely have to go through this material.
- edanm 6y agoInteresting, why is that? I'm a big Python fan, and don't know anything about Julia really. So interested in your thinking.
- ChrisRackauckas 6y agoOne of the reasons is because you can write a fast and scalable simulation directly in Julia. Something like Python will inhibit the speed of loops, scalarized nonlinear functions (like in ODEs), and multithreading. You could try to run an introduction to computational thinking (which is essentially introduction to computational science and introduction to programming at the same time) in C++ + Python, but then you spend half of the course teaching students how to handle C++ and how to link all of their compilation tools, and all of that is time not spent on the actual topic of the course. At one point I did this in a numerical analysis course, and it just detracts from the main message. But with Julia, the whole course is up and running on day one, and you can start with building bifurcation plots or agent-based models which then grow in complexity without having to rewrite for performance. Since these computational science courses always to try poke at studies of complexity, this is very essential.
- ViralBShah 6y agoOne thinks that language does not matter - but it often does. While conceptually they are all the same, Julia, through its performance allows one to achieve high performance without needing to write kernels in C. When one is writing computational codes to address new problems, one does not always have a library of well-written high performance packages to call. The ability to use a high levels of abstraction, that Julia offers, and then being able to run your programs at scale on heterogeneous hardware, is what makes Julia attractive. As a result, I am already seeing that Julia is already enabling a large number of scientists and engineers to write libraries and packages, instead of being end users. I believe that these numbers will explode in the coming years and computational science will further establish itself as a credible third pillar of science along with theory and experiments.
- dandanua 6y agoType system, multiple dispatch, performance, parallel programming, homoiconicity, etc (https://en.wikipedia.org/wiki/Julia_(programming_language)#Language_features https://en.wikipedia.org/wiki/Julia_(programming_language)#L...). It's hard to give up those features once you've tried them. And the syntax is comparable with Python on a simplicity level.
- dunefox 6y agoSimple: it's more expressive, allows user defined types, multiple dispatch, performance, etc. And with PyCall.jl you can use every Python library available.