laitimes

Stop talking about Rust over-hype

Author | thenewwazoo (screen name)

Translated by | Nuclear Coke, Liu Yan

Author's Voice: I have been careful to write this article, trying to avoid any statements that are too positive or easy to cause misunderstanding. I also have my own normal work and can't really devote myself to Rust publicity work, so I can only express my feelings with such an article. Space is limited, and the content of the article is certainly not exhaustive, so I listed the parts that I thought of but could not discuss at the end of the article.

Rust over-hype? Not so much

Whenever there is a discussion about Rust, it mostly ends with the "hype" problem.

Many friends feel that Rust has too many water troops on the Internet, and every day they hear statements such as "Rust is the best", "how rust is rust", "Rust yyds" and so on. These guys can't stop for a while?

It's true that Rust is very popular on the Internet, but do you remember when Java first emerged? If you don't remember, I'm afraid it's because you're still very young.

Back then, there were crap business magazines, and amazingly, they all loved to cover computers. We'll see a bunch of articles about the Java language, its future, and the problems it solves.

At that time, the Internet was not as full of extreme emotions and "re-reading" habits as it is now, so there was no heated debate brewing, but people's irritability was common.

The Java language hadn't been tested in practice at the time, and there was so much unproven technical coverage —no one had used it, no one understood it, and no one cared. After all, there are virtual machines before they run, and C and COBOL are also very mature, so why do you have to use Java to force hot spots?

The story that followed was known to everyone, and Java lived up to expectations and ruled the entire software industry for 20 years. Next, let's talk about why there is no need to have excessive malice towards "hype".

Why is there always hype?

Before Rust came along, we didn't have to over-emphasize certain problems because there was no real solution at all. Everyone knows that buffer overflows are a big problem, and languages like Java can solve the problem; everyone knows that there are many flaws in the data structures written by themselves, but languages such as Python can do this.

So people at that time did not discuss pain points with certain major types of issues (such as "ease of combination" and "memory security") as an entry point. After all, since you don't plan to redesign a programming language that solves problems, it is a waste of time to talk so broadly.

The only common problem is security, but the previous solution was either a trade-off between performance and maintainability (Python, Ruby, Erlang) or an acceptable level and abandoned (Java, JavaScript, PHP).

These questions, and even the entire category of problems, become "background radiation" in the field of procedure. Everyone knows there are these problems, everyone complains occasionally, but there is no solution.

It wasn't until rust came along that people realized that there was a technology that could solve all problems, which meant that the programming era began to move from a many-to-many relationship between problems and solutions to a real many-to-one overall processing stage.

So in the discussion on the Internet, we gradually began to summarize the problem categories from the current problems, and even broadened the solution ideas to other problem categories! It should have been a huge advantage, but it's what makes Rust seem ubiquitous overnight, and it's relevant to every aspect of our day-to-day work.

"Stop lying to yourself"

As a core feature of technicians and engineers, you should be good at calmly and objectively evaluating systems. You can put the "hype" thing aside and consider the solution specifically based on actual performance. It should be the facts, not the emotions, that decide, right? Once rust is boycotted because of "hype," we're getting farther and farther away from the basic demands of the discussion. Not to mention the extreme personal attacks, which are child-like fights and are not worth refuting.

The reason I insist that the "Rust hype theory" is a pernicious insult is not because I took money from the Rust Foundation or because I wanted to persuade people to buy Rust Enterprise.

Frankly, I've been in the programming industry for 30 years, and I've experienced massive refactoring in languages that don't have type security designs, writing fast services in languages that incur GC overhead, writing compact code in languages that lack good memory cleanup mechanisms, and then running those results on microcomputers and later distributed multi-core clusters.

I've done all of this, and it's all been successful... But the process is very, very painful. So the moment I saw Rust, I knew it was a good thing.

I push Rust because it's really good and may help people solve real-world problems (including a lot of problems that you already find incurable). This article is completely from the heart, out of sincerity, I only talk about my own personal feelings and judgments; if you have different opinions, please give an explanation in the same sincere manner, thank you.

