We as a community should be more understanding of Julia's flaws

I disagree here - even if a question is not polite or even outright wrong, we should respond in a polite way ourselves. Doing so paints a picture of a humble community, instead of one that’s purely reactive or knee-jerky to particular “triggers” (most often benchmarks…). This has nothing to do with being a paid helpdesk or not, this is basic human decency (even if some posts don’t extend that courtesy to us).

The fact that “responding in kind” to rude/non-polite questions is acceptable and seems to get a lot of :heart: here (even if intended for other parts of your answer!) is one aspect of our community I really don’t want to see grow and is something (I think) casual passerbys can easily interpret as hostile.

19 Likes

I liked DNFs post, because what I read is, that nearly every answer is very polite. Even most answers to the more rude questioners are kind and respectful. “Most” means just not always like in 100% which will not be achievable (I point on myself here).

Nobody would say, we as a community should answer rude questions in a rude way, and that’s of course not what DNF meant or wants to imply.

For me, this discussion (and I read it all) is a bit artificial. It puts all the blame on a extremely helpful and kind community. This community here (discourse mainly for me) is exceptional kind and helpful. In general and especially, even more exceptional, for a highly technical topic and people.

What is done on the other side, is, that some really rare events are stylized to a general problem.

This doesn’t help for more kindness, but put those off, who try hard to comply to this extreme expectation. In the result, those who have already done very well, loose the motivation to help again.

The other thing, which stand out for me, is, that it is ignored that the questioner is already with his question a part of this community. The community is not only those who answer regularly here. It’s everybody independent if asking a lot or answering a lot. Or, if we don’t think so, we need to define a threshold for being part of the community. We can’t put different measures on those who have their first question here and those who answer a lot. If it is a problem, that there are not so kind answers seen, why isn’t it a problem, that rude questions appear? It’s both and it’s the same: as long as it isn’t prevalent, it’s just human and we should not put superhuman expectations on us.

8 Likes

No, that is exactly what I took from the part I quoted, which says precisely that there are polite questions, and other questions (i.e., not polite ones? If not that, what else are “other” questions?) that should get a matching reply. I explicitly wanted to call that out as not acceptable. How things are worded matters, so we should act accordingly to write things as we mean them, to effectively communicate.

I really don’t want this discourse to devolve into an “us vs them” mentality, but for outsiders of the community, the problems encountered are not rare events. When you only touch something once or twice and get burned each time, to them, that’s the norm, not the exception.

Exactly! So if we want to see them as part of our community, shouldn’t we give them the benefit of doubt and be polite, always (and if we can’t be, recognize that as an opportunity to take a step back to let things cool off)? If we didn’t, we’d admit that we don’t want/need to be polite in our community, which I REALLY hope is not the case.

Of course it’s a problem that sometimes newcomers can be a bit rash, but that’s something to be patient with, not to be ridiculed and/or downplayed. I don’t think “trying to be polite” is a superhuman expectation.

3 Likes

In my experience on this discourse (I can’t speak for other forums), most responses to rude questions were actually quite patient and polite. Occasionally there will be responses that aren’t, because nobody’s perfect. So I agree that it’s important to speak up, request cooler heads, or remind people it may be better to walk away from the situation. Many people, including me, try to anyway, and maybe it would be helpful if more people did, too, just to better mitigate the occasional rude responses.

3 Likes

I don’t have much time to answer this from work. But you should read again what I wrote (since, as you say, wording matters). I spent several minutes getting that phrasing right, actually:

Also, you are excluding a large middle region. There is a lot of open ground between ‘humble’ and ‘rude’, and in that region there are both ‘courteous’, ‘civil’, ‘direct’, ‘to the point’, and ‘chilly’. Requiring that posters should be ‘humble’ in the face of rudeness (and even personal insults) is unreasonable.

In order to try to understand what I actually mean, ask yourself: Does the tone of the person you are talking to never influence your own, in any way or degree? Shouldn’t it? Are you equally warm and cordial to everyone, always and all the time? This is what I am talking about, not being rude yourself, but allowing your tone to cool in the face of rudeness.

7 Likes

Perhaps if newcomers are too rash we should have more strict pre-post guidelines about code formatting and describing the question properly.

A lot of questions come from people who are dipping their toes in and are really motivated to find the solution to their problem quickly. What unfortunately happens is that because of bad code formatting, no runnable example, or too vague a problem description, we are unable to help and it’s frustrating for both sides.

