Why Rust will take over the world

There are 2 kinds of programming languages: good programming languages and the others. Rust is a good programming language. Since this is only an opinion, it is not why Rust will take over the world.

Something special is happening with Rust. Something that may be unprecedented.

What is happening ?

Everybody is rewriting everything in Rust.

You may argue that this is nothing new, and you will be right: When Java became popular, everybody was rewriting everything in Java. When Go became popular, everybody was rewriting everything in Go.

Then what ?

It failed to various degrees ...

The usual pattern is: everything is rewritten in a language, then only some projects are really successful, and the language is declared "domain specific". That's why people recommend different languages for different applications. It makes sense to some degree, but often it's more dictated by practicalities rather than language issues.

How is that different with Rust ?

Not many rewriting projects fail because of the language. It proves to be extremely versatile: command-line apps, libraries, web servers, web apps, 3D, games, embedded firmware, ... Rust fits quite nicely in many situations.

But there's more

The real reason why Rust will take over the world:

Rewritten parts integrate nicely with legacy code and don't break existing interfaces.

You are replacing a command-line utility: you get a plain binary with no more dependencies than the original. You are replacing a library ? Provides the same C-style calling convention as your libxxx.so so it's a drop-in replacement. You are doing a web application ? You provide the same bindings and loading interface. 3D ? Same access to the GPU. You are doing bit manipulation for low level firmware ? Rust has all types ready for all your needs.

And the language itself has no overhead: no garbage collector, no strange stack handling, no mandatory signal handler, no huge runtime.

Rust can interact beautifully with legacy code, meaning that it can replace legacy gradually. That's the difference.

And that's why Rust will take over the world.

But there is <insert other language>

Python

Python is a scripting language. A good one. Use Python and Rust.

It will not be replaced by Rust.

C++

C++ is a mess. Let's face it. As much as I like C++ for its qualities, Rust has no disavantage because it can use C libraries too. C++ only libraries are not that important anyway, most of them are C libraries so binding is okay.

It will be replaced by Rust. Because Rust is taking over the world.

Javascript/Typescript

Javascript is compiled nowadays, losing its 'script' properties. And the language is a mess, it provides so little guardrails it's painfully unsafe.

It will be replaced by Rust. Because Rust is taking over the world.

Java (and its derivatives)

The JVM is messy and invasive. Bindings to other languages are painful. The API is quirky. The garbage collector is less than ideal.

It will be replaced by Rust. Because Rust is taking over the world.

Go

Garbage collector = garbage language. Bindings are hard. Static linking is a problem. Does not play well with the environment around it. Not for embedded.

It will be replaced by Rust. Because Rust is taking over the world.

C

C23 has nice ideas, good features. The language is simple, clear, easy to learn. But while it gets better it's still unsafe. Also, it lacks modern libraries for correct file handling.

It's still the cleanest language for low level stuff though.

It will be replaced by Rust. Because Rust is taking over the world.

C#

The .NET API is horrible to use. The language isolates the programmer from the system, forcing everything to be coded in .NET. It has very interesting introspection and late binding features though. Its runtime is decent.

It will be replaced by Rust. Because Rust is taking over the world, but that will take a lot of time and effort.

PHP

LOL

It will be replaced by Rust. Because Rust is taking over the world.

Perl

It has already been replaced.