Being “charitable” means, if someone writes “I find the R/Python communities more charitable than the Julia community”, you react like this:
Politely express your regret about the negative experiences of the person, and move to a less emotionally charged topic (e.g., by discussing the writer’s opinions about Julia lang’s disadvantages);
Purposely decide to personally target that passive aggressive supposedly innocent provocative attack against us all – as an exception, of course (usually, you’d push your feelings down).
@ParadaCarleton: In the name of, I hope, at least 1% of the Julia community, I apologize for some of the replies to your post.
I’ve started to partly switch back to C++, because I miss misspelled variables or function names lighting up in the editor right away. I find that JET.jl helps, but it has many quirks (you need to exclude frames – is that safe?) and, plainly, just misses stuff. (Cf. this innocent question of mine.)
I don’t know about same degree. I think compared with MATLAB or C++, you can do a whole lot better than MATLAB and a whole lot easier than either.
But, it’s true that there does come a point where the curve goes sharply up and trying to figure out why something is happening with performance (e.g., closures with the same variable name, inference giving up), and without clear indications of what is going on without significant manual investigation and knowledge of the compiler and the tools available to explore it - and even knowing the tools exist is not necessarily obvious. I do see that curve getting more shallow over time, though.
I know this is going to sound like just another “local area man thinks he has magic bullet for complicated problem,” and I am aware this is a controversial take that has been rebutted at length many times in the past
but I continue to believe that nuking include from orbit and making it much much much cleaner to deal with module & file dependencies would go a long way to be “friendlier to non-scientific software engineers”
Or simply respond with “Hmm, I think I’ll have to disagree on that; my experience was different.”
There’s nothing wrong with disagreeing with someone. It’s not uncharitable to say you think someone is wrong, and respond with counterarguments. (Or, if you think the discussion would be counterproductive, moving on and talking about something else, like you suggest.) Charity is just about maintaining good discussion norms and assuming good faith on the part of everyone else you’re having a discussion with.
Have you tried the linter in VS Code? It’s not perfect, but it does seem to catch at least some of the typo errors that you are referring to:
Also note that the argument name hello and the variables a and b are greyed out to indicate that they don’t get used.
It looks like the default for missing reference linting is none, so you need to turn it on in the Julia extension settings in order to get the linting for typos:
So you think JET is buggy? Have you submitted a bug report?
EDIT: someone pointed out that I’m being rude, so let me elaborate: I think there are multiple possible explanations for your issue, whatever it is exactly, but none of them are addressed properly by vague complaints on Discourse. E.g.:
if you may be using JET wrong, open a dedicated topic on Discourse
if JET may be buggy, open a bug report on Github
I was replying to the “just misses stuff” part, that you also mentioned in another post on the forum recently.
The other side of this is that for most problems (correctness, documentation, etc) it’s helpful to point out specific instances, but where the problem is social media posts by community members it’s not nice to link those posts individually. So the people complaining here can’t show you what they’re talking about.
There are some things that JET just isn’t designed to catch, so it’s better to identify the appropriate tool for improvement, which probably already happened just now, though a MWE could clear up the problem at hand.
Please do flag posts that are problematic here. I also sometimes just directly message folks and kindly ask that they tone-down or clarify possibly-inflammatory posts — that’s something everyone here can do!
I don’t think it’s practical to expect most people to use DMs to police tone for a few reasons: 1) the button for DMs is not as immediately apparent as the <-Reply button, 2) there isn’t an apparent advantage to hiding this from public eyes, and 3) impatient or even hostile people often don’t back down from authority, and they certainly wouldn’t think twice about rudely pushing back on good Samaritans. I can personally attest to that third point, it’s very hard to convince someone that you are in fact trying to make things go smoother when they are already convinced that they are being personally attacked and should make personal attacks in turn.
We explicitly ask folks to not reply to a posts tone here — and for good reason. “Tone policing” can indeed go south fast, especially in public, especially if taken from a standpoint of “tone police”. In private, I’ve found kind asks to go much better, but YMMV. This is, of course, in cases where it’s not so inflammatory that it warrants flagging/hiding in my view, but just for slight re-wordings to help move the discussion along. If in doubt, just hit the flag button.
Right, I agree that doing so in a public spotlight is risky. But it has its own risks in DMs, too, people feel much more comfortable being ruder there, and that disincentivizes people from attempting DMs to talk about anything, let alone tone. The only counteracting factor I can think of is if the person asking has moderation authority, and most people don’t have that. By comparison, flagging (really passing the buck to a moderator) is much more accessible.
I have several examples I can think of, but as @jar1 pointed out, I don’t want to dredge them up and start a fight over them, unfortunately (which I think would contribute to the dynamic I’m trying to work on).
User A starts a topic - the topic might contain some small misconceptions, but you cannot read any ill intent. And it is irrelevant if the issue concerns the Julia community or is just a personal quirk.
One or more (let’s say somewhat prolific) members of our community reply, and from the tone, it is clear that they are scolding user A about those misconceptions.
User A is keeping things civil and feels that his original opinion/complaint/whatever was misrepresented.
Some other users start replying, and they are hasty in assuming the misrepresentation as the default - like they didn’t even read that the OP tried to clarify his statements and tried to do a rebuttal of the representation.
The whole topic gets derailed, and everybody starts their own branch of a somewhat controversial topic (most of the discussion misses the point entirely).
User A gets scolded for opinions that are not his and gets angry. This is the first time when A started using a more aggressive tone. But getting angry also makes room for more mistakes - so A is both angry and sloppy now.
The others are not charitable at all, and instead of noticing the original issue of A, they start scolding him for some new mistakes (which are actual mistakes this time).
The whole discussion is on fire, and moderation steps in - user A is found guilty, and there is an apology of free speech defending basic argumentation errors like the strawman.
We have pretty smart people in this community, but how about being more charitable and not scolding users (especially new ones) for inconsequential misconceptions?
Also, if somebody starts a topic, it might be respectful not to invoke some imaginary implications of who knows what false premise in the topic and totally derail the discussion.
Now, it is easy to understand why these are happening: somebody is skimming the OP and then reads a few replies in a hurry. The eyes got fixed on some statement from a reply, and the participant was jumping to answer that very piece. The same way that I did here: I picked on something from the thread, but if we look at the OP, we can clearly see that my post is unrelated.
Also, we already have some pissed-off replies with a not-so-nice tone above.
I don’t think there is a straightforward solution - but maybe we can all be more charitable with new users unaware of all corners of the community/language/ecosystem.
As a rule of thumb, it seems we are very welcoming when we can flex our knowledge and help somebody asking for technical help (I know I greatly benefit from this - especially reading well-crafted answers from extremely experienced users).
However, we are not so welcoming if a newcomer is starting to have some demands or if his exposition has some (understandable) misconceptions.
(and I would say that decent tooling is a reasonable demand in 2023 - and yes, everybody knows that it is all voluntary based - see? Answering that when addressing the tooling complaint would actually be a nasty and disrespectful thing to do - even if someone uses a civil tone while doing it)
P. S. I tried to avoid going into specific threads/posts - but I honestly think I am not the only one observing such patterns.
There is no need to do that - this very post has followed that exact same pattern already. Posts in this thread are talking about C++, R, Python, MATLAB, instead of discussing the topic at hand - how can we win over non-julians? What do we have to improve in our tooling, community, ecosystem and yes, Base, in order to be more acomodating to outsiders?
If it weren’t so ironic, I’d flag this reply I’m writing right now as being off topic and in need of moderation.
I haven’t really seen this pattern, and maybe I just have a different threshold. But there definitely is no excuse for scolding or any similar intention to make someone feel silly for speaking. That’s not to say that someone feeling stupid is automatically the other person’s intention, it’s just that even something like “this idea is fundamentally unfeasible for these reasons…” should not refute the assumption that the conversation is productive.
One issue I have with your otherwise great writeup is that while it’s good to accommodate OP’s misconceptions, it’s also fair to accommodate the commenters’ misconceptions. It’s not anyone’s fault for missing the point, communication is difficult. Again, no excuse for scolding, but that’s orthogonal to several people sharing a misunderstanding and commenting from that angle.
Personally I would consider this Person A’s responsibility to disengage and cool off. Just as avoiding scolding is the responsibility of the commenter. I would say personal anger is far more out of line than scolding.
I agree this is a large problem. It’s actually very natural for discussions to go on tangents (every podcast), but on a text-based forum it is more than an eyesore. This topic is actually becoming somewhat of an example, we’re veering toward community standards away from Julia promotion! I am thankful to moderators for stepping in and splitting topics, but it doesn’t happen quickly enough sometimes. I wish it were possible for people in a comment sequence (not every comment, need to figure out how to select related ones) to majority-vote on splitting a topic themselves, perhaps requiring OP’s likely thankful vote. This can even happen by OP’s request “this isn’t actually what I was talking about, and until I find a way to communicate what I meant, could we split this to a separate thread that I unfollow”.