You are right here, but I still insist, that it isn’t meant like this from DNF, despite that it was written like this. For me it is clear from the whole conext and from the knowledge of DNFs acting in the long past.

Yes, I agree.

And this is an artificial made up expectation, as humans don’t communicate like this, despite that it would be sometimes better if it would be like this. And if we would do, it would be often enough sound rude, because it would miss all the nice and kind words to fill it up to be nice.

This will always happen, We can’t achieve 100%. In your example, each time is still only one or two times. If this unlucky person judges this community from this, without reading some other topics here, there are enough, it’s a pitty but nothing we can solve or avoid in 100% in future. Expecting this is superhuman expectation.

We do exactly this in almost all cases.

This doesn’t happen (again, not in 100% not, but clearly extremely rare).

This is how this community is doing (being patient!). It should not be questioned it should be praised. Somebody may analyze a bunch of topics regarding this and I am sure, the result will be something to be proud of.

This all doesn’t mean that everybody should not be working on it’s self awareness to avoid the rare outliers. But the current state, all in all, isn’t a problem. It is extremely good. Of course this my personal perception and I didn’t count and analyzed the topics. But I am reading many, nearly every day. That’s why I am convinced, that I don’t want to be made artificially to problem, just because there are a few unlucky people, who got offended by a single post ( I know that with my last sentence I do belittle those to whom it happened and this is wrong, but I do it to show, that blaming this community to be not kind enough is wrong also).

1 Like

True, which is probably a situation where it’s better to walk away without another word, or at most a reminder that hostility is against community standards. If anyone is dead-set on creating a hostile environment, then it’s warranted for the other people involved to report them. I’ve seen this a few times, and while they might complain about being “silenced” afterward, I think we can’t stop a stubbornly nasty person from badmouthing whomever they want, but we can collectively respond as an accountable community rather than a hostile one.

3 Likes

Yes, but again, there’s a middle ground. That poster may not be in violation of any guidelines, but simply have an unpleasant tone. That doesn’t justify rudeness on my own part, but, in my opinion, it is then fine to take a cooler or more direct tone with them.

If the community expectation is either ‘bowing and scraping’, or ‘walking away’, then I don’t think that is very healthy. If there isn’t room for direct and honest disagreement, then it isn’t a very welcoming community.

2 Likes

Yes, disagreements can land on any part of the spectrum from civil to hostile. I have a few personal guidelines to lean toward civility:

  1. Stay patient and amicable, even when sticking to your opinion. Leave if you can’t.
  2. Ideally, criticisms are about programming or the work. Criticisms of character should only be done when absolutely necessary, like reminding people to maintain a civil discussion.
  3. Try to frame yourself as coming from a different perspective rather than their priorities being “wrong”, even if it really seems that way. Taking the original topic of Julia’s flaws, one could say “yes Julia isn’t good at what you’re exactly asking for, but here are the options I know of to approach the same problem, or here’s why these limitations exist and here’s the current progress”
  4. Leave when you’ve had your say or if it’s no longer worth doing so. Don’t repeat yourself or demand some compromise or agreement, your comments will still be there if they ever reconsider.
  5. Flag unambiguous hostility (picking fights, personal insults, obscene comments, threats). Do not confuse this with just stubborn disagreement.
3 Likes

That’s not what you suggested initially though, which was “matching” their tone. I took that to mean to treat them as they treated us, which does directly mean that we should be rude if they’re rude, cold if they’re cold and so on. If that’s not what you meant, that’s fine and I’m happy to hear that! It just circles back to what I wrote earlier, that we should communicate effectively.

What I wanted to convey was that such “matching” of emotions is bad, and from what you’ve written since that we should stay polite and not “stoop down to their level” - in which case, great, we agree! Miscommunication solved! :slight_smile:

That’s not at all what I suggested and not at all what “being humble” means. We’re all wrong sometimes and discussions can get derailed/get our emotions high. It’s those cases where taking a break and maybe coming back later is a good idea. I certainly did not write/mean to just ignore them or “bow and scrape”.

1 Like

What I said was that they

“Might get”. And I think that is ok, as long as one does not violate community guidelines. Which, if I remember correctly, does not mean rudeness is ok.

1 Like

