Rust? 🤓 #103
Labels
discuss
Share your constructive thoughts on how to make progress with this issue
enhancement
New feature or enhancement of existing functionality
epic
A feature idea that is large enough to require a whole sprint (5 days) and has smaller sub-issues.
question
A question needs to be answered before progress can be made on this issue
research
Research required; be specific
technical
A technical issue that requires understanding of the code, infrastructure or dependencies
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-wanted
What?
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 on
Rust
:Rust Demystified 🪄 Simplifying The Toughest Parts: https://youtu.be/TJTDTyNdJdY
Rust's Alien Data Types 👽 Box, Rc, Arc:
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 why
Elixir
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 where
Rust
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 use
Rust
until we have a legit need.But if anyone
else
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 adopting
Rust
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. on
AWS 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.The text was updated successfully, but these errors were encountered: