Why is the Rust community often so arrogant?

Who am i
I am a decent developer with about 7-8 years of java background and 3 years of C++, and i also dabble in other languages like python, javascript, Haskell etc.

I have asked questions in most of the other communities and i must say that the python community has without a doubt been the friendliest. The python discord is a giant community, with thousands of rooms and people helping you all over the place with any question, no matter how difficult.

I started trying out Rust about 6 weeks ago and i like many others started out with the Rust book. It was great, simple, easy to read, easy to understand. It was written in human readable english and fun to follow along.

Great start!

Writing my own project
I started writing my own project, and i tried searching around for information on how to solve certain problems that came up that weren't touched upon in the Rust book. Most of my problems where compiler errors that i didn't really understand. Sometimes the compiler gave me outright suggestions because i missed something, but often i got random compiler errors i didn't really understand. And im pretty "okey" at programming but i love doing it so i really spend a lot of time trying to really understand what im doing wrong so that i can become better at it.

I did a lot of searches for best practices in Rust but was surprised that there very few. When looking in the various documentations, i started to realize that there were several books, and docs, and it all felt messy. Except for the rust book, you have the reference, which has several different versions, and the current version even has a lot of pages just plainly missing, because they haven't been written yet.

The reference itself is often not much of a help, because it is a reference, its like a dictionary. Imagen trying to learn a language and the only thing you get is a dictionary. Good luck. And then there was the rustnomicon, which just had way to complicated stuff for my level.

So to say the least, Rust docs, can be improved. I also tried reading the documentation in Rust crates, which either was lacking completely, or just at its bare minimum. You often needed to spend a lot of time looking through others source god to understand what you could do. And some documentation, was just overly complicated. For example, the documentation for StepRng.

This generates an arithmetic sequence (i.e. adds a constant each step) over a u64 number, using wrapping arithmetic. If the increment is 0 the generator yields a constant.

When it could easily just say:

Generates a series of numbers. You can define a number at to which it should increment each time. If the increment number is defined 0, it will generate the same number on each call.

Why over-complicate things? is the goal to get more people to use Rust, or is it a language that is only for the elite?

The Community
So eventually i thought i could need someone that i could ask quick questions to, so i joined the Rust discord, there was a beginner section there, that i thought i could ask questions in.

I think i asked three questions in there until i left the discord. In the beginner sections, i was met with answer with arrogant responses like "have you even read the documentation" or, "the compiler error tells you whats wrong so whats even your problem?".

I also tried asking a question on stack overflow, posted my entire source code, what my intention was, my error messages, what i had tried and what parts of the docs i had read. The question was down-voted and closed within minutes, duplicate, with links to three other threads with extremely over-complicated engineered answers with old rust syntax.

I looked a round a bit more on stack overflow and i have noticed that there seems to be 2/3 users that control the Rust stack overflow with an iron fist, closing everything as duplicates and treating the Rust Stack Overflow like some form of curated wiki.

Conclusion
I have now spent 6 weeks doing rust an this forum seems to be the ONLY nice part of the community i have found. Here people seem to actually want to help and support. But is this the way the Rust community is supposed to be?

Im seriously considering giving up on Rust because of the bad manners, should i?

EDIT:
I just want to emphasis, these are my experience and no one else's.

2 Likes

I think there's lots of nice people in the Rust community, but maybe they have given up on stack overflow and other generic sites, and instead gathers here on this forum, on internals and on github repos? Maybe back when rust was an unknown language with a small community that was kind of necessary and even a good thing, but now that Rust is becomming well-known and popular it may have to change.

I mean, stackoverflow is a lost cause, but my experience is that most people on the discords are nice. I'm sorry to hear you met some people there who were mean.

Have you tried the unofficial Rust discord? There's a link on r/rust to it. Additionally if you are using specific libraries, they might have their own chat rooms. E.g. the Tokio project has a discord which is generally very nice and civil.

7 Likes