I very rarely see impolite or unfriendly answers on this forum, even when OP really deserved some. I personally think we are quite good at that. I do, however, occasionally see unsympathetic or unhelpful answers, which are IMO the topic of this thread.

10 Likes

As inappropriate a reaction it may be given the topic of this thread, that link did give a good chuckle :')

5 Likes

??? (just to avoid being rude)

In my experience, people here are extremely helpful and nice. However, there’s often a product manager approach to answering some types of questions, which I find unhelpful.
In particular, sometimes people come in with real issues (not “Julia is not exactly how I want it to be”) and people’s answers are more “you shouldn’t be doing that” or “why would you want to do that” instead of “yeah, that is a limitation”.
I don’t want to point fingers, so I won’t link to any posts. I’ll just say there are numerous topics asking for help in compiling Julia code to a small .exe and lots of answers try to convince the OP that open source is the only way to go and users should be able to modify code, instead of acknowledging this is indeed a limitation and that it’s fine if it’s a deal breaker. Same goes for time to first plot, where people often try to convince others this is not a problem or talk about how much it improved, instead of going straight to acknowledging the limitation and suggesting the well known workarounds (while acknowledging their imperfect nature).
So it seems to me people are quite defensive.
But again, very friendly and helpful as a community. I’ve been helped numerous times here.

11 Likes

I realize that I could not really answer to these kind of comments at the time, but now a comment seen elsewhere helps me a lot:

This is a (probably much more technically sound…) rewording of the issue behind the “marketing paradox” I was trying to communicate:

  1. There are many discussions where both static overloading and single dispatch are completely dismissed as valid alternatives to multiple dispatch, see e.g.

    It is even suggested, in both sources, that C++ templating is just syntactic sugar to static overloading, hence less powerful than multiple dispatch. Well, here I want to explicitly answer to @DNF: this is why I think my definition of dynamism matches more to what the community has strongly pushed as the branding of Julia… the whole point made “against” templates is that they have the same semantics of static overloading, hence not capable of dynamism. But in my understanding templates/generics are a first class technology for generic programming and polymorphism, the only thing lacking being runtime behavior, which is why I got that dynamism itself is “a good part of what the Julia hype is about”. Otherwise multiple dispatch would just be (and be marketed as) a respectable alternative to other languages’ solution for generic programming (which is what I think it really is, at this point).

  2. As I said many times, but Steven is able to convey way better, whenever performance is relevant you should totally avoid (let me add here a “true”) runtime semantics and stick to devirtualization. As Steven as clarified to me elsewhere this does not really “downgrade” multiple dispatch to static overloading, but still rules out what I was calling “uninferrable dynamism”.

  3. In the original post Steven was replying to, you have a real-world example of why there may be a “need to reduce dynamism”, for performance reasons. I still do not really get the technical difference between devirtualization and “call site inference” so I cannot really comment on the power of the mechanism you apparently usually rely into. Maybe that’s the true point generating my concern.

1 Like

Devirtualized dispatch still uses runtime semantics. It still avoids the expression problem (you can add new virtual methods to existing types, and new types to existing virtual methods, and use both in type-generic code).

Exploiting the devirtualization optimization mainly means that you want to avoid highly heterogeneous containers in critical inner loops (besides some fairly superficial coding-style constraints like type stability). This seems to be only rarely a burden in practice.

1 Like

Well, the occasional references to the expression problem are another source of confusion for me about this “dynamic vs static” thing:

As formulated on Wikipedia, the expression problem concerns statically typed languages and requires static semantics (yes I know you don’t do casts in Julia… it’s just that your core-language semantics lie somehow outside all of this pre-existent formalizations I guess). You may have found the definitive solution, or you may be a little cavalier about these kind of statements. I don’t really know.

Well it’s 100 comments in, but I think maybe the biggest problem is simply that we LOVE Julia and love is a strong emotion. We know the flaws as well as anyone. We pay for the pain points in blood, but we believe, we hope and try not to hope too much but it’s just SO GREAT when you get some crucial code down to 0 allocations. When haters hate on your team you can’t always be super rational. I just want to say that coding is something I spend a lot of time doing, and I’d rather feel the love and excitement and be a little irrational with the haters than play it cool and code in C++. Ideally we’d feel the love and keep the cool, and I think we usually do. Extreme value statistics on the distribution of humans comprising a community drive a lot of perceived irregularities.

9 Likes