1. 15

    The problem with using vim to support such claims is that it doesn’t actually work: HJKL keys were not researched in extreme depth and proven to be the best keys to use as arrow keys in qwerty keyboards, they just happened to be the arrow keys on the one terminal that the person that wrote vi was using 1 2

    1. 2

      Yeah, I don’t get why we keep preaching HJKL in vim. I use JKL; instead (down up left right respectively) and I don’t have to lift my fingers from home row and left / right are on the “weaker” fingers, because I don’t typically use them as often as up / down.

      1. 2

        I agree with the parent comment, HJKL was not researched, and might not be the absolutely best ever. At this point it would less useful for me to use something other than HJKL. Muscle memory is too ingrained.

        And even if I took the time really learn another key combination there would be tons of programs that still assume HJKL.

        The foundation might be wonky, but we are not going to tear down the house and rebuild it.

    1. 2

      man, sometimes I just feel like wanting to write a much-used npm package, just so that I can delete it and cause chaos. As a non-js dev, and a minimal user JavaScript in general, seeming this always gives me Schadenfreude.

      1. 1

        After left-pad it’s not possible to just remove a popular package, such request needs to go through the support first.

        https://docs.npmjs.com/cli/unpublish

        1. 4

          I don’t understand why it’s possible to delete it in the first place. If you release a piece of code with a permissive enough license you’re accepting the fact that others can keep using that code forever and without any further permission from you. The worst you can do is to stop improving that code. So, why doesn’t npm exercise its right to keep using that piece of code?

          1. 3

            This is the stance on Rust’s crates.io:

            Take care when publishing a crate, because a publish is permanent. The version can never be overwritten, and the code cannot be deleted.

            I’m sure crates/cargo will encounter its own issues over time but it’s nice that this at least shouldn’t be one of them.

          2. 4
            1. write a package and spice it up with non-free and/or patent-encumbered code without license
            2. publish on npm
            3. wait (or help it) ’till your package becomes similarly important to left-pad
            4. tip off / file a DMCA / etc. with npm
            5. ???
            6. Profit!1
        1. 3

          It always bothers me when people just complain, loudly, when things like this happen. Shouldn’t developers of all people be sympathetic to a bug getting through and wreaking havoc? It probably wasn’t anyone’s fault and npm was probably working on it super hard so I just don’t see the point of being so negative. Like, being able to install JavaScript just isn’t that important, so just shut up and let them fix it, you know? #hugops

          1. 13

            Shouldn’t developers try to learn from mistakes and design systems that are more resilient? Or anti-fragile if I understand the term correctly.

            There was a thread about npm not that long ago comparing OpenBSD ports tree (or Debian apt, if that’s your poison) to npm, and left pad came up, and the response was “that’ll never happen again.” Here we are, it happened again, but somehow OpenBSD and Debian have maintained their disaster free records. Were they just lucky? Or is it possible there’s something about their design that reduces risk? Is there anything we can learn besides “shit happens, better luck next time”?

            1. 3

              Debian’s package set is intended to work together. There are policies and maintainers and tools. Things like npm are more like a big heap of unvetted, unmaintained (except by upstream), packages that can change or disappear at any time

              1. 3

                What I am categorically not saying is “don’t criticize npm” (or anyone who has an outage). All I’m saying is that during the actual incident people shouldn’t berate ops teams since at best that does nothing and at worst adds to presumably already very high stress levels which may even impede progress towards restoring services. I’m not really sure that I have a super well-defined gripe other than “don’t you think they already know, duh??”

                Hope that clarifies what I meant since for whatever reason talking about this outage seems to make me phrase things in the most misleading possible way :P

                1. 2

                  Ah, gotcha. Funny enough, I just watched the James Mickens talk where he uses the frenemy as a service monitoring service. Tell all your high school classmates about your cool startup to make them jealous, then they’ll always be the first to text you when something doesn’t work.

                2. 0

                  I believe this issue doesn’t have the same culprit as left-pad, but we’ll see what the npm team is going to figure out.

                  Also, IIRC npm is running a much bigger operation than Debian/OpenBSD packages, so I wouldn’t try to compare them. npm has just way bigger chance to screw something and make many more people upset just because of how much bigger they are than OpenBSD or Debian.

                  1. 2

                    So scale may have something to do with it. How large should a package manager be? One answer is infinite, but I’m not convinced that’s the case. If the answer is finite, what is it? Is there an upper bound on packages in a reliable ecosystem? Should we cap package managers at that number? Why or why not?

                3. 4

                  How many times do you go back to the same restaurant after getting food poisoning? I realize these people might be good intentioned but at some point it’s time to cut your losses and find a better place to patronize. With better standards.

                1. [Comment removed by author]

                  1. 3

                    It struck an off note for me too, because I have seen so many amazing systems that represent totally different ideas about computing (Plan 9, Smalltalk, Prolog, APL), many of which happened to also have been developed by white dudes. I agree we need more ideas, even crazy ideas. I don’t see what that has to do with race and sex, but oh well. Maybe it engenders them to their audience.

                    1. 4

                      It’s not ~50/50 split in any of those companies.

                      Besides, why would pointing out privileged people undermine the message when it’s one of the biggest problems in the IT culture right now? What is the politically correct bandwagon that you’re talking about?

                      1. 1

                        To save you a click:

                        Racial diversity at:

                        • Google is 55% white / 35% asian
                        • Microsoft is 56% / 31%
                        • Apple is 54% / 21%

                        I think the claim “mostly white” is clearly (if only just) true, by the numbers.

                        That said, given wikipedia puts asian-americans as 6.7% of population I’d also agree with the claim they are ‘dominating’ in tech given how overrepresented they are relative to population.

                      2. 3

                        It doesn’t raise a flag for me. I’m reminded of the male architect who designed glass stairs and put them in a building… forgetting that women sometimes wear skirts and would prefer not to have people below them be able to stare straight up them. The point is to recognize that solutions that work perfectly for white able bodied men are not necessarily solutions that work perfectly for everyone else, hence why a diversity of viewpoints is important. This is not to say that those solutions don’t work for everyone else, either. It’s just that more data makes for more robust solutions that please a larger population of users.

                        1. [Comment removed by author]

                          1. 1

                            ravicious gave you evidence that Asian people are not 50/50 with white people. The OP mentioned the single most dominant group in terms of sheer numbers. Not sure why acknowledging the factual demographic makeup of UI design teams in large tech organizations would discount the rest of the OP’s argument. As I stated in my example, diverse viewpoints can help round off design errors earlier–before they hit the public at large–so it’s not an off topic point to bring up, either.

                            1. [Comment removed by author]

                              1. 1

                                Nevertheless, the statement about white men being the largest group is technically correct (by 20% of the population, so not within the margin of error, either.) I still don’t understand your objection to pointing out the dominant group in UI design by numbers. Why is it so bad to acknowledge that fact?

                      1. 15

                        I was disappointed that there were no demographic questions - that’s a vital area which the Rust survey creators put a lot of work into. I expect it was due to the survey creators not seeing it as important enough to justify the effort of doing it right, which I know is considerable. I understand that decision, but it’s frustrating, because it’s very important to some of us.

                        1. 16

                          I agree that demographics are important! I definitely want to include them in next year’s survey. This is the first survey I’ve ever published. I didn’t want to get the demographic questions wrong or otherwise mishandle them. That’s why I decided to focus on the technical questions. The survey was developed in the open (see this issue); next year’s will be too. I would be delighted to have you help out with the demographic questions.

                          1. 13

                            Just copy ours :).

                            Jest aside, we’re cool with anyone taking these questions like all our other open source output.

                            Also, there’s a huge problem currently: most languages don’t run these kinds of surveys and then many don’t share a common core. It’s hard to read a lot from them.

                            In case of Rust, we’re in the lucky position to actually have run two of them, so we can at least put this year’s number in relationship to last year’s.

                            But for the rest? Are we doing better then language X? Worse? Only gut feeling.

                            I don’t see this as a competition, there’s rarely been a structured approach to mapping communities.

                            In any case, if you’d like to exchange experiences, please feel free to contact community-team@rust-lang.org

                            1. 8

                              I’m happy to hear that! And I’m also happy to be contacted to comment on concrete proposals, when next year’s survey is at that stage; I don’t have the bandwidth to be involved more than that.

                              I suspect the team that did the Rust survey will also be happy to advise about these topics. I know they’ve talked about it a bunch here on lobste.rs, and those old discussions are still in the archives somewhere.

                            2. -2

                              You mean the part about “underrepresented groups” or whatever on the Rust survey? Why do you think that is important?

                              One of my favorite things about the Haskell community is that everyone is too busy doing actual technically impressive stuff to worry about e.g. how many gay people happen to be using it.

                              To be blunt, I think that sort of thinking (obsessing over whether an organic community follows one’s arbitrarily constructed ideals for what it should look like) is a cancerous mind-suck that detracts from actually productive work.

                              To be a little more blunt, I think the fact that Haskell has a reputation as being extremely technical has actually helped the community a great deal, at least just by virtue of the fact that it scares away people who are primarily involved in software as a means to push some political agenda.

                              Late edit: feel free to respond instead of just downvoting, would be happy to be wrong here.

                              1. 33

                                This is downvoted already, I’ll bite anyways. First of all, I think your comment shows that you have no idea what we are doing there.

                                Gathering demographics questions is much more then what you narrow it down to. It’s telling that the only thing you can come up with is “how many gay people happen to be using it”? It’s also: where do people live, would they want to travel to a conference, etc… It cuts out the guesswork. You know what? When you measure, you also sometimes find out that things are just okay. No need to do something. Great! Sometimes, you find something odd. Then you might want to investigate. It’s a community survey. We want to know about people, not about technology. But social groups are also a thing to check.

                                The Rust community also does production user surveys, which are die-hard technical and very detailed, usually specific in certain areas like embedded and or gaming. We seek out users willing to do that and set up meetings to figure out the issues.

                                To be blunt, I think that sort of thinking (obsessing over whether an organic community follows one’s arbitrarily constructed ideals for what it should look like) is a cancerous mind-suck that detracts from actually productive work.

                                To be blunt too: It’s shit that you call my work “not productive”. Here’s a thing: I don’t want to contribute to rustc or Servo. Why? I code all day, I don’t want to code at night. I’m happy that other people want to. I still want to contribute to FOSS. In the last 5 years, I’ve set up 2 foundations, 11 conferences and managed around 250000 Euros to run all these things. I signed leases that could have bankrupted me. I managed to find ways to run 2-days conferences that cost 100EUR and still cover all expenses of speakers, attendees and those that cannot pay 100 Euros. I love that work. People are indeed very fair about this. Those that have more give, those that don’t, don’t. And I want everyone to benefit from that. My whole work revolves around the question “Who’s not here, and why?”. It’s my hack. Nothing of that is fundamentally special, other people could have done it.

                                And you know what? We measure. We don’t go out “hey, please do X because I think it works”. No, we go “hey, we did X and metric Y improved”.

                                It’s also amazing how many people just need a “have you considered programming might be something for you?” and then just head of and learn it. But the question needs to be asked a couple of times.

                                It’s shitty to go on an concern troll around people doing precisely that to better do “productive work”.

                                There’s no way to get me to work on other things without paying me. And you know what I like about the Rust community? They don’t concern troll me. They go: cool, if that’s what you want to do, please do it for us. It’s not like I bind a lot of resources. Community work works best if you don’t have many cycles. We align on a goal and then we do a lot of footwork.

                                Sure, there are cases where issues arise and social work becomes focus, but that’s fine. Interestingly, the work of community workers is often to talk about issues before they come a trashfire, go to reddit and subsequently to 4chan.

                                There’s also the “fixed cake” fallacy at work here: The belief that if we expand our community beyond a certain group, another group has to take the impact. That isn’t the case. The cake is not fixed. The market for programming languages is growing in absolute terms, also our communities are growing in absolute terms. These are effect to be appreciated and taken into consideration.

                                Different folk need to be addressed in different fashion and thats fine. These surveys give us a bearing in where we want to invest our time or where things just work.

                                If you absolutely want to talk in programming terms, we’re profiling our work. I find it amazing that there is so much pushback when we actually check on our successes.

                                It’s shitty of people to devalue that work. A work, which has to be said, is more often done by women and people of color in many communities. Many of which are masters of it.

                                There’s two options here: I do this work within a community or I don’t. It’s as simple as that. No “more productive” trolling.

                                I structured work on these issues is still “cancerous mind-suck” for you, then go ahead. But say it to my face when you meet me.

                                To be a little more blunt, I think the fact that Haskell has a reputation as being extremely technical has actually helped the community a great deal, at least just by virtue of the fact that it scares away people who are primarily involved in software as a means to push some political agenda.

                                I just leave this here:

                                So I just met Simon Peyton Jones (creator of Haskell) and chatted with him for a bit. Asked him his thoughts on Rust and he said he thinks it seems exciting and he was jealous of the great community we have. Just thought I would let you guys know :)

                                (From: https://www.reddit.com/r/rust/comments/5yo24a/meta_rust_jealousy/)

                                This was, by the way, the best compliment I ever saw, I respect Simon very much.

                                We have an awesome many people primarily interested in software working in the Rust community. But they don’t throw the community workers under the bus like you do. That’s why I run a 6-monthly Rust conference and not a 6-monthly Haskell conference.

                                I love Haskell, but there’s reasons I’m not active there. Still, for anyone that wants to learn techniques and procedures, by all means get in touch.

                                Communities don’t happen at random. They work through network effects and feedback and these can be moderated and improved.

                                Finally, to be very blunt: you just cost me 45 minutes of community work, which I’d have preferred to fill with something productive.

                                But I also think it’s worth putting it out for others to read.

                                EDIT: I’d also like to state that I know quite some people in the Haskell community caring very deeply about this. haskell-cafe is still one of my inspirations for a cool space to make. But that space is intentional, not organic.

                                1. 10

                                  Thank you very much for writing this. It will serve as a great resource the next time I spot a similar comment in the wild.

                                  1. 4

                                    Found this thread late, but wanted to say thanks @skade for the consistently insightful commentary on community here, and for you work in the Rust community. I don’t work with Rust much, but on the occasions when I’m working on community-building, the Rust community is one of the first places I go to for examples of how to do it well.

                                    1. 1

                                      Thanks for responding.

                                      It’s telling that the only thing you can come up with is “how many gay people happen to be using it”?

                                      That’s the only demo data you put on https://blog.rust-lang.org/2017/09/05/Rust-2017-Survey-Results.html

                                      Please, tell me how you thought that was “telling”.

                                      But social groups are also a thing to check.

                                      Check and… what?

                                      The Rust community also does production user surveys,

                                      Do you see me objecting to those?

                                      To be blunt too: It’s shit that you call my work “not productive”.

                                      Sorry you feel that way. I think a lot of things aren’t productive, including some things I do, so you shouldn’t take it personally.

                                      In the last 5 years, I’ve set up 2 foundations…

                                      Cool, but you don’t need to justify your relevance because I called one of your interests into question.

                                      It’s shitty to go on an concern troll around people doing precisely that to better do “productive work”.

                                      Actually, I wouldn’t say anything if I just thought you were just wasting your own time; further than that, I think obsessing over demos is actively counterproductive. The utility to the community is negative, not zero.

                                      There’s also the “fixed cake” fallacy at work here: The belief that if we expand our community beyond a certain group, another group has to take the impact.

                                      It’s not so much “taking the cake” as “ruining the cake”. If you “expand your community” to include demo-obsessed identity politicians, the community is going to become actively worse.

                                      A work, which has to be said, is more often done by women and people of color in many communities.

                                      Why did you feel this comment was relevant to the conversation? I have several hypotheses, but I’d prefer not to assume your motivations.

                                      I structured work on these issues is still “cancerous mind-suck” for you, then go ahead. But say it to my face when you meet me.

                                      Sure. I don’t have an aversion to arguing about the social costs of different activities in person any more than I do online.

                                      That’s why I run a 6-monthly Rust conference and not a 6-monthly Haskell conference.

                                      Right, that’s what I said earlier; something about Haskell pushes away people with demographic planning aspirations, which I like a lot.

                                      Communities don’t happen at random… these can be moderated and improved.

                                      This is just fundamentally untrue; most of the best communities are more or less spontaneous. Many communities I love (such as lobsters) are good precisely because they’re minimally moderated.

                                      haskell-cafe is still one of my inspirations for a cool space to make. But that space is intentional, not organic.

                                      The list is, afaik, unmoderated, and the Haskell IRC (one of the best chats on freenode) is also totally unmoderated. Your example is evidence against your claims.

                                      1. 6

                                        Communities don’t happen at random. They work through network effects and feedback and these can be moderated and improved.

                                        This is just fundamentally untrue; most of the best communities are more or less spontaneous. Many communities I love (such as lobsters) are good precisely because they’re minimally moderated.

                                        This is false for Lobsters, both historically and currently.

                                        Speaking historically, you cut out the key phrase “network effects” from the quote. The Lobsters of early 2014 was a very different, nearly empty place. The current state of Barnacles is quite similar: low activity by any metric you care to measure (traffic, stories posted, comments, votes, etc.) and a negligible sense of community. Online communities start as failures and have to overcome the chicken-and-egg problem that it’s a waste of an individual’s time to participate until quite a lot of other people are already participating.

                                        And on an ongoing basis, Lobsters requires daily attention to moderation and maintenance. Most of it is design, small edits, comments, and private messages. The rare, exciting things like deleted comments and banned users are the tip of an iceberg. It’s all the small, constant attention that keeps the positive feedback loops working to power a successful community instead of killing it. This is also true of Haskell-cafe.

                                        The theme I take from your comments seems to be that the work you are unaware of doesn’t exist and, if it does, it must be worthless. I don’t understand that dismissive cynicism well enough to respond meaningfully to it, so all I can do is point out these surface-level inaccuracies.

                                        1. 2

                                          Lobsters requires daily attention to moderation and maintenance.

                                          I seem to recall jcs saying that he never deleted anything if he could avoid it, and indeed that seemed to be the case. It seems that you are now taking a somewhat more active stance, but historically lobsters has had very little/none of what I would call active moderation.

                                          Most of it is design, small edits, comments, and private messages… This is also true of Haskell-cafe.

                                          SPJ sending out an email about being nice isn’t community moderation or management. Neither is general site maintenance. I’m not sure how you would conclude that I disagreed with any of these things unless we’re using very different definitions for a number of words.

                                          The theme I take from your comments seems to be that the work you are unaware of doesn’t exist

                                          I’m aware of all the examples you gave; they just aren’t the kind of obsessive, inorganic micromanagement I was objecting to.

                                        2. 4

                                          That’s the only demo data you put on https://blog.rust-lang.org/2017/09/05/Rust-2017-Survey-Results.html

                                          I don’t get it. That page contains a bar chart with all sorts of demographic categories on it, just above “Diversity and inclusiveness continue to be vital goals for the Rust project at all levels.”

                                          1. -2

                                            Me:

                                            e.g. how many gay people happen to be using it.

                                            Guy who responded to me:

                                            where do people live, would they want to travel to a conference, etc…

                                            What kind of demo data do you see them sharing on that page? I’m not really sure what you’re confused about; you seem to be agreeing with me.

                                            1. 7

                                              The blog post is an editorialised overview, the 2016 one covers that. https://blog.rust-lang.org/2016/06/30/State-of-Rust-Survey-2016.html#survey-demographics

                                              There have not been notable changes, so it wasn’t mentioned again.

                                          2. 4

                                            As the person who started the Haskell IRC channel and as an active moderator of said channel, moderation happens often. There’s a team of motivated users on the #haskell-ops IRC channel and we have to step in more than I’d prefer.

                                            Good communities require much work and regular feedback.

                                    1. 10

                                      I know this post will sound really bad no matter how I say it, but I wonder how much of sexism, in the present (unlikely) or future (more likely) will be more fear than misogyny.

                                      Womens are becoming a touchy subjects and, in today’s world where a trial is decided by the public before it goes to court, a false rape accusation does more damage than the trial itself (at least imo). If I were an employer I’d be worried of female employees, not out of hatred or anything, but because they would hold so much power to screw me over.

                                      I personally don’t care what gender you are or religion or species.. I even like talking to assholes as long as they have something interesting to say. (Sadly I tend to be a bit of an asshole myself) But I would still be scared of talking to random women in a context like a conference because I might say something that puts me in a really bad place. It feels like I would be talking to someone with a loaded gun in my face.

                                      I think the best friends I have are those who made me notice my mistakes instead of assuming the worst of me, while the tech scene today seems more like a witch-hunting marathon to me.

                                      On that subject, why does the world have to work with cues and aggressive stances? Why can’t we be honest with each other? I see it every day, someone above me expects everyone to catch on her cues, if they don’t, they’re the bad guys, without even letting the other end knowing anything.

                                      Most angry tweets and blog posts about this topic are from people who just kept everything in or bursted out in anger at them and they got defensive or responded just as aggressively (kinda to be expected, honestly). I would love to see examples of people who were made aware of their behavior and everything went fine after that.

                                      1. 18

                                        a false rape accusation does more damage than the trial itself (at least imo).

                                        A genuine rape accusation also does more damage than the trial itself. In both cases, the victim is affected. It’s only how we perceive it that’s different.

                                        I think somewhere along the line communities started to encourage angry reactions as a way of maximising engagement. Somewhere along the line, we forgot to be kind by default, in a way we weren’t offline. I meet people who spend a lot of time in online communities, and you can see (amongst some people) that their online behaviour leaks into their personal offline behaviour, but rarely the other way.

                                        I think the recent furore over Equifax’s CSO having a music degree is a good example of this. Nobody should care about someone’s degree, but a marketwatch piece designed to provoke angry responses, provoked angry responses on the Internet. The Twitter algorithms designed to increase engagement increased engagement and the Internet went twitter crazy.

                                        There has to be a way to use a combo of the tools we use for engagement to promote de-escalation and de-engagement. Deprioritising inflammatory content to make the world a better place is not losing out. It’s winning.

                                        That’s what I really love about lobsters. People may have issues misinterpreting context and social cues here, but generally people are kind to each other.

                                        1. 10

                                          a false rape accusation does more damage than the trial itself

                                          That sort of accusation could, for example, prevent you from winning an Oscar. Or become elected US President.

                                          1. 11

                                            [Note: Before reading this, readers should probably know I have PTSD from a head injury. The side effects of nervous eyes, mumbly voice, and shaky hands apparently make me look like an easy target for male and female predators alike. I’m like a magnet for assholes who I usually deal with patiently, dismiss, or stand ground. Mostly ignore them. This issue required special treatment, though, since I was always treated very differently when it as something like this.]

                                            Far as scenario you’re worried about, it’s a real thing that’s happened to me multiple times. Not rape claims fortunately but sexual harassment or discrimination. I think I was getting false claims to managers two or three times a year with dozens making them to me directly as a warning or rebuke but not to my bosses. They just wanted me to worry that they could or would destroy me. Aside from the random ones, it was usually women who wanted a discount on something, wanted to be served ahead of other customers, or (with employees) not wanting to do the task they were given since it was beneath them or “man’s work.” Saying no to any of that was all it took…

                                            However, I was in a service position dealing with thousands of people plus dozens of workers due to high turnover. With all those people, just a few claims a year plus dozens of threats shows how rare this specific kind of bully is. Those that will fully push a false, gender-oriented claim are rare but highly damaging: each claim led people [that didn’t know me well] to assume I was guilty by default since I was male, interrogations by multiple supervisors or managers, and a waiting period for final results where I wondered if I’d loose my job and house with no work reference. Employment gaps on resumes make it harder to get new jobs in the U.S.. I got through those thanks to what I think were coworker’s testimony (mostly women) and managers’ judgment that the good and bad of me they’ve seen versus straight-up evil stuff a tiny number of women were claiming didn’t match up.

                                            Quick example: As a team supervisor, I always gave jobs to people in a semi-random way to try to be equal in what people had to do. Some supervisors seemed to cave in if a worker claimed the work was better for another gender, esp labor vs clerical vs people-focused work. When giving an assignment, the most shocking reply I got was from a beautiful, racially-mixed woman who had been a model and so on. A typically-good, funny worker who had a big ego. She said the specific task was a man’s job. I told her “I enforce equality like in the 19th Amendment here: women get equal rights, equal responsibilities.” She gave me a snobby look then said “I didn’t ask for that Amendment. Keep it, get rid of it, I don’t care. (Smirked and gestured about her appearance) I don’t need it. And I’m not doing man’s work.” I was a little stunned but kept insisting. She grudgingly did the job but poorly on purpose to disrupt our workflow. I had to correct that bias in my head where I assumed no woman would ever counter law’s or policies giving them equality outside maybe the religious. I was wrong…

                                            Back to false claims. That they defaulted against males, including other men who got hit with this, maybe for image reasons or just gender bias led me to change my behavior. Like I do in INFOSEC, I systematically looked for all the types of false claims people made esp what gave them believability. I then came up with mitigations even down to how I walk past attractive women on camera or go around them if off-camera. The specific words to use or avoid is important, esp consistency. I was pretty paranoid but supporting a house of five people when lots of layoffs were happening. The methods worked with a huge drop in threats and claims. Maybe the bullies had less superficial actions to use as leverage. So, I kept at it.

                                            This problem is one reason I work on teams with at least two people who are minorities that won’t lie for me. The latter ensures their credibility as witnesses. Main reason I like mixed teams is I like meeting and learning from new kinds of people. :) It’s a nice side benefit, though, that false claims dropped or ceased entirely when I’m on them for whatever reason. I’m still not sure given I don’t have enough data on that one. I also push for no-nonsense women, especially older with plenty of experience, to get management roles (a) since I’ve always promoted women in the workplace on principle and because mixed teams are more interesting; (b) side benefit that a woman whose dealt with and countered bullshit for years will be more likely to dismiss a false claim by a woman. When I finally got a female boss, esp who fought sexism to get there, the false claims that took serious investigation were handled usually in minutes by her. There was just one problem while she was there with a Hispanic woman… highly attractive with excellent ability to work crowds… that wanted my position launching a smear campaign. It almost worked but she had previously tried something on same manager she needed to convince. Her ego was so strong she didn’t think it would matter because she’d win her over too. Unbelievable lol. She left in a few months.

                                            So, yeah, I’d not go to one of these conferences at all probably. If I do, I’m bringing at least two women, one non-white, who barely like me but support the cause. If they leave me, I’m either going outside or doing something on my computer/phone against a wall or something. I’m not going to be in there alone at all given this specific type of bully or claim will likely win by default in such a place. Normally, though, I don’t mind being alone with women if there’s witnesses around that’s a mixed crowd, I’ve gotten to know them (trust them), or they’re one of the personalities that never pull stuff like this. I’ve gotten good at spotting those thanks to the jobs I did working with strangers all day. I get to relax more than you’d think from this comment, though, since vast majority of females on my team, other teams, and customers’ like me or at least neutral. The risk reducing behaviors are so habitual after years of doing them I barely notice I’m doing them until I see a post like this.

                                            Not funny note: There was also real sexism and harassment against women, esp from younger crowd. We had to deal with that, too. On rare events, some physical assault and stalkers that required police and other actions to deal with. One of the problems in many organizations is people will say the woman is making it up. Then, justice won’t happen. Our women were honest enough and male assholes brazen enough that we usually knew who was lying. Similarly when the women were bullshitting about harassment. In many other places or in trials, the defense was the woman might have been making it all up to spite the male. The reason that defense often works is because of the kind of bullies and lies I describe above. I get so pissed about false claims not just since they impacted me but because a steady stream of them in the media is used to prevent justice for real victims. That combination is why I write longer and fight harder on this issue.

                                            1. 9

                                              a false rape accusation does more damage than the trial itself (at least imo)

                                              In our society, a woman reporting a rape has to deal with a lot of shit from a lot of different people. Stuff like victim blaming, “What did you wear?”, “Oh you must’ve been reckless” make it already very hard for women to report rape when it happens. If anything we should be more concerned with women not reporting rape cases rather than false reports – especially since the latter is very small compared to the former. Sorry for not providing any sources, I’m on mobile right now.

                                              1. 15

                                                I know this post will sound really bad no matter how I say it,

                                                It does sound really bad. My favorite part is when you use the phrase “witch hunting” to somehow excuse the fear of women being around.

                                                but I wonder how much of sexism, in the present (unlikely) or future (more likely) will be more fear than misogyny.

                                                Oh so very little. Do not fear for mysoginy, it will be around forever.

                                                1. 16

                                                  My favorite part is when you use the phrase “witch hunting” to somehow excuse the fear of women being around.

                                                  I could not find a gender-neutral term that carried a similar meaning. This is definitely a fault on my part (my english dictionary is not that rich) but I was referring to the act of persecution by one or more individuals to the intended result of ruining someone’s life, humiliating them etc.

                                                  Oh so very little. Do not fear for mysoginy, it will be around forever.

                                                  What little hope for humanity and its self-improvement you seem to have. I understand the feeling.

                                                  My point was not whether misogyny will go away (it won’t), but how much of the perceived misogyny will be out of outright hatred rather than fear of consequences. Someone who doesn’t interact with women will be perceived as misogynous, but maybe he might just want to stay safe from ending up in a really bad situation? My “gun pointed at your head” analogy still stands. It feels uncomfortable and you can’t expect people to behave normally in those situations.

                                                  You seem to be the exact type of person I’m talking about, all going on the aggressive thinking I’m your worst enemy, not giving me the benefit of the doubt. I personally find it really hard to express my thoughts (it’s not just a language barrier, sadly), and getting attacked like that makes me really demoralized and demotivated to even talk. When I am not allowed to talk my mind without people instantly getting so aggressive at me, how am I supposed to not fear doing it?

                                                  1. 15

                                                    I personally find it really hard to express my thoughts (it’s not just a language barrier, sadly), and getting attacked like that makes me really demoralized and demotivated to even talk. When I am not allowed to talk my mind without people instantly getting so aggressive at me, how am I supposed to not fear doing it?

                                                    Thanks for saying this.

                                                    1. 5

                                                      I’m sorry that I sounded aggressive, because I was not trying to. I’m still not angry, nor replying out of spite or hate. :) I’m not a native english speaker (either?), so it can be that. Oh, and I also never thought of you as my worst enemy.

                                                      I could probably hug your right now, seriously, although I’m a little unsure how to understand your analogy that interacting with women is like having a gun pointed at your head.

                                                      As far as I can tell, we agree that misogyny will not go away – try to destroy an idea… – but we kinda disagree about how we should deal with it. I am not in a position to lecture anyone on the topic, and deeply nested threads tend to go off-topic easily, so I’ll happily reply to your emails if you’d like to.

                                                      1. 2

                                                        Thank you for your kind words, I’m sorry I misinterpreted your reply then!

                                                        I hate to link to it but I think that what best describes my analogy is a scenario like what ESR described. With no proof (even though the source claimed there had been attempts already) either back then or now, that was ruled as “unlikely” at best, but the fact that it doesn’t sound completely ridiculous and could be actually be put to action by a malicious group worries me.

                                                        I honestly don’t think most women are like that at all, and as you said, this is going a bit off topic.

                                                        About “how to deal with it”, I’m not proposing a solution, I do wonder if being more straightforward with people and less “I’ll totally blogpost this unacceptable behavior” would make anything easier though.

                                                        For example, the author quotes Berry’s paragraph about not giving anything for granted, yet instantly assumes that assuming that females are less technical is a big drag for women in tech. What about a little understanding? With so many women in sales and PR positions, the guy might be just tired as hell of having to deal with marketers (although the CTO title should have spoken for itself.)

                                                        Not denying that some people are just sexist jerks, though.

                                                    2. 8

                                                      Both literal witch hunts and the more recent metaphorical sense were frequently directed at men. The notion that “witch” is female is an ahistorical modern one and simply not part of what the word means in the context of a “witch hunt”.

                                                      1. 0

                                                        …So? Are you reading that Internet comment in the 1700s when historical witch hunts were actually happening?

                                                        1. 3

                                                          The witches arrested during the Salem Witch Trials (in 1692-3, around 150 being arrested) and killed (24, 20 executed, 4 died in jail) weren’t all women. A cursory scan of the accused show plenty of male names (although it does seem to bias towards women).

                                                      2. [Comment removed by author]

                                                        1. 12

                                                          US Americans are usually not aware that witches were systematically persecuted and killed.

                                                          That’s not true. Basically everyone learns about the Salem Witch Trials either in high school or via movies and other pop culture references.

                                                          1. 10

                                                            “US American” here, 2 things you have wrong:

                                                            • Witches weren’t only women: http://www.strangehistory.net/2012/06/21/all-hail-the-male-witch/ (witch was the term for being accused of witchcraft, not a term for women accused of witchcraft which is at best a modern reinterpretation of history)
                                                            • And we most definitely do get told about the systematic persecution and killing of witches.

                                                            And one thing not often known by Americans of their own witchcraft shenanigans, of the 21 executed Salem witches, 8 were men. https://en.wikipedia.org/wiki/List_of_people_of_the_Salem_witch_trials#Convicted_and_executed

                                                            As to witches again being even predominately women, only in certain areas, in Iceland iirc it was as high as 92% of witches were men. If we’re going to get angry at the use of witch to refer to women, lets at least get facts straight about the historical context.

                                                            1. 8

                                                              Not to mention that the primary accusers in Salem were female. It certainly wasn’t just man against woman.

                                                              1. 1

                                                                I dated two. They were awesome. Too bad our family moved around a lot. One actually taught me a little about the religion: Wicca. It involved men and women who (my interpretation) were basically nature worshipers. They usually didn’t cause harm because they believed the good or evil they did “came back times three.” When being deliberate rather than spontaneous, they were moderate in actions due to their Law of Extremes saying taking anything to the extreme of left or right makes it identical. That’s incorrect in the general case but there was truth in it where extremists are usually a problem regardless of the topic.

                                                                So, they tended to be friendly, non-conformist people that didn’t cause trouble unless provoked where they would warn then fight if necessary. Much like the Satanists I met as their rules similarly require not harming people or animals except in self-defense. For animals, also allowed to kill for food. Only common denominator among them that might inspire the religious choices were they had a lot of outcasts and rebels. The witches I knew were usually intuitive, artistic types whereas the Satanists were often intellectual with mix of artists and non-artists. I don’t know if the artist mix is just my data sample but the intellectual part makes sense given the greatest sin for Satanists is ignorance. They’re expected to pursue knowledge and call bullshit.

                                                                By the data, I’d have not worried about witches or Satanists. The majority of religious persecutors and violent offenders are Christian. They also push faith in authority over reason. They’re the most dangerous in the U.S. if I had to go by religion. In reality, all this stuff varies area to area, family to family, and person to person. I accept all groups so long as they’re not causing harm. Live and let live.

                                                                1. 6

                                                                  While I’m admittedly not an expert, I suspect the witches of the early US have little to do with Wicca, which was first introduced to the public in 1954.

                                                                  1. 1

                                                                    Possibly true. In that case, my experiences with witches wouldnt apply to those. I also suspect there’s a lot of different belief systems and groups using the word witch. Its meaning probably varies by group.

                                                          2. -2

                                                            The post content here is a man relating his experience of seeing his cofounder get talked over and ignored because she is a woman, so you immediately comment about… how bothersome it is that a woman might one day accuse you of sexual assault?

                                                            What the actual fuck is wrong with you? You should be thoroughly ashamed of yourself. Delete your account.

                                                            1. 16

                                                              What the actual fuck is wrong with you? You should be thoroughly ashamed of yourself. Delete your account.

                                                              I generally avoid these topics like the plague, but this is the exact reason why. It’s absolutely appalling to me that anyone thinks this is a good response to any comment ever. If you are trying to persuade people or this person, then you have completely failed in backing up your comments with anything but insults. If you aren’t trying to persuade anyone, then you are just a troll who enjoys yelling at someone who is clearly (based on the other comments in this thread) is trying to genuinely learn. You took a teaching moment and made it a display of hatred.

                                                              1. -1

                                                                If you are trying to persuade people or this person, then you have completely failed in backing up your comments with anything but insults

                                                                This assertion is completely absurd. I’ve been this asshole, been told off and/or beaten up, and learned better. Violent complaint is precisely how signalling to people that their behavior is utterly abhorrent works in society.

                                                                1. 6

                                                                  How should I signal to you that your behavior here, in this thread, is utterly abhorrent? Should I threaten to beat you up? Tell you to delete your account? Scream aggressive obscenities at you?

                                                                  Whatever it is you think you need to hear to stop behaving this way, pretend that I said it.

                                                                  1. 3

                                                                    I’ve been this asshole, been told off and/or beaten up, and learned better.

                                                                    I’ll just say that I find this comment immensely more helpful than your previous comment. If you’d like to expound on how specifically you’ve “been this asshole” in the past, and what you’ve learned from the experience I’d wager that’s much more likely to convince Hamcha (and the rest of us) to change their mind and behavior.

                                                                2. 5

                                                                  I questioned the reason she was ignored and proposed a motivation for which people might fear dealing with women. I also questioned what would have happened if the guy would have put any effort in making the issue clear to the people he’s talking shit about other than vague clues before making accusations with circumstantial evidence.

                                                                  What is there to be ashamed of?

                                                                  1. 3

                                                                    Normal people can have conversions with members of the opposite or same gender without constantly panicking about rape allegations. Do you specifically avoid female waiters at restaurants or cashiers at supermarkets? Is this somehow different to taking to a woman in a nontechnical role? If not, why do you think it is reasonable to pretend a woman who codes is any different? Hell, how on earth can you pretend the possibility of rape allegations is a valid reason to pretend that a person does not exist while in a meeting with multiple participants?

                                                                    Your regurgitation of sexist crap is shameful. Your lack of thought about it is bewildering. Delete your account.

                                                                  2. 3

                                                                    Who taught you to shame people for their feelings and beliefs?

                                                                    1. 0

                                                                      Some beliefs are horrendously evil. Your freedom to believe harmful crap does not constitute immunity from being yelled at for spouting it in public.

                                                                1. 10

                                                                  I don’t understand at all why so much arguing happens over code of conduct pages on projects. Don’t be a fuckin dick to each other, nerds. How is that hard, and how is that hard to enforce?

                                                                  1. 33

                                                                    it happens because some folks know they are dicks and they stick up for other dicks. If you’re working on something alone you can be as much of a dick as you want, but if you’re working on a team it’s pretty fucking reasonable to have some ground rules that everyone agrees on.

                                                                    1. 10

                                                                      If you read any deployed CoC, they’re vastly more overbearing than “don’t be a dick”. If a CoC was literally those four words, I would support it wholeheartedly, but it never stops there.

                                                                      I also disagree that every social interactions needs explicit rules. I don’t really feel the impulse to codify social interaction. If someone is being a dick, I will respond according to the situation rather than preemptively trying to bring playground-style rules into the mix.

                                                                      1. 15

                                                                        People come from different backgrounds and cultures where one set of behaviours might be socially acceptable, so yes - sometimes, it needs to be spelt out.

                                                                        1. 14

                                                                          How does this work when the power dynamic is working against the person who is harassed? What if the harasser is a star contributor or friend?

                                                                          Hasn’t “don’t be a dick” been historically insufficient?

                                                                          1. 5

                                                                            Not sure how the code of conduct changes that. If the high council of conduct adjudication are the ones doing the harassing, what happens then?

                                                                            1. 20

                                                                              If the high council of conduct adjudication are the ones doing the harassing, what happens then?

                                                                              That is part of the reason why this situation is so contentious; that’s what’s happened here.

                                                                            2. 4

                                                                              Hasn’t “don’t be a dick” been historically insufficient?

                                                                              Yes if there’s good management or moderation that actually care about the work above the politics. If they value politics more, then it’s not sufficient since they’ll protect or reward the dicks if they politic correctly. The leadership’s priorities and character are almost always the most important factor. The rest of the benefits kind of spread as a network effect from that where good leadership and good community members form a bond where bad things or members get ejected as a side effect of just doing positive, good work or having such interactions. I’ve seen so many such teams.

                                                                              Interestingly enough for purposes of CoC’s and governance structures, I usually see that break down when they’re introduced. I’m talking governance structures mainly as I have more experience studying and dealing with them. The extra layers of people doing administrative tasks setting policies can create more trouble. Can, not necessarily do since they reduce trouble when done well. Just the indirection or extra interactions are a risk factor that causes problems in most big projects or companies. A good leader or cohesive team at top keeping things on track can often avoid the serious ones.

                                                                            3. 4

                                                                              If it wasn’t broadly worded, it’d be harder to aim at the people we don’t like.

                                                                              1. 18

                                                                                If it wasn’t broadly worded, it would be easier to abuse loopholes in order to keep being a dick within the letter of the CoC.

                                                                                The things are broadly worded for a reason, and it’s not “to enforce it arbitrarily”.

                                                                                1. 4

                                                                                  Is that more of a real or hypothetical concern? Any examples of a project that adopted a code of don’t be a dick, then a pernicious dick couldn’t be stopped, and the project leadership threw up their hands “there’s nothing to be done; we’re powerless to stop his loopholing.”?

                                                                                  1. 7

                                                                                    Boom, you said it. I’ve usually seen the opposite effect: people make broad rules specifically to attack or censor opponents by stretching the rules across grey areas. Usually, the people surviving in projects of multiple people due to “loopholes” are actually there for another reason. As in, they could be ejected if they were so unwanted but whoever is in power wants them there. Those unstated politics are the actual problem. In other cases, the rules were created for political reasons, often through internal or external pressure, rather than majority of active insiders wanting them there with enforcement pretty toothless maybe in spite. The OP and comments look like that might be the case if they voted 60% against getting rid of this person.

                                                                                    Also, I noticed the number of people and their passion on these “community enforcement” actions goes way up with most of them not being serious contributors to whatever they’re talking about. Many vocal parties being big on actions to control or censor communities but not regularly submit content or important contributions to them. I’m noting a general trend I’ve seen on top of my other claim rather than saying it’s specific to Node which I obviously don’t follow closely. Saying it just in case anyone more knowledgeable wants to see if it’s similar in terms of people doing tons of important work in this project cross-referenced against people wanting one or more key contributors to change behavior or disappear. If my hypothesis applies, there would be little overlap. The 60% number might give indicate unexpected results, though.

                                                                                    EDIT: For broad vs narrow, just remembered that patent trolls do the same thing. They make the patents broad as possible talking up how someone might loophole around their patent to steal their I.P.. Then, they use the patent to attack others who are actual contributors to innovation asking them to pay up or leave the market. Interesting similarity with how I’ve seen some CoC’s used.

                                                                                    1. 4

                                                                                      Yeah that’s what I don’t get. If someone was being a jerk on a project I was on I wouldn’t think twice about banning them once they’ve proven they’re a repeat offender.

                                                                                      1. [Comment removed by author]

                                                                                        1. 2

                                                                                          Do codes help or hinder such agreement? Those I’ve seen applied have largely been counterproductive, as their definition of dickery has not aligned adequately with the wider project community’s.

                                                                                      2. 2

                                                                                        node.js could serve as an example.

                                                                                        1. 5

                                                                                          Of the opposite? A code of don’t be a dick doesn’t work in theory because there’s no agreement. So node has this nice long list of banned behaviors and remedial procedures, but what good has that done them? Meanwhile it seems everyone agrees Rod was being a dick, so if the code were that simple it’d be a fine deal.

                                                                                          I mean, I don’t really know what’s going on since it’s all wrapped in privacy, but the more complicated the rules the more likely it is someone will play them against you. Better to keep it simple.

                                                                                          1. 10

                                                                                            Part of having a CoC is enforcing a CoC. Yeah, the CoC doesn’t mean much if it isn’t enforced, but that’s not an argument against codes of conduct. By anology: the fact that people break laws isn’t an argument against the rule of law.

                                                                                            1. 2

                                                                                              Right, but if a law didn’t bring any clarity to the community - if it wasn’t clear who was and wasn’t breaking it, or it wasn’t able to be enforced consistently, or it was applied consistently but still seemed to be capricious in who it punished and who it didn’t - then it would be a bad law. The criticism isn’t that this “Rod” broke the CoC, it’s that the CoC didn’t seem to help the community deal with his behaviour any better than it would have without the CoC, indeed possibly worse.

                                                                                              (my general view, particularly based on seeing them in the Scala world, is that CoCs as commonly applied are the worst of both worlds: they tend to be broad enough to have decent people second-guessing everything they say, but specific enough that less decent people can behave very unpleasantly without obviously violating the code)

                                                                                  2. 2

                                                                                    “don’t be a dick”. If a CoC was literally those four words, I would support it wholeheartedly, but it never stops there.

                                                                                    Sorry bro^Wsibling, it’s not diverse enough. It would have to say “Don’t be an asshole” to be gender-inclusive.

                                                                                    As for the CoCs working, I think it’s unreasonable to expect bad people to turn good because a file was committed into the git repository saying they should.

                                                                                    Maybe something like a Code of Misconduct is even more important than the CoC. The link is for IRL events, and quite obvious, but online the escape hatch is to gtfo.

                                                                                    1. 2

                                                                                      Interesting. Didn’t know he wrote on that topic. He made some interesting points but oversimplified things. I think Stephanie Zvan has some good counterpoints, too, that identified some of those oversimplifications with a lot of extra details to consider. Her focus on boundaries over democratic behavior or tolerance reminded me of a video someone showed me recently where Kevin Spacey’s character argued same thing with appeal to a more mainstream audience:

                                                                                      https://www.youtube.com/watch?v=sFu5qXMuaJU

                                                                                      She’s certainly right that a focus on boundaries with strong enforcement can create followers of such efforts and stability (conformance) within areas they control. Hard to say if that’s idea versus the alternative where other folks than those setting the boundaries also matter.

                                                                                      Edit: Read the comments. Lost the initial respect for Stephanie as it’s the same political dominance crap I argue against in these kinds of threads. The contrast between her style/claims and Pieters’ is strong and clear.

                                                                                2. 5

                                                                                  Don’t be a fuckin dick to each other, nerds.

                                                                                  Upvoted for this. Without actual decency, a CoC can only make the semblance of decency last for so long.

                                                                                  1. 4

                                                                                    People disagree vehemently about what it means to be a dick so that guideline is useless.

                                                                                  1. 1

                                                                                    I always had issues with it. From having to refresh every time I made a new file, to folders such as node_modules being included in the results unless I refreshed again (although this could be an issue with The Silver Searcher).

                                                                                    Switching from ag to ripgrep was one of the best decisions I made in 2016 as far as tooling is concerned. Not only it’s faster (tbh, the speed difference is negligible in most cases), but it also correctly parses .gitignore patterns.

                                                                                    I have tried for a long time to get it to work as well as it works on Sublime Text, but I was never able to get it even close to the performance and quality of the results of Sublime Text.

                                                                                    On my MBP 13” Mid 2014, with JazzCore/ctrlp-cmatcher and ripgrep, indexing the whole Linux repo takes less than a second and searching for a specific file isn’t significantly slower than searching for a file in a much smaller repo. That’s with caching turned off, because ripgrep is so fast in my daily use that I don’t need caching.

                                                                                    But still, I don’t know if it’s specifically ag’s fault, maybe we just use vastly different hardware.

                                                                                    1. 9

                                                                                      My shell does automatically show a notification, if a command ran longer than 10 seconds and the terminal does not have focus. No need to remember to add a command.

                                                                                      1. 2

                                                                                        What do you use for that?

                                                                                        1. 7

                                                                                          My self made fish config: https://github.com/qznc/dot/blob/master/config/fish/config.fish#L58

                                                                                          For bash and zsh, search for “undistract me: https://github.com/jml/undistract-me

                                                                                      1. 3

                                                                                        Well, I have a few friends right now who learn programming. I have been programming for roughly two decades now and yet (or because of that) it is very hard to give them simple advice that helps and that they appreciate.

                                                                                        At their current stage the code they write is mostly consumed by them. So it has to work for them and nobody else. Their programs have only 1000s of lines.

                                                                                        What paradigms would you suggest? They program mostly in JavaScript and VB (which I don’t know well).

                                                                                        I tried things like - avoiding global mutable state - composition over inheritance - do not provide indirect dependencies to constructors - get rid of exposing getters/setters for no reason - …

                                                                                        Of course, this is based on the code that I saw from them. It is very hard to concentrate on some key things without overwhelming them.

                                                                                        So even though SOLID might have faults, I really appreciate the idea to find a starting set of heuristics for design.

                                                                                        1. 2

                                                                                          When I was a Ruby newbie, I read Avdi Grimm’s “Confident Ruby”. It was built on SOLID and a few other practices. However, the book itself gives specific examples of a problem and how it can be solved.

                                                                                          Unfortunately, I don’t know about any such resources for JS or VB, but you could definitely look for something that represents abstract principles (like SOLID) on concrete examples. At least for me, it was way easier to learn things this way.

                                                                                        1. 28

                                                                                          This begins by complaining about a pointlessly vague principle, then immediately suggests that we just write simple code, leading me to expect a work of satire.

                                                                                          Unfortunately, it appears to be an attempt at a serious treatment of the topic.

                                                                                          These slides miss the point so comprehensively that I’m genuinely curious what the author believes they are correcting.

                                                                                          A few of the more egregious errors:

                                                                                          • Confusing dependency inversion with dependency injection.
                                                                                          • The idea that fits in my head is a good rubric for module size (unless all maintainers through time have uniformly sized heads)
                                                                                          1. 10

                                                                                            I get irate when the phrase “write simple code!” is used; you think we don’t try to do that already, that the majority of programmers are going around trying to write the messiest, most complex code bases they can? Simple code is hard to write, because it is extremely hard to find the true essence of a particular problem. I’m happy for the author if anytime he has to write a program he is able to correctly identify the core problems that have to be solved and which requirements can be folded into those core components, but I somehow doubt it. I don’t care too much for SOLID myself, but if we can’t find that simple solution, it’s not necessarily bad to have practices that can help us organize the complexity, and that this organization be documented and understood by many programmers.

                                                                                            (I also want to reinforce a point someone astutely made a few weeks ago: a piece of code is not “simple” because you came up with it. It may seem natural and straight-forward and easy to understand to you, but it probably looks like a gigantic mess to anyone else.)

                                                                                            1. 5

                                                                                              I get irate when the phrase “write simple code!” is used; you think we don’t try to do that already, that the majority of programmers are going around trying to write the messiest, most complex code bases they can? Simple code is hard to write, because it is extremely hard to find the true essence of a particular problem.

                                                                                              Your first statement doesn’t hold in most enterprise or FOSS development. They try to write whatever is most convenient for them under their constraints. Mostly cranking out code. Ridiculous, crufty, legacy codebases abound and grow in size daily. The number of basic defects also show there’s barely any review much less thoughtfulness needed to keep it truly simple. Fortunately, you noticed that as you were writing with that last line. An example of few aiming for simplicity would be the one or two Lobsters that claim to remove more code than they add on each job. Also, Niklaus Wirth who takes it to an extreme that’s still somewhat practical.

                                                                                              Author’s point on needing more simple code still stands. Unfortunately, it’s usually a social or economic issue driving all the code bloat instead of technical or scientific reasons. Author is probably preaching to the choir (developers) instead of those needing the message (managers/executives).

                                                                                              1. 5

                                                                                                It’s the famous “If I had more time I’d have written a shorter letter”. Your point and that of the OP are correct. Most of us are not sociopaths. We’re not trying to sabotage the rest of the team - but we have limited time, so our code is not as crisp as it could have been.

                                                                                                1. 2

                                                                                                  There’s a big difference between not trying to curb complexity and actively trying to introduce it. In the long run, time-evolving systems tend to follow paths that are “stable under small perturbations”, and social systems are no exception: people settle for workflows such that minimal changes result in no appreciable improvement, and radical changes are, well, too radical to even bother considering.

                                                                                                2. 4

                                                                                                  I don’t think “keep it simple” is referring to high level design, or even module level design, but on the statement and expression level.

                                                                                                  I’ve seen a lot of code where it’s obvious that the original author used whatever algorithm or “code structure” they first came up with and didn’t give it a second thought.

                                                                                                  I’ve seen even more code where developers maintaining it later on didn’t think about it either, and just followed whatever convention the original author had, even if there are better ways of doing it considering their additional changes.

                                                                                                  As a more concrete example, if there’s one special case while iterating over a container, it makes sense to have “if (thisItem == specialCase) { / Do something special /}”. If more items are special cased later on, then a big if-else statement probably isn’t the simplest or best solution any more.

                                                                                                  It adds up after a while, and even code that may have been simple in the first place can be an ugly mess if people don’t pay attention.

                                                                                                  1. 1

                                                                                                    I agree. It’s my pet peeve, whenever I hear someone ranting on about Bad Code, or Complex Code, or Good Code……

                                                                                                    ..I try get them to be concrete about what they actually mean by saying “Write Simple Code”… after much huffing and puffing through strawman examples and casuistry what eventually emerges is something that looks remarkable like SOLID.

                                                                                                    ie. SOLID are principles which can guide you towards writing simpler code.

                                                                                                  2. 4

                                                                                                    I was struggling with understanding SOLID, but once I finally got it (which really was by trial and error), it made the code written by me more robust and easier to change to fit the new requirements.

                                                                                                    What the author IMO tried to do was to reduce SOLID to a more understandable terms, but their PoV works only if you somewhat grok SOLID. I feel it wouldn’t help me write better code if I was a newbie, because as you said, it’s even more vague.