Hm, the point about discord is concerning. Was this the official or unofficial Discord (there are two)? I don't know what's the moderation status there (I personally don't use Discord), but in theory the official one should be moderated well...

Personally, I like users.rust-lang.org the best as a venue to gain and share rust knowledge -- it is more async than a chat, so the responses are usually more thorough. It also is googleable, and creates a reference for future learnes. At the same time, unlike StackOverflow, it doesn't try to be a database with canonical questions&answers, so there are no rules about what the question should look like (but, obviously, poorly-worded question would take a longer time to receive a good answer).

Re the general point about Rust community, I don't know. I feel that Rust is big enough that there's no single community anymore -- there are separate reddit,discord,urlo,your local meetup communities, and they are populated by a broad slice of people. So the overall vibe would be different depending on venue. For me personally, users.rust-lang.org feels super nice, and /r/rust feels OK-enough for reddit.

Similar reasoning applies to the docs&API design: I personally find std's API and docs to be delightful, while venturing into rand always has some traits of going on adventure :slight_smile:

9 Likes

My observation, over some years, is that Stackoverflow is a disaster. No matter what programming language I'm looking for a solution in. So often I have found suboptimal, deprecated, bad practice, downright wrong, answers on stackoverflow voted up. While often a gem of of a correct answer languishes with hardly a vote. One really has to do ones homework and check everything one reads there.

I have no idea about any discord, during my fist year of Rust I have only frequented this forum. The folks here have been amazingly helpful and friendly. Often producing explanations with far more thoroughness than I could ever hope for.

I will agree that sometimes the Rust documentation can be somewhat technical and basic. Leaving one at a loss as to how to stitch the parts together. When it comes to community created crates that can be very varied, some have great examples to get started from, others don't, but I find that in every language I have used.

Have to say I don't see you issue with the description of StepRng. What is there is clear enough, your alternative is not much different. I would point out that "arithmetic sequence" or more often "arithmetic series" is the common term for this and how it is known in maths as taught in high school. Where as "series of numbers" is a lot more vague and could be pretty much any sequence, the digits of PI for example, without further clarification.

4 Likes

I suggest not. I'm a non-programmer dabbling in rust, and I have to say the community is welcoming and helpful to a point I'd basically never thought possible. The responses you cite are rude indeed, and Stack Overflow is it's own sort of community, so I think you've just met the wrong people somehow. The rust lang reddit and this forum are much more friendly places, so how about you have a shot there/here? I mean, you're doing that already, so... :slight_smile:

Note that docs are docs, and might be written suboptimally indeed. Rust people mostly treat them seriously, but of course they're never perfect. I suggest you open an issue with suggestions or even a PR if you're aware of possible improvements. Writing docs is hard!

I'd also like to know which Discord server you were asking questions (and your user name + number (User#1234), if possible). I'm regularly checking the #rust-usage and #beginners channels on the official server and I'm schocked at how you described the responses. I only visit the #black-magic channel on the unofficial server and I never had problems there, but I can't vouch for their #beginners channel, as I never look at it.

I've always found this forum very friendly and helpful.

I've never used Discord and likely won't, so I can't comment on that.

Stack overflow is a waste of time, not just for Rust, but for everything. The gamification long ago led to people relentlessly pursuing points and reputation rather than actually, you know, answering questions.

1 Like

I'm sorry it hasn't been a welcoming experience, but as a habitual lurker I'll point out that this is not uncommon in communities that have many anonymous members. I've found the most benefit from this forum, /r/Rust and Hacker News comes from looking for new projects or articles and moving on when nothing looks interesting. I always avoid comment sections unless I really have something specific to say and there are few existing comments, except Reddit where I never comment or post.

I've found this be beneficial. With some dry erase markers, a rubber duck and good documentation I can work out most of my problems on my own. In really critical scenarios, when I am thoroughly lost, I look for a good book on the subject or reread something I've consulted in the past. If there's a human in the room I can ask for help, I do so. But this is a social act in as much as it is one for problem-solving. This habit has been one of the greatest benefits to my development as a programmer.

As far as documentation, I'd like to address some specific things that I love about the docs. I think rust crates have great docs when they mimic those written for the standard library.

This generates an arithmetic sequence (i.e. adds a constant each step) over a u64 number, using wrapping arithmetic. If the increment is 0 the generator yields a constant.

Generates a series of numbers. You can define a number at to which it should increment each time. If the increment number is defined 0, it will generate the same number on each call.

I would argue that the first is preferable for two reasons.

The first is specificity. It tells you the input type, explains the behavior in two different ways, and includes the important detail of using wrapping arithmetic. It avoids ambiguous terminology like "defined" that are used elsewhere in the language to refer to something specific. If you are writing your documentation first, then your tests, then your code then this is the kind of documentation you would want to see. It reminds you of exactly what you had in mind when you decided to add the function.

The second reason is voice and tone. It presumes the subject of the first sentence is "this item" and avoids using words like "you" or "one" while also avoiding the passive voice. This has the benefit of avoiding idiom (which can be hard for those who do not speak English as a first language) while also being easy to replicate; the std docs don't read like they were written by many different people, even though they were.

I don't think there's anything elitist or unwelcoming about this style. Given that they are written for the widest possible audience, I think it's quite the opposite.

Im getting a lot of responses, and your responses confirmes my opinions, that this forum is nice, and people here are reasonable.

To address to what Rust discord it was, it was on the official Rust discord. I can also inform that some of the people that are "curating" stack overflow seem to be some on the official Rust team. Which to me feels odd. So why encourage people to ask questions on stack overflow, but only the "right" questions are allowed.

As to when it comes to the documentation, not everyone has a degree in computer science. I have not, but im doing pretty alright. And if you look at other communities, and libraries, like react, spring boot, laravel, the entire python reference, that write really good, technical documentation using friendlier language.

Documentation does not need to be a science report, not everyone are scientists. Im not a scientist. Most people are not scientists, most people dont care about "ambiguous terminology", for example, english is not my first language, not everyone understands the fine nuances in "ambiguous terminology". If you don't understand why some ppl might find that type of language complicated, then writing documentation for the greater masses might not be thing a for you.

That is one of the problems for many developers writing documentation, they prioritize 100% fully neutral correctness, than basic understanding for the masses.

Most people are not computer scientists with english as their main language. So i will argue the exact opposite.

Take for example the rust book. That is written very user friendly. That is perfect example of friendlier language.

The Rust users on Stackoverflow are intentionally trying to make a canonical Q&A site. There is ideally one canonical question and one canonical answer to every Rust problem. They try their best to get the site as close to that ideal as possible.

To be fair, this does have its uses. However it also means it's not the best place to ask questions if you're completely new to Rust or you want to talk through the problems you're having.

I too had this issue with Rust stackoverflow a few years back. Now I'm more thinking "it is what it is". We, as a community, could perhaps do more to direct new users to this forum and other places to help them get started.

9 Likes

As to when it comes to the documentation, not everyone has a degree in computer science.

Since this is apparently directed at my comment, I will point out that I do not have a degree in computer science nor any college degree whatsoever.

If you don't understand why some ppl might find that type of language complicated, then writing documentation for the greater masses might not be thing a for you.

I will also point out that this comment stands out as being more rude and confrontational than what I usually see on this forum. You are welcome to disagree but I will ask that if you participate in this forum, as I've made the mistake of doing today, please read the community guidelines, especially the part that says "criticize ideas, not people" (emphasis theirs, not mine). You get out of a community what you put into it.

2 Likes

In Discord, for context, I have found this: https://discord.com/channels/442252698964721669/448238009733742612/768108674131558430

The main "issue" I see with that conversation is more of an issue of written communication ( → lack of non-verbal cues may lead to apparently more harsh messages), which in this case, has been aggravated by the instantaneous nature of the chat whereby answers are written quickly and thus are far from ideal.

In that case, @pie_flavor's first response was "sounded" a bit condescending, indeed. I hang out in the discord a bit, and @pie_flavor is a very active member helping many people, so I can vouch for them and say that this is rather a communicational accident more than anything else. But I can definitely understand the "unwelcoming" feeling that it may have communicated.

On the other hand, not only @pie_flavor, but other people around already started trying to give more clues to guide you to resolve the issue, but that's when you abruptly left the conversation. Again, I can understand your behavior given how you could have legitimately feel attacked by the first answer you got (that's what pride does, to all of us :sweat_smile:).

