I recently read through a reddit post about Rust and its adoption. It questions Rusts suitability in startups.
Rust is rich in it’s features and is designed from the ground up with performance in mind. The focus on performance pressures developers to think harder about memory. This is exactly why Rust is well suited for embedded programming where resources are more limited.
I recently read through a reddit post about exactly Rust and its adoption. The post asks the simply question why isn’t Rust used more widely in companies that are not focused on embedded systems.
Some of the top reasons for why Rust is not suitable
- Steep learning curve
- Devs are expensive
- Isn’t meant for web development
And all of these are valid reasons. Lets take a closer look
Steep learning curve
It is true that, unless you have developed in C for a while, Rust is hard to learn. There are new concepts like ownership, macros, unsafe and concurrency. This makes it not ideal for developers coming from typescript or even Java.
You become a better developer by learning Rust
Why you might ask. The reason is that by focusing on memory and data flow you reduce the chance of unwanted side effects and in general write nicer code.
Devs are expensive
This is true. Rust is hard to learn and overshoot the requirements for web development by a mile.
Isn’t meant for web development
So you can absolutely develop web servers and even server side rendered pages in Rust. Although it might take you more time than doing it say in typescript. This is basically what the reddit post is about:
If you have a startup that burns cash to create an MVP, you will be happy to pay developers as little as possible for the quickest result. This is quickly excludes Rust developers and is a more fitting description for typescript or java developers. Now, say the startup is 3 years in with a web server only running typescript. You experience some issues related to undefined behavior that the transpiler is not able to catch. Also, typescript does not offer native types thus developers can get away with anything. Your choice is to double down on typescript or look for new languages to rewrite parts of your code in. Your options could be
- Go — strongly opinionated, easy to pick up, has support for concurrency, performant
- Kotlin (java) — similar to java, supports functional programming, concurrency, cross platform
- Scala (java) — functional
- Rust — rich, performant but hard to pick up for a team
- .NET — plays well with azure, huge developer base
Most companies would probably choose Kotlin, .NET or Go (if engineering is interested in something new). Unfortunately, Rust will most likely not be on anyones “rewrite parts of web server language”.
I think as a web developer you should not get your hopes up to ever write web servers in Rust. It’s just too much hassle. However
You should learn and read about Rust.
Because the knowledge obtain by doing so will transpile onto any other higher level language.
So when your Go program crashes because of a Nil pointer or your typescript runtime yells at you for “out of memory” don’t forget that there’s a programming language that is so so performant and the compiler would catch any dangling pointer.
The language is Rust
Like what you read? Please check out my other stories. They are mostly about Solana Rust development. See ya!