Arguments to convince your team to use Rust

I'm not sure if this is the appropriate place to talk about this.

I just started learning Rust a few days ago.
I'm new in a company that doesn't quite see the value of Rust.

For now, I was assigned in a small R&D project that looks ideal to test out new technologies with a team of beginners who also recently joined the company.

Now, I wanted to promote Rust in for the project, but most of the members have mostly experience in Java for backend, and Angular for Frontend. Me included.
Most other developers are super scared whenever I talk about learning and using Rust in the project, because they some rumors of memory management and thus have a bad image of no-garbage collector languages.

How would you talk about Rust to your fellow team members ?
To make them and a company view this language more positively, etc.. ?

Honestly? I wouldn't, unless you actually already have a good reason to do so. For example if you have some self contained component or process that has a severe enough performance issue that you're already looking to significantly update or replace, or if you need to ship a self contained process without a runtime, etc..

Rust is not anything like a drop in replacement for Java, and certainly not for JavaScript. For now at least, it's best used as a complement to more traditional web app set-ups, rather than replacing them.

There's maybe a much stronger argument for serverless, where cold start and memory is such a huge deal...

3 Likes

Do you mean for new projects that we are developing from scratch or for old projects that have been developed on other languages for multiple years ?

In my case, everything will be developed from scratch.

Correct me if I'm wrong. What I kind of understood in your reply is, when you say

For now at least, it's best used as a complement to more traditional web app set-ups, rather than replacing them.

you suggest that Rust isn't mature enough to do the job as well as Java, when it comes to making a backend for a web app ?
Or did you mean something else ?

Thanks a lot for the feedback.

I suggest Rust as a language isn't really a good match for many web servers - that's not too say that you can't use it, and it may even be a good idea with the right team or problem, but in my opinion straightforward CRUD APIs and database stuff isn't nicer enough in Rust for the additional complexity the language can cause, especially for a team new to the language.

That said, feel free to make a simple prototype of something in Rust and give a demo: there's enough "shiny" in things like sqlx to make that a compelling example and get the conversation at least started. I'm just saying that asking a team to learn a significantly different language without a specific strong reason is rather unfair!

Rust is a really nice language that I really enjoy using, but it doesn't need to be the best at everything for everyone.

1 Like

Rust for backend web development shines when your domain demands extra correctness, so to speak. You can listen to stories from lead developers on their Rust adoption journey, for inspiration.

If your domain revolves mostly around CRUD APIs (as is the case for most web applications), then you wouldn't benefit much from using Rust. On the contrary, Rust correctness would only hinder your team, specially when you are at the move fast and break things phase of a startup or code project.

I think that you also need to consider that there are non-technical disadvantages to introducing a new programming language into an organization, be it Rust or any other. Furthermore, there are perceived and real disadvantages.

Perhaps the major disadvantage is added cost. It requires retraining, productivity will (temporarily) slow down, etc. Particularly to Rust, finding new programmers familiar with the language may not be as easy, given that the pool of candidates is still much smaller compared to more established languages. For example, in many university courses, the language of choice is Java, C++, or Python.

Additionally, resistance to change is a real thing. Some people have it more than others.

In the end, the technical advantages must be weighed against the disadvantages (technical and non-technical, perceived and real). Your arguments in favor of Rust must include all of these factors.

1 Like

Do you have a problem to solve that requires Rust?

Some service that is too slow or uses too much memory? Or a component that must be secure and stable, but the team struggles with bugs in it?

If the team doesn't have problems that existing languages can't solve well, then there is no reason to rewrite things in Rust.

You aren't considering the significant learning curve associated with this language. It's one thing to implement a Rust learning curriculum for this company; it's another to schedule paid work even though there will be conversion from a standing start to a new tool. As a language evangelist, your energy is better spent building the former, not implementing the latter.

Something else. Rust is actually nicer to write backend than Java. But only if you already know Rust.

For the team of experienced Java programmers this wouldn't be a got fit: you would need a year or two to become as proficient in Rust as you are in Java and then couple more of years to catch up with your competitors that are using Java or JavaScript.

That four of five years — eternity in web space.

That's only if you are doing typical web app. If you need something specific, like very high load, very low latency or something that you would use C++ in old days… Rust is better, no doubt about it.

Or if you have team members who are already proficient in Rust.

But not in the situation as you describe it. Rust is complicated and while this pays and pays big long-term, most web projects just don't operate on timescales where that may happen!

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.