I will, however, say two/three things:

  • accusing all the Rust community out of one answer one user said at one time is clearly an exaggeration, and one that is a bit unfair; I'm pretty sure most beginners hanging out in this forum have been pleased with the overall mood and behavior of its community :slightly_smiling_face:

  • as a general advice, and although it can be hard to counter one's injured pride, try to take a step back and remember than on an instant chat with no verbal cues, where not everybody speaks English natively and where not everybody has the same culture and thus politeness references, it can be easy to offend someone without really wanting to. If, on the other hand, you (and each and every one of us) try to clarify such a situation with further dialogue, you will notice things can have a tendency to sort themselves out. In that Discord chat, for instance, people had already started guiding you to solve the ?-inside-a-closure problem :wink:

  • Regarding overly technical documentation, in the open-source programming world it is already hard enough to get extensive documentation for free-time projects, let alone well-mannered and adapted documentation. That does not mean people don't want such, but rather, that it can be difficult to put one self in the position of a reader who may not be acquainted with the same notions and idioms that the author is (a classic example of this is the computer-science / low-level programming people and the more mathematical-academia oriented ones; in Rust both communities try to co-exist in harmony :slightly_smiling_face:). All that to say: if you felt like the documentation of that Rng method was ill-phrased, then, by all means, go and suggest to improve it! (Ideally with a PR with your suggested changes, otherwise with some politely-phrased (c.f. what I mentioned before, it goes both ways :upside_down_face:) issues). I'm pretty sure you would soon see the documentation being "fixed".


Addendum regarding StackOverflow

The format of that site is a bit peculiar, and it may be suited for some people but not for other. I, for instance, don't like it very much, since the whole idea of one true canonical answer goes against what I think is the point of pedagogy. I much prefer the approach of this very forum, where most of us may have rehearsed many answers many times, which leads to people looking for a specific answer to have several posts from several people to pick from.

  • That being said, I am glad StackOverflow exists, and I am pretty sure many users find it useful!

All that to say, if you didn't like Rust's StackOverflow, then maybe it wasn't that much Rust's community but StackOverflow opinionated policies :smile:

17 Likes

Because everyone is different, it's understandable that people would disagree on the best way to write documentation. That's always a discussion worth having. However I don't think it is fair to label a community "arrogant" because you disagree with the current documentation amount, quality, or style.

I've found that beyond "the book", the documentation for the standard library is fantastic. Many crates also have very good documentation. Considering the very poor documentation I've experienced in my career with many other languages, frameworks, libraries, and applications, I'd say the level of documentation in Rust is near miraculous. OK, maybe that is a bit of overstatement, but I still am very pleased with what I've found.

Good luck with learning Rust and I'm sure the people of this forum will do their best to help you along.

1 Like

Tbh, Yandros response, is exactly the type of response, that makes someone like a beginner like me to quit. And tbh, he just conviced me that this community is not for me.

This thread can be closed now.

Moderation note: I am closing this at the request of the OP. I don't see much good coming from leaving this thread open.

13 Likes