8 ms·
Gosh, it seems every day I see a new shiny thing made with Rust that was developed remarkably quickly, runs quite smoothly, and appears to be magically bug-free
by cs702 6y ago
Gosh, it seems every day I see a new shiny thing made with Rust that was developed remarkably quickly, runs quite smoothly, and appears to be magically bug-free.
I'm sooo tempted to dive into Rust head-in. Have only dabbled a bit with it so far. The main thing holding me back at this point is that Rust seems to lack a decent ecosystem for data science and AI/DL/ML (in particular, a set of crates that has proven useful and stable in real-world AI/DL/ML applications).
- shpongled 6y agoWhat kind of libraries are you looking for? I know there is ongoing work on things similar to numpy/pandas, but that kinda stuff is more complicated in statically typed languages. That being said, you should definitely give Rust a try. I find it to be an absolute joy to use
- cs702 6y agoYes, it would be great to know there are mature facilities for manipulating dataframes and arrays, along with mature linear/tensor algebra facilities, ideally with support for offloading computation to GPUs and TPUs. The equivalent of something like scikit-learn, even if it fall short of its breadth and depth. Also, facilities for automatic differentiation, or alternatively, stable and well-supported integration with frameworks like TensorFlow and/or PyTorch (tch looks like a possible option). PS. The link shared by dabreegster has a fairly detailed list of missing facilities: https://news.ycombinator.com/item?id=23615175 https://news.ycombinator.com/item?id=23615175
- dabreegster 6y agohttp://www.arewelearningyet.com http://www.arewelearningyet.com is a good overview. And if there's something missing, trying to create it yourself could be a way to learn the language, even if the result doesn't actually do everything you need.
- cs702 6y agoThank you for sharing that link. The tagline on that page summarizes my views quite well: "...but the ecosystem isn't very complete yet." It's nice to see that others are thinking the same. I'll take a look.
- rckoepke 6y agoI truly wonder, what is it about this community that leads to such quality software? Your reaction to arewelearningyet is similar to how I feel about: https://areweguiyet.com/ https://areweguiyet.com/ However, at least for GUI I know that Raph Levien is really pushing a focus on GUI at the moment. https://raphlinus.github.io/rust/druid/2019/10/31/rust-2020.html https://raphlinus.github.io/rust/druid/2019/10/31/rust-2020.... I wish I could contribute more. You really summed up how I feel about Rust: "It seems every day I see a new shiny thing made with Rust that was developed remarkably quickly, runs quite smoothly, and appears to be magically bug-free." Even the maligned actix web framework in Rust is still leading performance benchmarks: https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=db https://www.techempower.com/benchmarks/#section=data-r19&hw=...
- qchris 6y agoIf you're interested, there's an unofficial working group that's been organized to start doing development in machine learning for Rust at https://github.com/rust-ml https://github.com/rust-ml . We actually have a meeting scheduled for later today--you can find details on the Zulip chat, even if you just want to pop in to see what people are up to. As others have mentioned, everything's pretty early-stage, but there's a lot of experimentation going on around scientific computing, GPU acceleration, etc. that you might find interesting, and we're definitely open towards community participation at all levels, even if you're a relative newcomer to the language.
- WhatIsDukkha 6y agoJulia is quite strong in these areas and there is this as a strategy - https://github.com/Taaitaaiger/jlrs https://github.com/Taaitaaiger/jlrs
- bigmit37 6y agoSame! I am looking to learn a low-level language and want to learn Rust due to all the things I have been hearing. However all the backend stuff (python)for deep learning is written in C++and nothing yet for Rust. I would love to avoid C++ as the language seems to have a lot of quirks and bugs that take time to get used (from what I hear) and these days I like efficient languages. As far I know there aren’t any good computer vision libraries for Rust?
- cs702 6y agoClearly, we are not the only ones feeling this way. I suspect that if PyTorch or TensorFlow were to provide support for rust as a first-class citizen they would get a whole new community of users very quickly -- people looking to write production AI/DL/ML code in a fast, practical, memory-safe, widely used language. The only other "fast, practical, memory-safe, widely used language" that looks like a real alternative to Rust is Swift. But unlike Swift, rust was designed from the ground up for for data parallelism and other forms of concurrency with "zero-cost abstractions" the allow "fearless concurrency" (e.g., take a look at https://github.com/nikomatsakis/rayon/ https://github.com/nikomatsakis/rayon/ to get an idea of what's possible), and for predictable performance (e.g., compiled code doesn't suddenly slow-down to collect garbage or synchronize reference counts among CPUs). Concurrency appears to have been an afterthought in Swift's case, explicitly: https://gist.github.com/lattner/31ed37682ef1576b16bca1432ea9f782 https://gist.github.com/lattner/31ed37682ef1576b16bca1432ea9... . See also https://doc.rust-lang.org/book/ch16-00-concurrency.html https://doc.rust-lang.org/book/ch16-00-concurrency.html and https://blog.spencerkohan.com/impressions-of-rust-as-a-swift-developer-2/ https://blog.spencerkohan.com/impressions-of-rust-as-a-swift... Data parallelism and other forms of concurrency should become more and more important over time as models grow larger and larger, well beyond GPT-3's 175 billion parameters. This would favor rust.