Don't engage in "cyber pickets"

More importantly, don't engage in any kind of "network pickets". The so-called complaints about Rust's "water army" and "hype" are actually a kind of online picketing, or another kind of complaint about people's positions and even expressions. I believe that many of my friends, like me, are tired of this kind of meaningless, ineffective and unconstructive repeated arguments.

I am writing this because I have my own impulse to express myself. It's normal for you to leave if you don't like it. But I definitely don't try to cater to the fragile nerves of some people, nor do I want to conform to the position of guys who spray Rust on the Internet to get their blood pressure to rise.

My starting point is very simple: as long as it is a good thing that can bring substantial improvements to the programming industry, as long as it is something that makes the daily work of programmers easier, I support it.

Don't miss an opportunity in complaining

Once upon a time, Java also rolled up a "trend". But as the "hype" faded, so did the controversy.

There are always people who say that "real" programmers never use Java, and I don't think Rust has a problem because it's "hard enough" (but it's not hard, at least not as hard as everyone thinks).

The reason why no one saw Java as a threat was because the Internet industry was rapidly evolving at the time, and the emergence of many new jobs made the new language a mere tool rather than a threat. At that time, the biggest disagreement was that many people felt that Java was difficult and the "pattern" was not enough, and it seemed to be closer to the general public, and it was impossible to highlight their high school status as a programming elite.

But now that the economy is slowing and the software development industry is affected, everyone needs to plan their way forward with caution. Instead of memorizing all the traps on your own, why not just use a language that eliminates them? Whoever saves energy and spends it in a more meaningful place will be able to take the initiative in the brutal market competition.

From an enterprise perspective, Rust can help you save money on code debugging or refactoring, avoid security drills, and save hardware investment by running on bare metal.

My current Rust programming speed is no less than Python, and I believe you can do it. Time-to-market is important, and the development efficiency gap between Rust and scripting languages is rapidly narrowing. If you continue to resist to the end, your solution will be released more slowly, the cost of start-up and maintenance will be higher, and others may quietly divide up your market share while you continue to complain.

Because Rust has a significant competitive advantage and ability to write high-quality code that surpasses other languages, hiring managers are beginning to measure the business capabilities of top talent at the Rust level. In the near future, this standard will become the new normal, and even spraying Rust ten thousand times a day will not change this reality.

Written at the end...

I know that many friends will correct some details in the article in the comment area, and I will list it myself here:

The great success of Java actually has many black spots, and it is also full of problems.

It all has to be done slowly, and being too hasty will only scare the programming staff away.

In the 1960s, some people proposed the idea of solving problems by categorization, but without exception they all failed.

Maybe the code I've written in 30 years is terrible, and it's possible.

Programmers who are high enough can certainly overcome or circumvent the inherent flaws in other languages.

Language is not a panacea, and any language is likely to write bad code, or it depends on people.

Languages are not a panacea, and any language has the potential to write unsafe code.

I'm not targeting you, it's just a phenomenon. Right thing is not right.

Rust certainly doesn't solve all problems, and that's a matter of fact.

In addition to Rust, I've seen a lot of other great technical solutions.

Rust is a big language and involves a lot of learning content, so it is really difficult to get started.

It's hard to quantify Rust's improvements.

There are also many difficulties and problems in Rust that cannot be solved at present, or will never be solved.

Being able to use garbage technology well is indeed a specialty, but this specialty has no room for growth.

If there is real room for growth in the use of garbage technology, it means that more garbage technology must continue to emerge on the market... Maybe, but I think I hope not.

Maybe Rust is also one of the junk technologies, but I didn't realize it yet.

I say that my Rust programming speed is comparable to Python development, probably because my Python programming speed is not good.

After all, I still have my own work, so I'm very sorry, I can only make a general statement in the article, and I can't introduce the experience of using Rust in detail in combination with specific issues.

The article itself is also a complaint, I admit ~

https://thenewwazoo.github.io/whining.html

Read on