The wait is finally over!
The long-anticipated episode of Thinking Elixir Podcast with José Valim revealing Project Nx aired yesterday, and I cannot be more excited. In the previous issue, I hinted at some of the rumors and Easter eggs suggesting that Nx will have to do with high-speed number crunching. Indeed, Nx stands for Numerical Elixir. It is a brand new library, together with macro extensions to the language (numerical definitions), that will make possible the writing of performant tensor (multidimensional array) operations on millions of data points. All that has been achieved with as little copying of data as possible. Those of the readers who have worked with machine learning can think of this as Elixir's NumPy - a foundational Python library and a DSL that are the core of most of what makes the Python ecosystem so well-suited at solving ML problems.
I will leave the rest to José to tell about. In my view, he did an amazing job explaining the complexity of the ML domain in a non-ML-specific podcast. Kudos to him and Sean Moriarity for bringing this great addition to the Elixir ecosystem after only about a couple months of work on it!
As I posted on Twitter, once Nx gets out, we can start thinking about porting some of the knowledge over form the Python community. Elixir will need an easy-to-play-with data frame library (like Pandas) and a basic batteries-included toolkit of foundational ML algorithms (like scikit-learn). Anybody interested in bringing those to life? Ping me. I am willing to share my experience working with both.
Back to the links...