1. 1

    But unfortunately, we naively created the example object like this:

    const example: Example = {
      kind: "example",
      id,
      code,
      expectedResult,
      isInteractive,
      lesson,
    }
    

    This is bad for multiple reasons. If you try to move an example to a different lesson like so:

    example.lesson.id = "new_id";
    

    Then you’ve changed the original lesson’s ID. Probably not what you meant to do!

    1. 1

      That wouldn’t be possible due to a bedrock design constraint of the system: all of the curriculum types are readonly all the way down.

      1. 1

        Oops, didn’t realize!

    1. 18

      I agree that Linus is sometimes overly rude and unnecessarily personal. On the other hand, one immediately knows how strongly Linus feels about what issues. This has value and is probably why many people are ready to defend this tone. But maybe there is a middle ground.

      So while I like Gary’s proposed version in general, I think it was toned down too much and could use more assertiveness/confidence. Small example:

      Original:

      I’m not talking about the changes themselves - I can live with them. But the rationale is pure and utter garbage, and dangerously so.

      Gary’s version:

      These changes look OK, but I’m not sure about the rationale.

      My attempt:

      I can accept the changes itself, but I absolutely disagree with the rationale.

      1. 13

        I like your version better as well. (I wrote the post.)

      1. 14

        This blog post: a case study in being a jerk to someone who is being a jerk, only since Linus is a “jerk” you get off scott-free. Unsurprisingly, this is written by someone who has never contributed to the Linux kernel and who was uninvolved in the discussion he’s picking apart.

        The revised email at the end does lose information. Contrary to what hipsters write blog posts complaining about, 99% of Linus’s emails are cordial. The information that’s lost is the conveyance that this is more important to Linus than most subjects.

        1. 20

          This comment: a case study in being a jerk to someone who is being a jerk to a jerk.

          In all seriousness, I don’t believe that Gary Bernhardt is being a jerk at all. There’s a line between being critical of a piece of work and calling someone brain damaged, and hopefully, we all can see the difference.

          Aside: I love when people use the word “hipster” to invalidate other viewpoints. Apparently, there are two modes of being: Being Right and Being A Hipster.

          1. 2

            To the unserious comment, I don’t think I was being a jerk. I called him a jerk, which I guess you could argue is a jerk move under any circumstances, but if I’m being a jerk then so is Gary.

            To the serious comment, I just want to note that “brain damaged” is a meme among old school hackers which isn’t as strong of a word as you think.

            To the aside, I don’t use hipster as an insult or to imply wrongness, but I do use it to invalidate his point. Gary is a Ruby developer. Linus is a kernel developer. The worlds are far removed from each other.

            1. 50

              I’ve put tens of thousands of lines of C into production, including multiple Linux kernel drivers. In one case, those kernel drivers were critical-path code on a device used in strain testing the wings of an airplane that you might’ve flown in by now.

              I’m not a stranger to the kernel; I just left that world. Behavior like Linus’ in that email was part of the reason, though far from the only reason.

              With all of that said: having written a bunch of systems software shouldn’t be a prerequisite for suggesting that we avoid attacking people personally when they make programming mistakes, or what we suspect are programming mistakes.

              1. 10

                Exactly. I’ve also met many people that do high-performance, embedded, and/or safety-critical code in C that are more polite in these situations. Linus’ attitude is a separate issue from what’s necessary to evaluate and constructively criticize code.

              2. 17

                “brain damaged” is a meme among old school hackers which isn’t as strong of a word as you think.

                Yikes. That “meme” is a whole other thing I don’t even care to unpack right now.

                I don’t use hipster as an insult or to imply wrongness, but I do use it to invalidate his point. Gary is a Ruby developer. Linus is a kernel developer. The worlds are far removed from each other.

                Gotcha. Kernal developer == real old-school hacker. Ruby developer == script kiddie hipster. Are we really still having this argument in 2018?

                1. 2

                  Yikes. That “meme” is a whole other thing I don’t even care to unpack right now.

                  “Brain damaged” is a term from back in the Multics days, Linus didn’t make that one up for the occasion. If you’re unfamiliar with the “jargon file” aka hacker dictionary, you can see the history of this particular term here: http://www.catb.org/jargon/html/B/brain-damaged.html

                  1. 1

                    Yikes. That “meme” is a whole other thing I don’t even care to unpack right now.

                    Listen, cultures are different and culture shock is a thing. I’m in a thread full of foreigners shocked that customs are different elsewhere. You better just take my word for it on “brain damaged” because you clearly aren’t a member of this culture and don’t know what you’re talking about.

                    Gotcha. Kernal developer == real old-school hacker. Ruby developer == script kiddie hipster. Are we really still having this argument in 2018?

                    How about you quit putting words in my mouth? Do you really need me to explain the world of difference between Ruby development and kernel hacking? In 2018? It’s not a matter of skill. Gary is great at what he does, but it has almost nothing to do with what Linus does. The people who surround Gary and the people who surround Linus are mutually exclusive groups with different cultural norms.

                    1. 21

                      You can’t use “it’s our culture” as a panacea; calling someone an idiot, moron etc. is a deliberate attempt to hurt them. I guess if what you’re saying is, “it’s our culture to intentionally hurt the feelings of people who have bad ideas,” well, then we might be at an impasse.

                      1. 22

                        The kind of toxic exclusivity and “old school hacker culture” elitism that you’re spouting in this thread is not what I expect to see on Lobsters. It makes me genuinely sad to see somebody saying these things and it also makes me apprehensive of ever being involved in the same project or community as you. Software development today is not what it was 20 –or even 5– years ago. Today it is far more about people than it is about software or technology. You may not like this, but it is the reality.

                        1. 7

                          Lobste.rs always had a few vocal people like this in threads. But note that they’re in the minority and generally are not upvoted as much as the people who aren’t elitist, racist, or just generally being a jerk.

                          1. 5

                            “old school hacker culture” elitism

                            Near 40, I can agree to be called old. But not elitist.
                            And I cannot accept to be associated with racist.

                            Not all software developers are hackers. Not all hackers are software developers.

                            Is stating this “elitism”? Is it “racism”? Is it being “jerk”?
                            Or is just using terms properly?

                2. 5

                  The information that’s lost is the conveyance that this is more important to Linus than most subjects.

                  So add “I want to stress that this issue is really important to me” at the end of the revised email.

                  I think that making an issue out of this particular information being lost is missing the point - that it would be possible to say the same thing as Linus did without being abusive.

                  Contrary to what hipsters write blog posts complaining about

                  You’re falling into the same trap that the post discusses. This derision isn’t necessary to make your point, and doesn’t make it any stronger - it just adds an unnecessary insult.

                  1. 9

                    Contrary to what hipsters write blog posts complaining about, 99% of Linus’s emails are cordial.

                    That may well be true, but do we need that last 1% in a professional setting?

                    1. 9

                      (I am not defending Linus’ behaviour here, please don’t put those words in my mouth.)

                      I strongly take issue with American ideas of “professionalism”, and an even more so with the idea that we get to decide whether this project is “a professional setting” or not. What exactly makes this a “professional setting”? What is a “professional setting”? Why do we hold some interactions to higher standards than others?

                      I suspect “money changing hands” is the thing that makes this “a professional setting”, and that grinds my gears even further. Why are we supposed to hold ourselves to different standards just because some people are getting paid for doing it?

                      1. 3

                        Right, “professionalism” implies that you only need to be nice to somebody when you want them to something for you or want their money. This should actually be about “respect”, whether or not you want a Linux contributor to do something for you or want their money.

                      2. 12

                        The Linux kernel is not a professional setting. Besides, I argue that the 1% is useful, even in a professional setting - sometimes strong words are called for. I’ll be That Guy and say that people should grow a thicker skin, especially people who weren’t even the subject of the email and have never been involved in kernel development.

                        1. 14

                          If I look at who the contributors to the Linux kernel are, it would certainly appear to be a professional endeavor.

                          A large chunk of contributions to the kernel are made by people who are getting paid by the companies they work for to contribute. Sounds like a professional setting to me.

                          1. 4

                            Linux development is only “a professional endeavour” (which is a phrase I have strong issues with, see above) because some people decided to build their businesses in Linus’ craft room. We can like or dislike Linus’ behaviour, but we don’t get to ascribe “professionalism” or lack thereof (if there even is such a thing) to Linus’ work or behaviour, or that of any of the contributors.

                            Even if “professionalism” is an actual thing (it’s not; it’s just a tool used by people in power to keep others down) it’s between the people doing the paying, and the people getting the pay, and has nothing to do with any of us.

                            This idea that people should behave differently when there’s money involved is completely offensive to me.

                            1. 7

                              But it’s not. It’s a collaboration between everyone, including professionals and hobbyists. The largest group of kernel contributors are volunteers. On top of that, Linus doesn’t have to answer to anyone.

                              1. 8

                                So, having a hobbyist involved means that you can be dickhead? Is that the conclusion that should be drawn from your statements?

                                1. 3

                                  No. I’m saying that Linus is not a dickhead, Linux is not a professional endeavour, and neither should be held to contrived professional standards.

                                  1. 2

                                    “I’m saying that Linus is not a dickhead”

                                    His comments are proving otherwise given the main article shows the same information could’ve been conveyed without all the profanity, personal insults, and so on. He must be adding that fluff because he enjoys it or has self-control issues. He’s intentionally or accidentally a dick. I say that as a satirist whose a dick to people that give me headaches in real life. Although it doesn’t take one to know one, being someone whose always countering dicks and assholes with some dickish habits of his own makes what Linus is doing more evident. If no mental illness, there’s little excuse past him not giving a shit.

                                    1. 5

                                      “doesn’t behave according to my cultural norms” == “mental illness”

                                      Seriously?

                                      I would really appreciate it if you could stop expecting that your cultural norms have to apply to everyone on the planet.

                                      1. 1

                                        Im identifying the cultural norm of being an asshole, saying it applies to him at times, and saying the project would benefit if he knocked if off. Im not forcing my norms on anyone.

                                        Your comment is more amusing giving someone with Linus’s norns might just reply with profanity and personsl insults. Then, you might be complaining about that. ;)

                                        1. 1

                                          Then, you might be complaining about that. ;)

                                          No, I’d just accept that people from different cultures behave differently.

                                          Let’s face it, most people hate getting told they are wrong, regardless of the tone. That’s just how we are as humans.

                                          Taking offense about the tone just seems very US-specific, as they are accustomed to receiving some special superpowers in a discussion by uttering “I’m offended”.

                                          Some of the best feedback I received in my life wouldn’t be considered acceptable by US standards and I simply don’t care – I just appreciate the fact that someone took his time to spell out the technical problems.

                                          Here is a recent example: https://github.com/rust-lang/cargo/pull/5183#issuecomment-381449546

                                          1. 1

                                            Here is a recent example: https://github.com/rust-lang/cargo/pull/5183#issuecomment-381449546

                                            I’m not familiar with Rust, so maybe I’m missing crucial context, but I read this feedback as firm but unproblematic overall. Compared to Linus’ email:

                                            • Comment admits that there are multiple points of view, gives case for their take on it.
                                            • Focuses on the problems at hand rather than speculating on characteristics of any individuals involved, beyond acknowledging other viewpoints.
                                            • Doesn’t include any personal insults.
                                            • Doesn’t include any profanity that I noticed, certainly not gratuituous profanity.

                                            It could be nicer, sure. But it seemed respectful, in the “you can do what you’re doing but consider these things:” kind of way…? The author event went out of their way to acknowledge being unconstructive.

                                            To my reading it seemed closer to Gary’s email than Linus’.

                                            To put it another way: if Linus wrote emails like this (only shorter, probably) then I don’t think Gary would have written a blog post about it.

                                            (For the record: I’m not American, but I do fall on the gee-it’d-be-great-if-Linus-stopped-abusing-his-colleagues side of this debate.)

                                            1. 1

                                              I didn’t intend to imply that this was comparable to Linus’ mail, but that people who would be offended by Linus’ writing would also be offended by that comment.

                                              It’s a slippery slide where every honest-to-go comment that expresses real feelings starts getting replaced by “this is an interesting idea, but did you consider …” corporate lingo, even if the code is horribly wrong.

                                              1. 2

                                                I didn’t intend to imply that this was comparable to Linus’ mail, but that people who would be offended by Linus’ writing would also be offended by that comment.

                                                I understand this is your point, but I think there is no evidence for this. The people complaining about Linus’ conduct are complaining about specific things, and these things are not present in the comment you linked.

                                                Did anyone in the Rust community (generally considered a “nicer” community than kernel development) raise concerns about this comment?

                                                There is a difference between “not overtly nice” and “openly abusive”, even accounting for cultural context.

                                            2. 1

                                              Then you and I arent that different in how we look at stuff. Ive just layered on top of it a push for project owners to do what’s most effective on social side.

                                        2. 2

                                          I believe it’s intentional. He does not want to be bothered by nurturing the newbs, so he deters them from going to him directly and forces them to do their learning elsewhere.

                                        3. 2

                                          These numbers suggest it is a professional endeavor:

                                          https://thenewstack.io/contributes-linux-kernel/

                                          1. 2

                                            Those numbers just break down the professionals involved, and don’t consider the volunteers. If you sum the percentages in that article you get around 40%. Even accomodating for smaller companies that didn’t make the top N companies, that’s a pretty big discrepancy.

                                  2. 6

                                    Linus himself is working in a professional capacity. He’s employed by the Linux Foundation to work on Linux. The fact he is employed to work on an open source project that he founded doesn’t make that situation non-professional.