Hi, the author here.<p>One of the hidden messages of the introduction is: watch Guy Steele's talks [1][2][3] if you are interested in data parallelism! These talks are not Julia-specific and the idea is applicable and very useful in any languages. My libraries are heavily inspired by these talks.<p>Of course, if you haven't used Julia yet, it'd be great if (data) parallelism gives you an excuse to try it out! It has a fantastic foundation for composable multi-threaded parallelism [4].<p>[1] How to Think about Parallel Programming: Not! <a href="https://www.infoq.com/presentations/Thinking-Parallel-Programming/" rel="nofollow">https://www.infoq.com/presentations/Thinking-Parallel-Progra...</a><p>[2] Four Solutions to a Trivial Problem <a href="https://www.youtube.com/watch?v=ftcIcn8AmSY" rel="nofollow">https://www.youtube.com/watch?v=ftcIcn8AmSY</a><p>[3] Organizing Functional Code for Parallel Execution; or, foldl and foldr Considered Slightly Harmful <a href="https://vimeo.com/6624203" rel="nofollow">https://vimeo.com/6624203</a><p>[4] Announcing composable multi-threaded parallelism in Julia <a href="https://julialang.org/blog/2019/07/multithreading/" rel="nofollow">https://julialang.org/blog/2019/07/multithreading/</a>
Takafumi has really built up some amazing infrastructure in the package ecosystem. His Transducers.jl [1] is really interesting and powerful and lately he's done a lot of work with things like FLoops.jl [2] and ThreadsX.jl [3] to try and bring the benefits of transducers to more 'regular' familiar representations so more people can enjoy the benefits. The basic idea behind all of it is that he has an efficient and modular way of describing various 'looping' constructs that can be stuck together, optimized and parallelized automatically.<p>It'd be quite interesting to see this stuff extended to GPUs.<p>[1] <a href="https://github.com/JuliaFolds/Transducers.jl" rel="nofollow">https://github.com/JuliaFolds/Transducers.jl</a><p>[2] <a href="https://github.com/JuliaFolds/FLoops.jl" rel="nofollow">https://github.com/JuliaFolds/FLoops.jl</a><p>[3] <a href="https://github.com/tkf/ThreadsX.jl" rel="nofollow">https://github.com/tkf/ThreadsX.jl</a>
There's a current MIT course call Introduction to Computational Thinking that's using Julia. I've watch a handful of videos so far. Good introduction to Julia.<p><a href="https://computationalthinking.mit.edu/Fall20/" rel="nofollow">https://computationalthinking.mit.edu/Fall20/</a>
Data parallelism is one of Python's most embarrassing shortcomings which is unlikely to be solved anytime soon.<p>This could be a big reason to switch!