3 ms·
I agree with your overall point. I think the outlier might be Rust. Somehow it's managing to gain traction despite the headwinds you mention.
by CoastalCoder 4y ago
I agree with your overall point.
I think the outlier might be Rust. Somehow it's managing to gain traction despite the headwinds you mention.
- frogulis 4y agoI guess it fills a niche that companies really need filled
- ghaff 4y agoA lot of it's legacy but there's a lot of C/C++ out there. So something that can be used as a system-level language and that also (for the most part) has memory safety is going to be of interest to quite a few people even if they have to learn a new language.
- oneplane 4y agoOh, that's right, I knew I forgot one! It's even gaining traction in ML for some reason, we've been using it in an image processing pipeline because performance and safety-wise it simply had the best results. Edit: I even forgot to list Python. Maybe I should just look up some language popularity list and use that instead.
- ghaff 4y agoThis is a pretty widely-quoted list. https://redmonk.com/sogrady/2022/03/28/language-rankings-1-22/ https://redmonk.com/sogrady/2022/03/28/language-rankings-1-2...
- czbond 4y agoFor Rust and ML, are the tooling libraries available to any quantity in Rust that are present in Python? I was under the impression Python has such an advance runaway any other languages will be hard to catchup (eg: Go has been trying, R <ugh>, etc)
- microtonal 4y agoThere are obviously fewer ML libraries than for Python (sometimes worse quality, sometimes better), but if you are willing to invest time, it's definitely doable. E.g. I made a multi-task transformer-based syntax annotator in Rust using the tch Torch binding: https://github.com/tensordot/syntaxdot https://github.com/tensordot/syntaxdot In my current job I do NLP with Python, Cython, and some C++. I don't think implementing ML stuff in Rust was much more work. Once you are beyond the stage of implementing a small research project or toy model, most systems are going to contain a lot of custom, specialized code. You will have to do that work in any language.
- czbond 4y agoThank you for the informed response - really helpful
- qchris 4y agoThe most comprehensive current view of the Rust machine learning ecosystem at the moment is probably at https://www.arewelearningyet.com/ https://www.arewelearningyet.com/ (I sometimes help maintain this site) Rust has a weird mix at the moment, and not one that's likely to significantly change within the next 12 months, at least. Certain tools are genuinely best-in-class, especially around simple operations on insane amounts of data. Rust kills it in that space due to its native speed and focus on concurrency. There's also growing projects like Linfa [1]. that while not at the level of scikit-learn, have significantly increased their coverage on common data science/classical ML problems in the past couple years, along with improved tooling. The space does have a few pure-Rust projects coming down the pipeline around autodifferentiation, GPU compute, etc. that are likely to yield some really valuable results in deep learning, but that aren't quite available and will take some time to pick up some traction even once they're released. At the same time, areas like data visualization are unlikely to reach parity with something like matplotlib/pyplot in the near future. Python is the de-facto standard, and will be for some time, but Rust's ability to build accessible high-level APIs on top of performant, language-native libraries is attracting some attention and I wouldn't be surprised to start seeing ingress in the certain areas over the next few years, where instead of the Python/C++ combination, it's just Rust all the way down. [1] https://github.com/rust-ml/linfa https://github.com/rust-ml/linfa