Open nelsonic opened 1 year ago
Why Rust is actually good for your car: https://medium.com/volvo-cars-engineering/why-volvo-thinks-you-should-have-rust-in-your-car-4320bd639e09
Volvo using Rust in their infotainment. Via: https://news.ycombinator.com/item?id=32960768
Flutter Rust Bridge: https://github.com/fzyzcjy/flutter_rust_bridge
Web Scraping with Rust: https://github.com/kadekillary/scraping-with-rust π Looks like there are already quite a few useful libraries in this space! π https://github.com/causal-agent/scraper appears to be maintained. π
Using Rust with Elixir for code reuse and performance:
https://blog.doctave.com/2021/08/19/using-rust-with-elixir-for-code-reuse-and-performance.html
Still no built-in/Native Websocket in Rocket? https://github.com/SergioBenitez/Rocket/issues/90 π€·ββοΈ
Context
Rust
has been at the TOP of the "most loved" programming languages list for the last few years: π https://survey.stackoverflow.co/2022/#technology-most-loved-dreaded-and-wantedWhat?
Rust
is a multi-paradigm, general-purpose programming language. Rust emphasizes performance, type safety, and concurrency.The aspects that appeal to me about
Rust
are:JavaScript
- and all compile-to-JS languages!) π¦ΊC
so if we need to perform lots of ops fast ... πThese pros are all great, but the learning curve for
Rust
is considerably steeper than forElixir
. πWe have all dabbled with
Rust
informally, but haven't had a need for it in a project yet. π§βπ» Recently I've enjoyed watching "Code to the Moon" videos onRust
:Rust Demystified πͺ Simplifying The Toughest Parts: https://youtu.be/TJTDTyNdJdY![image](https://user-images.githubusercontent.com/194400/188086720-cb46b6be-f554-492a-b998-f10d7a89e231.png)
Rust's Alien Data Types π½ Box, Rc, Arc:![image](https://user-images.githubusercontent.com/194400/188087219-e4d0d6cf-81f9-4c4b-8745-e1a70daddb97.png)
They have been an acute reminder of how much more complex
Rust
code is when compared toElixir
.I feel that we already have a superb Tech Stack with
PETAL
+Flutter
until we needRust
forperformance
orsafety
reasons. All the practical reasons whyElixir
is a great choice for the product/services we are building are still relevant. And the learning curve for new contributors is virtually flat forElixir
whereas having aRust-wall
to contribution on our coreApp
might put a lot of people off ... the counter-argument is obviously that usingRust
would be evidence of our focus onperformance
i.e. "Never waste anyone's time"How?
There is a great Free / Open Source Book: https://doc.rust-lang.org/book and we have a repo waiting to be populated: https://github.com/dwyl/learn-rust
There is evidence that
Rust
works on iOS and Android so we could explore those options but AFAIK it's all very experimental ... π§βπ¬ But whereRust
would shine would be in handling a specific aspect of compute for us such as transforming large data structures. We don't currently have the need for it. Which is why I haven't invested the time to get good at it. I want to resist the temptation to invent a "reason" to useRust
until we have a legit need. But if anyoneelse
reading this wants to proactively learnRust
and populate the dwyl/learn-rust repo ... It would be awesome if it could match the dwyl/learn-elixir in terms of getting setup, basic syntax and examples. I wouldn't be opposed to adoptingRust
for a specific performance/safety-focussed element in the stack. For that we could either run it as a Erlang NIF function e.g: https://github.com/rusterlium/rustler or an independent "microservice" e.g. onAWS Lambda
orFly.io
πTodo
If you want to work on this.
Rust
by commenting below.branch
and make notes in the dwyl/learn-rust repo.