5 ms·
Amazing! Rustler precompiled[1] is exactly what I was looking for to start writing NIFs in Rust. Having to bring in the entire Rust toolchain stopped me every
by peoplefromibiza 5y ago
Amazing!
Rustler precompiled[1] is exactly what I was looking for to start writing NIFs in Rust.
Having to bring in the entire Rust toolchain stopped me every time I thought about it - not mentioning that at my current day job I'm not completely at liberty of deciding what tools I can/cannot use.
Combined with Livebook[2] this is the perfect combo to lure into the Elixir ecosystem my fellow data scientists colleagues.
[1] https://dashbit.co/blog/rustler-precompiled https://dashbit.co/blog/rustler-precompiled
[2] https://livebook.dev/ https://livebook.dev/
- pdimitar 5y ago> Having to bring in the entire Rust toolchain I relate to the general sentiment, mind you, but Rust is brainlessly easy to install. But even if you seriously don't want to even do that (two shell commands) you can still pull a Docker image and work inside it -- but that's a bit more involved, granted. I applaud the Rustler Precompiled effort because apparently it lowers the barrier to entry for many -- yourself included -- but at least for me installing Rust was never an actual problem. As for Explorer, I have a few friends that curse at Python and Pandas every week, I might be able to "sell" them this project instead!
- peoplefromibiza 5y ago> I relate to the general sentiment, mind you, but Rust is brainlessly easy to install. True, my issue is with releasing libraries that need Rust. It forces the users of the library to install Rust, adding friction, and possibly deal with issues/errors that they are not used to. Especially on heterogeneous systems: library developed on Linux, user is on Mac/Windows. One example is my day job where the CI platform is controlled by another department and you can't create your own custom Dockerfile(s), because "security". On the developers' side Rust is completely fine, in fact IMO Python is much more problematic, despite being an order of magnitude more popular.
- pdimitar 5y agoOh yeah, agreed, distribution becomes little more involved. In these cases Rustler Precompiled is a complete bliss indeed. ^_^
- umren 5y agoYour friends haven't tried R and Julia? I don't see how elixir can replace python any time soon because it's DS ecosystem is lacking rn sadly
- pdimitar 5y agoOh, he definitely tried R but was not very impressed. Says it's only moderately better than Python's otherwise excellent bindings to a lot of libraries, and that he had no patience for Julia. He isn't exactly a programmer, he's just a very practical guy that is open to learning some programming to get his stuff done quicker and with less mistakes but that's about it. He has a short fuse for ecosystem deficiencies -- tbf I think we the programmers have to learn from such people. :D And yeah, Elixir's scene in this area is just now starting. The NX project opened a lot of possible doors but the community just started stepping up. It's going to be a while, granted, but I am optimistic because Elixir's overall community values quality and centralization (with all the sometimes problematic collaboration efforts that entails) over rushing to have 10 competing implementations. Time will tell. I have no horse in the race either way, just sharing various observations really.
- jasonpbecker 5y agoAs an R user who can't stand working in Python, where Elixir I think has the most potential is not the data science part but data engineering. The whole world of ELT/ETL pipeline and workflow tools written in Python is a mess IMO, and Broadway/Flow + Ecto + what's going on with Explorer etc I think can quickly replace a whole mess of python/scala/EMR type workflows in a language and environment that feels way better suited to the problem space, in my experience.
- pdimitar 5y agoYeah, can confirm, I did a ton of Elixir work in the ETL space and it's amazingly well-suited for it. If you don't get an OCD over the fact that it obviously can't work as fast as Rust (realistically it's likely anywhere from 30x to 100x slower even) then the ergonomic and intuitive syntax combined with the transparent parallelism create an all-around win. So far I've never regretted using Elixir for ETL, but I do confess that for two projects I was mighty tempted to try a rewrite in Rust because ingesting several dozens of billions of records in a dynamic language isn't exactly fast. But, again, the ergonomics trump everything else 99% of the time for me. Plus for one-off ingestion tasks nobody cares if it takes 30 minutes or the whole night.