But I also don’t owe it to you to cater to your delicate sensitivities and apologize for every other excited person who also writes about Rust.
And we don’t owe it to you to cater to your delicate sensitives and not say “wow you’re kinda creepy and arrogant about this Rust thing.”
Most of all, I’m not going to stop advocating for something I believe will materially improve the industry (and my job satisfaction).
I strongly advocate for something I believe will materially improve the industry (formal methods), but I work hard to do it in a way that’s not obnoxious. You can be enthusiastic without being a jerk!
The aggressive, everyone-else-is-an-idiot tone of a lot of Rust advocacy is a big turnoff to me, personally. Obviously there are jerks in every community, but this communication style seems much more common among Rust advocates than among advocates of most other popular languages.
The language itself has interesting ideas. I still might choose Rust if I were working on a project involving a lot of concurrent access to mutable state. But I sure wouldn’t do it for the joy of becoming part of that community.
As someone very interested in learning Rust, the community is actually one of the positives for me. I’ve never seen the attitudes you’re talking about, in fact the impression I have had is that the Rust community is very welcoming, friendly, and motivated. Far more commonly I see the opposite, where people somehow manage to be offended by someone’s genuine enthusiasm about the language and go out of their way to take them down a peg. It’s quite petty. That’s what I read from the article/rant and I agree with it, it’s something that has been bothering me even as someone outside the Rust community. If someone wants to make a point that their project is ‘written in Rust’, then what is it to you? Often it’s just one remark within a larger article but half the comments just zero in on it. If I get tired of anything, it’s that. It’s become more of a meme to point that out every time than the statement itself.
This is the motte-and-bailey of Rust evangelism. Once you’re part of the community, it is all puppies and sunshine…but there is silence or outright denial about how the annoying the missionaries are if you have not seen the light.
(We had some similar things with Node back in the day, and Java–though the author of the article didn’t mention it–was heavily shiller by Sun marketing and what these days we would call developer evangelists.)
The Rust evangelion strike force has given the community a bad rep, and if you want to draw a historical analog look at the minority of obnoxious Ruby and Rails devs back in the day that made everybody think it was a community solely of brogrammers.
but this communication style seems much more common among Rust advocates
It saddens me to see that you believe that. My experience with the people working on rust is that they’re very open about other languages and the shortcomings that exist in rust.
I would like to believe that the loud minority you can read here would do that with any language they can use to make such bold claims. (We’ve had this previously with people here ranting on “everything that’s not C”.) So based on my experience with people writing rust code in production I would ask you to ignore posts like this and make your own picture of it. And then come back and tell us what annoyed you about it, we can’t enforce the CoC on some persons blog post, but we can do so in the community channels and on github.
Another problem that I’ve seen is that for every post pro rust there is one contra, some in the dismissive style we can read here (you don’t have a spec?, where is my GUI framework ?, do you know about django?, this will never mage it big, you’re just too bad to write good c). If you want some arguments against rust I’d invite you to r/rustjerk, where we can ironically make fun of the duality of rust coders, libraries and other related languages ;)
The more I think about it, the more I can see how similar this is to people arguing against & for vaccination and how I’ve lately seen very aggressive attitudes on each side.
I think the “everyone-else-is-an-idiot” is actually a group of people (many of whom have worked on the codebases they are talking about – e.g. Firefox and their attempts to build concurrent browsers) stating empirical evidence on previous software projects and their shortcomings and then talk about how they feel Rust reduces these failings.
While not every Java prophesy came true as foretold, I think it was very successful overall.
Android runs on Java, and it’s the most popular consumer OS in the world. So billions of devices really do use Java. It is write once, and run on a bunch of devices with vastly different hardware, and even Chromebooks and Windows 11. For over a decade it was probably the only sensible option for high-performance servers.
Keep in mind that Java hype happened when there weren’t many other options. There was no golang, Rust, or Swift. The fancier JVM languages haven’t been created yet. There was no “modern” C++. C# was a clone from an evil empire. JavaScript was an interpreted toy confined to a slow buggy environment. Lua was obscure and LuaJIT didn’t exist yet. You had C, Python in its infancy (and as slow as ever), Perl, and some more obscure languages that wouldn’t easily run on consumer machines.
Java looked really good in that company. And today despite much bigger choice of languages available, Java is still one of the most popular ones.
“There are only two kinds of languages: the ones people complain about and the ones nobody uses”
Java is probably the most critical programming language in the enterprise space, the backbone of the majority of mobile devices (Android), and was used to create the best-selling video game of all time (Minecraft). Its time is waning, but it lived up the hype.
I don’t think these things are related. Surez Java is entrenched and sure it’s very popular in some verticals, but it hasn’t managed to become popular for the things C was popular for (mostly) and the run everywhere thing sort of fell flat as x86 crushed everyone. I’m not sure I would say it close to “lived up to the hype” but maybe it depends on one’s memories kof the hype.
Looking back now, I’d say it did. Normalizing managed code and garbage collection alone would qualify, but add robust, cross platform concurrency primitives and stable, cross platform GUI, classloaders and all the stuff about OSGi… I resent it for killing off Smalltalk’s niche, but it moved a much larger piece of software development in a good direction.
You’re looking at niches that C has kept, rather than all the uses that C lost to Java. C used to be the default for most applications, not only low-level and performance-critical ones.
On mobile, where “Wintel” didn’t have a stronghold, J2ME has crushed, and delivered some portability across devices with vastly different (and crappy) hardware.
“Become popular for the things C was popular for” is kind of an impossible standard to hold any language to. Back in the day when Java was new, C was popular for everything. I know I personally wrote or worked on multiple backend business-logic-heavy services in C that would have been much better fits for Java had it existed in mature form at the time.
Even at the height of Java’s early hype, I can’t remember anyone credibly suggesting it would replace C outright.
Write once, run everywhere is still valuable. My team develops on MacOS, Windows, and Linux, and we deploy to a mix of x86 servers and on-premises low-power ARM devices (think Raspberry Pi). The same JVM bytecode (Kotlin, not Java, in our case) works identically enough in all those environments that we haven’t felt any urge to push people toward a single OS for dev environments. We have far more headaches with OS incompatibilities in our Python code than in our Kotlin code, though admittedly we’re not doing the same stuff in both languages.
This seems slightly ahistorical — before C’s niche was God of the Gaps-ed into “tiny performant chunks of operating systems where zero copy memory twiddling is critical” it was everywhere. Like, people were writing web applications in C. People were doing things with C (and the godforsaken C-with-objects style of C++) that nobody today would go near in an unmanaged language. It was Java that showed the way. And I am no fan of Java-the-language.
Which is itself funny because everything good about Java was available elsewhere. The difference was the giant education campaign and campaign to embed the vm everywhere.
I think that nobody can deny that Java had been widely successful.
If it lived up to the hype, then we first have to define what the hype was. If I remember correctly, our was first hyped for applets. Java’s successes have been elsewhere.
Obnoxious, superior tones will push people away from your idea. Even if it’s an objectively good one.
You see it all the time: veganism (I am not vegan), feminism, fitness enthusiasm.
Personally, I’m a a fan of rust, having written some and run a lot more- it works really well for me but it doesn’t have so much traction in my industry (Gamedev)- and people aren’t seriously looking at it even for backend code.
This is because it leans on Cargo so heavily, is slow to compile (even incrementally), and is as complicated as C++.
I’ve been looking at bazel instead of Cargo to compile so that I can get the benefits of a distributed build farm, but it’s a very complicated setup and I’m not convinced it’s any quicker.
All that to say: I like rust, but I’m not evangelical, it’s not for everything.
This article convinced me that Rust is overhyped.
And we don’t owe it to you to cater to your delicate sensitives and not say “wow you’re kinda creepy and arrogant about this Rust thing.”
I strongly advocate for something I believe will materially improve the industry (formal methods), but I work hard to do it in a way that’s not obnoxious. You can be enthusiastic without being a jerk!
The aggressive, everyone-else-is-an-idiot tone of a lot of Rust advocacy is a big turnoff to me, personally. Obviously there are jerks in every community, but this communication style seems much more common among Rust advocates than among advocates of most other popular languages.
The language itself has interesting ideas. I still might choose Rust if I were working on a project involving a lot of concurrent access to mutable state. But I sure wouldn’t do it for the joy of becoming part of that community.
It’s unfortunate, really, and one of the reasons it’s pretty far down my “would be cool to learn” list.
As someone very interested in learning Rust, the community is actually one of the positives for me. I’ve never seen the attitudes you’re talking about, in fact the impression I have had is that the Rust community is very welcoming, friendly, and motivated. Far more commonly I see the opposite, where people somehow manage to be offended by someone’s genuine enthusiasm about the language and go out of their way to take them down a peg. It’s quite petty. That’s what I read from the article/rant and I agree with it, it’s something that has been bothering me even as someone outside the Rust community. If someone wants to make a point that their project is ‘written in Rust’, then what is it to you? Often it’s just one remark within a larger article but half the comments just zero in on it. If I get tired of anything, it’s that. It’s become more of a meme to point that out every time than the statement itself.
This is the motte-and-bailey of Rust evangelism. Once you’re part of the community, it is all puppies and sunshine…but there is silence or outright denial about how the annoying the missionaries are if you have not seen the light.
(We had some similar things with Node back in the day, and Java–though the author of the article didn’t mention it–was heavily shiller by Sun marketing and what these days we would call developer evangelists.)
The Rust evangelion strike force has given the community a bad rep, and if you want to draw a historical analog look at the minority of obnoxious Ruby and Rails devs back in the day that made everybody think it was a community solely of brogrammers.
It saddens me to see that you believe that. My experience with the people working on rust is that they’re very open about other languages and the shortcomings that exist in rust.
I would like to believe that the loud minority you can read here would do that with any language they can use to make such bold claims. (We’ve had this previously with people here ranting on “everything that’s not C”.) So based on my experience with people writing rust code in production I would ask you to ignore posts like this and make your own picture of it. And then come back and tell us what annoyed you about it, we can’t enforce the CoC on some persons blog post, but we can do so in the community channels and on github.
Another problem that I’ve seen is that for every post pro rust there is one contra, some in the dismissive style we can read here (you don’t have a spec?, where is my GUI framework ?, do you know about django?, this will never mage it big, you’re just too bad to write good c). If you want some arguments against rust I’d invite you to r/rustjerk, where we can ironically make fun of the duality of rust coders, libraries and other related languages ;)
The more I think about it, the more I can see how similar this is to people arguing against & for vaccination and how I’ve lately seen very aggressive attitudes on each side.
I think the “everyone-else-is-an-idiot” is actually a group of people (many of whom have worked on the codebases they are talking about – e.g. Firefox and their attempts to build concurrent browsers) stating empirical evidence on previous software projects and their shortcomings and then talk about how they feel Rust reduces these failings.
Oof… What?
I love rust and I don’t think it is hyped, really. But why go and defend Java? Just hurts the argument IMO.
While not every Java prophesy came true as foretold, I think it was very successful overall.
Android runs on Java, and it’s the most popular consumer OS in the world. So billions of devices really do use Java. It is write once, and run on a bunch of devices with vastly different hardware, and even Chromebooks and Windows 11. For over a decade it was probably the only sensible option for high-performance servers.
Keep in mind that Java hype happened when there weren’t many other options. There was no golang, Rust, or Swift. The fancier JVM languages haven’t been created yet. There was no “modern” C++. C# was a clone from an evil empire. JavaScript was an interpreted toy confined to a slow buggy environment. Lua was obscure and LuaJIT didn’t exist yet. You had C, Python in its infancy (and as slow as ever), Perl, and some more obscure languages that wouldn’t easily run on consumer machines.
Java looked really good in that company. And today despite much bigger choice of languages available, Java is still one of the most popular ones.
The book “modern C++” was published in 1992. Unfortunately I can’t actually find a reference to that book online. As I recall it had a purple cover.
I think of https://github.com/isocpp/CppCoreGuidelines when I hear “modern C++”.
I thought the “modern C++” phrase originated with Alexandrescu’s book, Modern C++ Design, published in 2001.
“There are only two kinds of languages: the ones people complain about and the ones nobody uses”
Java is probably the most critical programming language in the enterprise space, the backbone of the majority of mobile devices (Android), and was used to create the best-selling video game of all time (Minecraft). Its time is waning, but it lived up the hype.
I don’t think these things are related. Surez Java is entrenched and sure it’s very popular in some verticals, but it hasn’t managed to become popular for the things C was popular for (mostly) and the run everywhere thing sort of fell flat as x86 crushed everyone. I’m not sure I would say it close to “lived up to the hype” but maybe it depends on one’s memories kof the hype.
Looking back now, I’d say it did. Normalizing managed code and garbage collection alone would qualify, but add robust, cross platform concurrency primitives and stable, cross platform GUI, classloaders and all the stuff about OSGi… I resent it for killing off Smalltalk’s niche, but it moved a much larger piece of software development in a good direction.
You’re looking at niches that C has kept, rather than all the uses that C lost to Java. C used to be the default for most applications, not only low-level and performance-critical ones.
On mobile, where “Wintel” didn’t have a stronghold, J2ME has crushed, and delivered some portability across devices with vastly different (and crappy) hardware.
“Become popular for the things C was popular for” is kind of an impossible standard to hold any language to. Back in the day when Java was new, C was popular for everything. I know I personally wrote or worked on multiple backend business-logic-heavy services in C that would have been much better fits for Java had it existed in mature form at the time.
Even at the height of Java’s early hype, I can’t remember anyone credibly suggesting it would replace C outright.
Write once, run everywhere is still valuable. My team develops on MacOS, Windows, and Linux, and we deploy to a mix of x86 servers and on-premises low-power ARM devices (think Raspberry Pi). The same JVM bytecode (Kotlin, not Java, in our case) works identically enough in all those environments that we haven’t felt any urge to push people toward a single OS for dev environments. We have far more headaches with OS incompatibilities in our Python code than in our Kotlin code, though admittedly we’re not doing the same stuff in both languages.
This seems slightly ahistorical — before C’s niche was God of the Gaps-ed into “tiny performant chunks of operating systems where zero copy memory twiddling is critical” it was everywhere. Like, people were writing web applications in C. People were doing things with C (and the godforsaken C-with-objects style of C++) that nobody today would go near in an unmanaged language. It was Java that showed the way. And I am no fan of Java-the-language.
Which is itself funny because everything good about Java was available elsewhere. The difference was the giant education campaign and campaign to embed the vm everywhere.
Oh, I know.
Now we have AWS Graviton, I found Java people do have easier time.
I think that nobody can deny that Java had been widely successful.
If it lived up to the hype, then we first have to define what the hype was. If I remember correctly, our was first hyped for applets. Java’s successes have been elsewhere.
Before Rust came along, there was no point to repeatedly highlighting problems, because there were no real solutions.
Neither point is true and it’s really a shame you can’t be bothered to know that there is little in Rust without precedent.
Obnoxious, superior tones will push people away from your idea. Even if it’s an objectively good one.
You see it all the time: veganism (I am not vegan), feminism, fitness enthusiasm.
Personally, I’m a a fan of rust, having written some and run a lot more- it works really well for me but it doesn’t have so much traction in my industry (Gamedev)- and people aren’t seriously looking at it even for backend code.
This is because it leans on Cargo so heavily, is slow to compile (even incrementally), and is as complicated as C++.
I’ve been looking at bazel instead of Cargo to compile so that I can get the benefits of a distributed build farm, but it’s a very complicated setup and I’m not convinced it’s any quicker.
All that to say: I like rust, but I’m not evangelical, it’s not for everything.
I honestly think we should apply a hotness downmod to the rant tag.
There is one.