A Comparison of Futhark and Dex
futhark-lang.org
futhark-lang.org
It seems to happen that up and coming people look at the convenience that is NumPy and decide they can do better. This is cool, since without such an attitude, NumPy wouldn’t exist. I still think it’s hard to beat NumPy for all its faults, if you marginalize over the broad spectrum of scientific computing and data science.
I think NumPy is worth praising for demonstrating that parallel programming does not have to be difficult. Sure, NumPy itself usually does not run in parallel, but its vectorised bulk operations are potentially parallel, yet don't have any of the race conditions, deadlocks, and other complexities we usually associate with "parallel programming". The same style of programming could be implemented in a library or language where those operations really do take advantage of parallel hardware, still without risk of race conditions. NumPy is just one of many programming languages and libraries that have this property (even Fortran array expressions do), but NumPy is demonstrably accessible to data scientists, students, and others who are inexperienced or poorly trained in programming. Hell, if you add NumPy, R, MATLAB, and all the other bulk-parallel programming models used for quick data analysis scripts, it may be that most of the world's code is actually written in a data parallel programming style...
Yes, this is a better statement of the optimal trade off in NumPy.
> same style of programming could be implemented in a library or language where those operations really do take advantage of parallel hardware
I think this is well vindicated by Theano, Tensorflow and APL before them.
Current languages, runtimes and hardware currently force most work into this dense, rectangular, vectorized style to achieve reasonable performance, but we would like our ideas to not always remain stuck in this "rut" [1]. Dex is one exploration of how we can improve expressiveness and generality while still allowing for performant compiled artifacts.
Anyone have any perspective to share about ML-family languages in the domain of what we're calling 'data science' these days?