Author | thenewwazoo (online name)
Translator | Nuclear Cola, Liu Yan
Author’s Note: I wrote this article with great care, trying to avoid any overly affirmative or easily misunderstood statements. I also have my regular job and cannot fully devote myself to promoting Rust, so I can only express my feelings through this article. Due to space limitations, the content cannot cover everything, so I have listed the parts I thought of but could not discuss at the end.
Is Rust Overhyped? Not at all.
Whenever discussions about Rust arise, they often end with the issue of “hype”.
Many friends feel that there are too many online promoters for Rust, and they hear statements like “Rust is the best”, “Look at how Rust does this and that”, and “Rust yyds” every day. Can’t these guys just take a break?
Indeed, Rust is very popular online, but do you remember what it was like when Java first emerged? If you don’t remember, it might be because you are still quite young.
Back then, the market was flooded with trade magazines full of nonsense, and curiously, they all loved to report on computer-related content. Thus, we saw a series of articles about the Java language, its development prospects, and the problems it could solve.
The internet at that time was not filled with extreme emotions and the habit of “repeating” like it is now, so there were no heated debates brewing, but people’s irritation was common.
At that time, the Java language had not yet been practically tested, and there were too many unverified technical reports—nobody had used it, nobody understood it, and nobody cared. After all, virtual machines had existed before, and C and COBOL were already very mature; why force Java into the spotlight?
The rest is history; Java lived up to expectations and dominated the software industry for 20 years. Now, let’s focus on why we don’t need to harbor excessive malice towards the “hype”.
Why is there always talk of hype?
Before Rust appeared, we didn’t need to repeatedly emphasize certain issues because there were no real solutions. Everyone knew that buffer overflows were a big problem, and languages like Java could solve them; everyone was aware that self-written data structures had many flaws, but languages like Python could help in this regard.
So back then, people wouldn’t discuss pain points based on a major category of problems (like “composability” and “memory safety”). After all, since there was no intention to redesign a programming language that could solve problems, discussing it so broadly was a waste of time.
The only common problem was security, but previous solutions either balanced performance and maintainability (Python, Ruby, Erlang) or maintained an acceptable level and ignored it (Java, JavaScript, PHP).
These problems, or even entire categories of problems, became the “background radiation” in the programming field. Everyone knew these issues existed, and everyone occasionally complained, but there were no solutions.
It wasn’t until Rust appeared that people realized a technology capable of solving all problems had emerged, meaning the programming era began to transition from a many-to-many relationship of problems and solutions to a truly coordinated many-to-one approach.
Thus, our discussions online gradually began to summarize problem categories based on current issues, and we even expanded our solutions to other problem categories! This should have been a huge advantage, but it was precisely this advantage that made Rust seem to appear everywhere overnight and closely related to every aspect of our daily work.
“Stop fooling yourself”
As a core characteristic of technical personnel and engineers, everyone should be good at calmly and objectively assessing systems. You can set aside the issue of “hype” and evaluate solutions based solely on actual performance. The decision should be based on facts, not emotions, right? If we resist Rust because of “hype”, we are moving further away from the basic demands of discussion. Not to mention extreme personal attacks, which are childish and not worth responding to.
The reason I insist that the “Rust hype theory” is a harmful and derogatory statement is not because I received money from the Rust Foundation or want to persuade everyone to buy Rust Enterprise.
To be frank, I have been in the programming industry for 30 years, experiencing large-scale refactoring with languages that lack type safety, writing fast services in languages that incur GC overhead, and writing compact code in languages that lack good memory cleanup mechanisms, then running these results on microcontrollers and later distributed multi-core clusters.
I have done all of this, and I succeeded… but the process was extremely painful. So when I saw Rust, I knew it was a good thing.
The reason I advocate for Rust is that it is truly excellent and may help everyone solve real problems (including many you may think are hopeless). This article is entirely heartfelt and sincere; I only talk about my personal feelings and judgments. If anyone has a different opinion, please provide your explanation with the same sincerity. Thank you all.
Don’t form a “network patrol”
More importantly, don’t form a “network patrol”. Complaints about Rust’s “promoters” and “hype” are actually a form of network policing, or another complaint about people’s positions and even their ways of expression. Many friends, like me, are already tired of this meaningless, ineffective, and unconstructive repetitive debate.
I wrote this article because I felt the urge to express myself. If you don’t like it, you can leave; that’s perfectly normal. But I absolutely will not deliberately cater to the fragile nerves of some people, nor do I want to align with those who are so angry about Rust online that their blood pressure rises.
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 can make programmers’ daily work easier, I will support it.
Don’t miss opportunities in complaints
Once upon a time, Java also stirred up a “trend”. But as the “hype” faded, the controversy also dissolved.
There are always people saying that “real” programmers never use Java. I think Rust doesn’t have this problem because it is “difficult enough” (but actually not that difficult, at least not as difficult as everyone imagines).
The reason no one sees Java as a threat is that the internet industry was rapidly developing at that time, and the emergence of many new positions made new languages mere tools rather than threats. The biggest divide was that many people felt Java was too easy, “lacking depth”, and using it seemed to bring them closer to the masses, unable to highlight their elite programming status.
But now it’s different; the economic situation has slowed down, and the software development industry has also been affected. Everyone needs to carefully plan their future paths. Instead of relying on their heads to remember all the traps, why not use a language that can eliminate these traps? Those who save energy for more meaningful pursuits will gain the upper hand in the harsh market competition.
From a business perspective, Rust can help save costs in code debugging or refactoring, avoid security exercise expenses, and save hardware investments through near bare-metal operation.
My current Rust programming speed is already comparable to Python, and I believe everyone can achieve this. Time to market for software is very important, and the development efficiency gap between Rust and scripting languages is rapidly narrowing. If you continue to resist, your solution release speed will slow down, and the costs of startup and maintenance will increase, while others may quietly take away your market share while you continue to complain.
Because Rust has significant competitive advantages and can write high-quality code that surpasses other languages, hiring managers are starting to use Rust proficiency as a measure of top talent’s business capabilities. In the near future, this standard will become the new norm, and no amount of daily criticism of Rust will change this reality.
In conclusion…
I know many friends will correct certain details in the comments, so I will list them myself:
-
Java, which has been very successful, also has many flaws and is full of problems.
-
Everything takes time; being too hasty will only scare away programming employees.
-
The idea of categorizing problems was proposed as early as the 1960s, but all attempts failed.
-
Perhaps the code I have written in the past 30 years is very poor; this is indeed a possibility.
-
High-level programmers can certainly overcome or avoid inherent flaws in other languages.
-
No language is perfect; any language can produce bad code; it still depends on the person.
-
No language is perfect; any language can produce unsafe code.
-
I am not targeting the readers; I am just addressing a phenomenon. It’s about the issue, not the person.
-
Rust certainly cannot solve all problems; this must be acknowledged.
-
Besides Rust, I have also seen many other excellent technical solutions.
-
Rust is a large language with many learning contents, so the difficulty of getting started is indeed not low.
-
It is difficult to quantify the improvement effects of Rust.
-
There are also many current difficulties and problems in Rust that cannot be solved, or may never be solved.
-
Being good at using garbage technology is indeed a skill, but it is a skill with little room for growth.
-
If being good at using garbage technology really has room for growth, it means that more garbage technologies must continuously emerge in the market… maybe it will, but I hope it won’t.
-
Rust may also be one of those garbage technologies; I just haven’t realized it yet.
-
When I say my Rust programming speed is comparable to Python development, it may be because my Python programming speed is not that great.
-
After all, I have my own work, so I apologize for only being able to make general statements in the article and not providing detailed insights into Rust’s usage.
-
This article itself is also a form of complaint; I admit it~
Original link:
https://thenewwazoo.github.io/whining.html
Click at the bottom to read the original and visit the InfoQ official website for more exciting content!
Today’s Recommended Articles
Insights from Google Developers: There’s no need to hide all SQL and code
Exclusive interview with Wu Jiesheng, head of Alibaba Cloud Storage: The three major decisions I experienced
How I became a professional bug bounty hunter at Microsoft after dropping out of college amidst skepticism
Android 13 is here; is it really mediocre and useless?
Click to see fewer bugs 👇