“In the last few months, I have been shifting the focus of my work towards scientific computing, be it for cryptographic applications, machine learning or neural networks. I have been hard-pressed to find an environment that satisfies me fully.
I do most of my daily work in Scala, and while I am still a big fan of it, trying to make it into a tool for scientific programming often hits its limits. A few things are desirable:
- raw speed, in particular when writing inner loops
- a predictable memory layout is necessary to be cache-friendly and to interface easily with C libraries
- the possibility to interface easily with dedicated hardware such as GPUs and FPGAs
- did I mention speed?…”