> Probability There is alea, though not integrated with the rest: [https://github.com/unicredit/alea](https://github.com/unicredit/alea) I do need very efficient sampling as well for natural language modelling so I already have a prototype of a fast sampler without replacement for the multinomial distribution. Actually I'm confident that it's currently state-of-the-art: [https://github.com/numforge/laser/blob/master/benchmarks/random_sampling/fenwicktree.nim](https://github.com/numforge/laser/blob/master/benchmarks/random_sampling/fenwicktree.nim)
> Statistical summary of data NimData probably has it, otherwise open an issue there. > Overarching lib for plotting Well we need good plotting packages first but since Vindaar is doing them all > Vega Lite I have a prototype here [https://github.com/numforge/monocle](https://github.com/numforge/monocle): it works, the code is very simple (50 LOC), I just don't have time to dedicate to it to integrate with Arraymancer or Nimdata. > Central tendency and mean (...) All are implemented in Arraymancer and parallelized > Loading formats NimData supports CSV, Arraymancer supports CSV, Numpy, HDF5 > Stable binary storage Arraymancer can load Numpy and HDF5 > Querying Dataframes Well there is only one dataframe library at the moment > Voyager AFAIK Vega-Lite format can directly interop with Voyager > REPL Already mentioned * * * In short, the ecosystem is not there. There is a lot of work but there are proof of concepts in all important area: ndarrays, plotting, dataframes, even REPL, binary format. There are also a couple of contributors and not just one person, and some actually use it for their research and contribute tooling. So it's certainly not R or Python or Julia but among all the fast statically typed language (including D, Rust, Zig, V, Crystal, Fortran, Ocaml, Haskell, ...), I don't see any other language coming close in terms of: * ergonomics (no thinking overhead because of unfamiliar language construct like borrow checker or Monads) * syntax, including operator overloading to have access to "+", "*" * libraries, for example none of those have a simple PCA * speed, using Nim means no compromise on speed. Now I've left aside C C++, they have a REPL (cling, xeus), they have everything needed for stats as they serve as the backends for Python and R, but they would feel heavyweight for iterative exploration of a dataset, especially C++ because of the busy syntax and the awful compile-times. And another thing C and C++ are missing is a good package manager. Lastly, I think the main advantage of Nim over Python or R is maintenance and deployment, obviously for a scientist as long as it works on their machine it's good but when you need to deploy a model dealing with all the dependencies is very painful while you could ship a binary with Nim or other compiled languages instead of a Docker.
