Curious if anyone in a DS role has tried it out. I'm certainly tempted to try it out, I'm sure I'm losing lots of performance in parts of my analytics pipeline due to Python being garbage slow.
Curious if anyone in a DS role has tried it out. I'm certainly tempted to try it out, I'm sure I'm losing lots of performance in parts of my analytics pipeline due to Python being garbage slow.
I think today the best way to try Nim is for slow Python utilities vi nimpy: https://github.com/yglukhov/nimpy
You can also use Nim in Jupyter the following way: https://github.com/apahl/nim_magic
My next step would be to improve interop between Arraymancer tensors and Numpy ndarrays.
But also: many many moons ago I had Matlab code that was really slow (and I wanted to run 10^LARGENUM simulations for Monte Carlo purposes) and decided to learn Fortran. It was surprisingly easy to learn, and it did cut my running time from afternoons to minutes. But in the process I found out that my Matlab performance problems were mostly due to arrays being dynamically resized all the time -- while static memory preallocation could be hacked easily in straight Matlab.
As for Python, numpy is a fast embedded minilanguage written in C; the difference between "pythonic" and "numpythonic" is not emphasized enough in bootcamps, I think.
My experience with numpy was that it was 11x slower than visual basic access in excel. I was deali g with a lot of small matricies instead of a big one and I think that contributed.
I want to try julia in production. About to try out rust in production.
I just love it. Super productive to work with and in my case faster than the C++ framework I'm replacing.
The ecosystem of course is pretty small. But for me wrapping C code, porting something or reimplementing some libraries can be a lot of fun, too. In my experience every hole I've found was easily plugged so far.
[1] https://github.com/Vindaar/TimepixAnalysis (recently due to ..reasons.. all development happened on the open PR)
If I want to fit a particular kind of model I'll probably have to roll my own, meaning I have to be familiar with what the algorithm is doing and why, rather than just importing something straight from sklearn.
I also need to pay more attention to the code as I'm writing it instead of lazily debugging by trial and error in the REPL like I can with Python.
Basically, I wouldn't recommend it at work, but it's been fun and useful at home.
However, don't expect the included data frame to be fast. That in combination with a dynamic nature has been out of scope for me alone.
It was an interesting language, for me it felt like a stepping stone to something better. But the docs were really bad,
This does not match my experience. The #1 way I see to optimize Python is to not write Python at all, and instead to FFI out.