1. 4

    Reminds me of a blog post I made years ago about the ancient and obscure “dsw” Unix command: https://web.archive.org/web/20111104141518/http://dvlabs.tippingpoint.com/blog/2008/03/18/a-bit-of-history

    1. 5

      Very interesting post. But:

      The legendary Seymour Cray was famed for being able to switch in a bootloader from memory.

      Back in those days, all ops could do that. Admittedly, doing it on a CDC6600 like Seymour was using was a bit more involved, but I certainly could do it on a PDP-11 30 years ago (no…I don’t remember now). I have many acquaintances that still do it regularly on a PDP-8, PDP-11, IBM or DG today.

      Now the folks who could front-panel the test routines from memory…that was impressive.

    1. 3

      I went to a state technical school as a young man, majoring in CS, and dropped out two years in due to the tech boom of the early 2000’s when I was offered a job making more money than anyone in my family had ever seen.

      Years later, I decided to go back and finish my degree. A buddy of mine ended up going to WGU and recommended it for busy professionals, and that’s where I ended up.


      • Nonprofit
      • Accredited
      • Competency-based, meaning you can test out of any class whenever you feel you’re ready (or, for some classes, submit a project)
      • Inexpensive (around $3000 per six-month-term, for however many courses you can pack into those six months)


      • The selection of majors is somewhat restricted
      • There’s not a lot of contact with faculty; you definitely need to be self-motivated (there are chats and cohorts and course mentors you can talk to and such, but it’s up to you to reach out to them)
      • The quality of the materials ranges from poor to okay
      • I feel like it didn’t really each me all that much

      So that last point deserves some elaboration: the courses seem very simple. Now, that was looking at them through the lens of decades of practical experience and (arguably obsessive) self-teaching. If I think back to when I was 18-22, they might not have seemed so simple then.

      Also, that second-to-last point should be talked about a bit. The primary learning resources are all fine; they’re the same textbooks and such that you’d get at any university. The lectures are often just video series from one or another professional education organization (that is, not a university/professor, but a professional). There are occasional videos from professors at the university, but (like anything) they vary widely in quality.

      There’s a heavy focus on practice and less on theory: as part of your degree you get various certifications; the certification is, in effect, your “final exam” for the course.

      The fact that most (but not all) classes have a “final exam” that you can take at any time and be done with is a double-edged sword. I remember the “introduction to programming” class that I was required to take didn’t actually require that you write any code: it was just a final exam where you read some Python code and said what it would do or find errors in it, etc. (There are other courses where you do have to submit relatively large programs as your final project; these were all in Java IIRC.)

      All-in-all, I’m not super-duper-satisfied. I didn’t need a degree for my career; it was almost entirely just to check a box. If you just “need a degree” for whatever reason, and you’ve got a busy life, WGU is a good bet. It’s cheap, it’s fast, it’s accredited, and it’s non-profit. In terms of return on investment, well…it’s cheap and it’s accredited so it’s great bang-for-buck. In terms of education, it’s…well, I didn’t learn anything.

      (I’m in the process of deciding if I want to go get a second bachelor’s from a more prestigious school, treating the WGU bachelor’s as essentially just “getting the last of my pre-reqs out of the way,” but it’s a lot of time and effort.)

      1. 1

        Thank you, that was most helpful! I believe we’re in a similar position: I don’t require a degree for my career, but I would love to have some sort of academic credentials since they do give you some options that would be very hard to get otherwise (academia, many research positions, the warm and fuzzy feeling of completion etc.).

        Unfortunately, WGU doesn’t seem to admit people who don’t live in the US or Canada. Intuitively, I’m aware that the lack of contact means a lot of the success depends on the amount of work of the student, and that motivation is the key. Regarding the variation in quality, I’ve found that to be the case with my brick-and-mortar university as well; certain teachers are simply bad and certain classes are simply not well thought out, and I guess that just becomes much more visible with distance learning.

        I appreciate you sharing your experience!

      1. 28

        It’s what I’d do even if I weren’t getting paid. It’s my primary hobby, my profession, and what I’ve wanted to do since I can remember.

        1. 6

          This is exactly my feeling. I love solving problems using software I write, I love knowing people are using what I make, and I love reducing the amount of boring and error-prone repetition in my life using my own software.

          I think people who don’t enjoy coding belong in the industry just as much as anyone else. At that level, it’s a job, and we don’t expect people in any other field to love it, necessarily. But it’s a very odd, specialized job which is definitely not for everyone, and anyone smart enough to be a programmer is probably smart enough to make a living in some other field which doesn’t involve the obscure pains programming can expose you to.

          1. 4

            That’s awesome that your hobby and profession aligns 🙂

            Do you have any advice for people who currently don’t enjoy doing what they do for a profession and how to get there?

            1. 11

              Well, I guess my first advice would be to ask, what do you love? There’s absolutely nothing wrong with coding to pay the bills and doing what you love with your free time. My other hobby is Western religious history, which definitely is not a moneymaking industry. :)

              I’d also say, coding is a huge field, like “talking”. There are a million languages, a million techniques. You might find that you like the theoretical side more (math, complexity theory, category theory, etc). You might find out that you really like writing parsers. Maybe you hate Java but you end up loving Erlang. There’s a lot out there.

              But, again, there’s nothing wrong with just having a day job. Life is meant to be enjoyed so don’t worry about what you “should” like, do what you do like however you can.

              1. 1

                I like to ice skate and tinker, mostly with keyboards and other input devices, but the skies the limit really.

                Unfortunately neither pay well so here I am 🙂

                1. 5

                  Has it always been the case or in the beginning you used to enjoy programming?

                  If you used to like it, but not anymore, it’s worth trying to investigate why. This is something that has also happened to me, and it took me a while to finally find an answer. At first, I thought this was a matter of abstract vs concrete activities and I tried to find concrete activities that I could find interesting. Though I did start cooking (and discovered I enjoy it), this still wasn’t the real issue. You said you like ice skating and tinkering, so maybe this is a good place to start thinking about it.

                  Later, I realized that what I really miss from the early days is having everything under control: relatively small code bases that I understand well, none or just a few third party libraries, etc. In contrast, most professional projects I have taken are the complete opposite: large code bases that no one really understands with lots of external libraries. I still don’t know what exactly I can do about this, but just from knowing where my discomfort comes from, I already feel a bit better about programming overall.

                  This has been my quest so far to try to start enjoying coding as much as used to. You’ll probably find other topics that I haven’t mentioned, but that are important to you. This is an introspective exercise I think you should do if you also wish to get back to programming with a refreshed feeling.

                  1. 4

                    I used to like it. I had a really good job at the start of my career with an amazing mentor. However, since that job, I haven’t liked it much.

                    I’ll try to reflect on exactly why, but I have a suspicion that it’s when I realized that agile and startups are irrevocably intertwined with coding. Both I can’t stand.

                    This is an introspective exercise I think you should do if you also wish to get back to programming with a refreshed feeling.

                    That sounds amazing. Hopefully, I can get there. 🙂

              2. 4

                Not the parent commenter, but how about looking into other programming paradigms? e.g. if you only do OOP right now, try looking into functional programming, there’s a lot of interesting and beautiful stuff there that might appeal to you.

                Or perhaps have a look at formal methods, either “lightweight” ones like TLA, or the more heavy weight ones like Coq and Lean. I’ve found writing specifications above the level of abstraction that most programming languages provide and model checking them or writing proofs for them quite an interesting/enlightening experience for me and it’s one of my favourite things to do.

                Lastly, I think generally identifying pain points in your workflows and writing little programs to automate them and scratch your itch could be another way to find joy in programming. For me that’s writing little Haskell scripts or elisp (Emacs Lisp) tidbits here and there.

                1. 2

                  Thanks for the reply! I know this is a “me problem” but when I have to learn new technologies I find it very frustrating. Recently I’ve been on a Scala project and FP hasn’t done anything for me.

                  It wasn’t always that way though, I used to get excited about new technologies but after a while it just notice it for the revolving door it is.

                  1. 2

                    […] but when I have to learn new technologies I find it very frustrating.

                    I can relate to that :)

                    Recently I’ve been on a Scala project and FP hasn’t done anything for me.

                    Interesting. I’d say in that specific case, the language and the machinery it offers probably influence that as well. Like, for instance I’d take writing Haskell over Scala any day. But oh well, that’s me.

                    It wasn’t always that way though, I used to get excited about new technologies but after a while it just notice it for the revolving door it is.

                    Right. Same here actually. I don’t go looking for shiny new things to use just because they’re shiny and new. But I would still gladly consider things that could help improve the quality and correctness of programs that I write, and see if they’d be worth the investment of time for learning/integrating them into my workflow. And that bar has certainly increased over the last couple years.

            1. 33

              I remember a conversation at work that went something like this:

              Coworker: “Did you see the latest Firefox download? It’s like 40MB.”

              Young coworker: “That’s the size of a small operating system!”

              Me: “That’s the size of a large operating system. I’m old.”

              (Yes, I did a “young whippersnapper” comment. Yes, I’m old.)

              1. 8

                One example I gave in a conversation about application-specific, VM OS’s was Solo weighing in at 39K words of memory (see p 11). A cloud VM would need a few more things that would push up the KB’s. The core can be really small. That one also had some sequential and concurrency safety through the Pascal’s he used.

                For desktop and/or GUI, the QNX Demo Disc is still the coolest if aiming for many requirements at once.

              1. 36

                Then again, I’ve rarely seen anyone use their editor of choice well. I’ve lost count of how many times I’ve watched someone open a file in vim, realise it’s not the one they want, close vim, open another file, close it again… aaarrrgh.

                I do this a lot, because I prefer browsing files in the shell. I make pretty extensive use of a lot of other vim features though. When did you become the arbiter of how “well” I’m using my computer?

                1. 3

                  Closing vim seems odd to me. Why wouldn’t one instead open the new file without closing vim? Maybe it’s a cultural thing? I don’t think anyone would do that in Emacs.

                  1. 26

                    “Why would I ever leave my editor” definitely feels like a common refrain from the Emacs crowd.

                    1. 1

                      I do the thing you quoted as well, but that is because vim is often my editor of convenience on a machine rather than my editor of choice, which is true for many usages I see of vim.

                    2. 21

                      Because the shell lets me change directories, list files with globs, run find, has better tab-completion (bash, anyway), etc, etc. I might not remember the exact name of the file, etc. Finding files in the shell is something I do all day, so I’m fast at it. Best tool for the job and all that.

                      (Yes I can do all that with ! in vi/vim/whatever, but there’s a cognitive burden since that’s not how I “normally” run those commands. Rather than do it, mess it up because I forgot ! in front or whatever, do it again, etc, I can just do it how I know it’ll work the first time.)

                      1. 6

                        This is exactly why I struggle with editors like Emacs. My workflow is definitely oriented around the shell. The editor is just another tool among many. I want to use it just like I use all my other tools. I can’t get on with the Emacs workflow, where the editor is some special place that stays open. I open and close my editor many, many times every day. To my mind, keeping your editor open is the strange thing!

                        1. 3

                          It’s rather simple actually: the relationship between the editor and the shell is turned on it’s head – from within the editor you open a shell (eg. eshell, ansi-term, shell, …) and use it for as long as you need it, just like a one would use vi from a shell. Ninja-slices.

                          You can compare this as someone who claims to log out of their x session every time they close a terminal or a shell in a multiplexer. Would seem wierd too.

                          1. 3

                            I know you can launch a shell from within your editor. I just never really understood why you would want to do that.

                            Obviously some people do like to do that. My point is just that different ways of using a computer make intuitive sense to different people. I don’t think you can justify calling one way wrong just because it seems odd to you.

                            1. 6

                              I know you can launch a shell from within your editor. I just never really understood why you would want to do that.

                              I do it because it allows me to use my editor’s features to:

                              a) edit commands b) manipulate the output of commands in another buffer (and/or use shell pipelines to prep the output buffer) c) not have to context switch to a different window, shutdown the editor, suspend the editor, or otherwise change how I interact with the currently focused window.

                              1. 1

                                That makes a lot of sense. I guess I have been misleading in using the word “shell” when I should really have said “terminal emulator”. I often fire off shell commands from within my editor, for just the same reasons as you, but I don’t run an interactive shell. I like M-! but I don’t like eshell, does that make sense?

                                Having pondered this all a bit more, I think it comes down to what you consider to be a place. I’m pretty certain I read about places versus tools here on lobsters but I can’t find it now. These are probably tendencies rather than absolutes, but I think there are at least a couple of different ways of thinking about interaction with a computer. Some people think of applications as places: you start up a number of applications, they persist for the length of your computing session, and you switch between them for different tasks (maybe a text editor, a web browser and an e-mail client, or something). Alternatively, applications are just tools that you pick up and drop as you need them. For me, a terminal, i.e. an interactive shell session, is a place. It is the only long-lived application on my desktop, everything else is ephemeral: I start it to accomplish some task then immediately kill it.

                          2. 3

                            It’s really simple in emacs. Just Ctrl-z and run fg when you are ready to go back.

                      1. 6

                        @hwayne I gotta say, you always post excellent stuff. Bravo.

                        1. 3

                          Thank you!

                        1. 12

                          Commodore was spectacular in how well it could snatch defeat from the jaws of victory. The Amiga was the most amazing machine the world had yet seen in 1985, they had possibly the best team of hardware and software engineers in the world, but management just…couldn’t leave it well enough alone.

                          Bizarre decisions like:

                          • The Amiga (later retroactively named the Amiga 1000) had a sidecar expansion port. The Amiga 500 had the same port, but upside down…so that all of the existing peripherals had to be upside down to work. Given how they were designed, it meant that none of them would.
                          • The Amiga 2000 was the first machine that could use the Video Toaster, and the Video Toaster was the killer app for the Amiga. Then they made the Amiga 3000, which could also use the Video Toaster, except that the case was a quarter-inch too short for the Toaster card.
                          • The Amiga 600 had a PCMCIA slot. Except that they rushed to manufacturing using a draft of the PCMCIA spec, rather than waiting for the final specification. The end result was that regular PCMCIA cards often wouldn’t work on the Amiga.
                          • Amiga Unix on the Amiga 3000UX was considered one of the highest-quality SVR4 ports ever. Sun offered to produce the Amiga 3000UX for Commodore as a Sun-branded Unix workstation that could run Amiga software…and Commodore declined.

                          We’d all be using Amigas now if Commodore’s management had literally been anything other than hilariously incompetent, I swear.

                          1. 4

                            Jimmy Maher’s book about the Amiga explores a number of these bizarre decisions and reaches a similar conclusion. The title says it all: The Future Was Here! http://amiga.filfre.net/

                            1. 2

                              Agree with everything except conclusion as even less incompetent companies failed including Sun. Only Apple survived and even they became are now basically producing PCs with their distro.

                              However we might have been living in a different future if Amiga had an opportunity for a bigger impact. Mine certainly is as I went to study mathematics instead of CS because I could not imagine developing software for PCs in DOS era.

                              1. 1

                                Are you certain that the first 2 issues (upside-down sidecar port & case too short for toaster card) were the fault of management & not engineering?

                              1. 8

                                Susan Kare also did the early Windows icons, all the way up through at least Windows 3.1.

                                Try as I might, I have not been able to find a good Freedesktop-compliant icon theme that looks like her work. I would love to have something like that. I’d even be willing to commission one for some small amount of money…we should get a kickstarter going or something.

                                (My artistic ability is 100% nonexistent, so it’s not something I could simply do myself.)

                                1. 6

                                  I worked on a really fun project where I ended up writing a compiler that, for lack of a better term, added materialized views to SQLite by taking an input language and spitting out a collection of tables and triggers. Inserts into primary tables triggered inserts into interior tables, which had triggers that inserted rows into additional interior tables, and so on, until the final materialized view was updated. The interior tables stored/cached partial join results to avoid recalculating them each time.

                                  It was used for building efficient and dependable embedded event correlation engines. It used a variation of the Rete algorithm implemented as a SQLite trigger program generated from the input language. It had neat things like justification (“why was this fact asserted? Because X, Y, Z. Why was Z asserted? Because A, B, C…”) and automatic consistency (removing any support for an event/fact would cause it to lose support and be withdrawn), and some fun stuff with recursive rules and action-selection mechanisms (“this rule says to withdraw fact A if I see B, but this rule says to assert A if I see C…what do I do if I see B and C?”)

                                  It was part of a DARPA project

                                  1. 2

                                    This is so cool. Where was this in 2006, when I was struggling with the explosion in complexity of the iTunes video pipeline?

                                  1. 18

                                    My best pieces of advice, as someone who’s worked from home for ten years or so now:

                                    1. Anywhere from one to three times a month, I meet up with another friend of mine who also works from home at a bar/cafe/restaurant and we set up shop and work while we hang out. I’ll admit that sometimes there’s more hanging out than working, but considering it’s all pent up I don’t feel too bad about it. This is doubly important if you have small kids or some other reason why your social life outside of work might be curtailed.

                                    2. It sounds silly, but: if your office is on a different floor of your house, only use the bathroom of the floor you’re not on (even when you’re not working). This gets you up and down the stairs multiple times a day and gets back some of the exercise you lost from working from home.

                                    3. Take a walk every morning. A good one. You don’t have to worry about a commute so you won’t be late to work. Walk around the neighborhood, listen to the birds sing, etc. It doesn’t have to be a long one, just fifteen minutes or so (though my usual route is around 30 minutes).

                                    4. Most importantly, spend time with your family. If you’re like me (and I know I am!), you’re often eager to get to work and, because work is so accessible, you can make excuses to get to work as quickly as possible. Don’t let that mean less time with your kids or your husband/wife/partner. (Right now I’d normally be downstairs playing but I’m waiting for an email from a customer that will affect what time I officially start working, alas…)

                                    1. 1

                                      Yep, walking is something I just realized I should’ve mentioned but forgot.

                                      Either go for walks, or like in my case, get a dog. Mine forces me to go out at least three times a day. :)

                                      1. 6

                                        TIL I have a lazy-ass dog.

                                        1. 3

                                          I think it depends on the dog and how used to being outside he/she is. One of our rescue dogs was fine going outside but it wasn’t until 6 months later that he got REALLY into it and tries to get me to grab the leash sometimes. He’s 7 or 8 years old and has CDRM so it’s not like he’s super healthy.

                                    1. 13

                                      The first requirement of any commercial software system is to attract paying customers

                                      I was on the network engineering team (and the nascent information security team, and was the entirety of the reliability team) at Whole Foods Market 20 years ago. Any time I wanted to do something neat or cool, I was first asked “will it help us sell groceries?”

                                      It irked me then, as a young man passionate about cool technology but as I’ve gotten older it’s made more and more sense to me. WFM wasn’t a tech company (it is now, hah!) and IT existed solely to facilitate its primary business goal. Often I feel like we forget that.

                                      1. 1

                                        WFM wasn’t a tech company (it is now, hah!)

                                        It’s shift from what you describe to an Amazon subsidiary is probably one of the biggest tech 180’s that will happen in the market. I mean, at least until a brick-and-mortar store selling abacus’s, pencil, and paper without a cash register releases a 7nm CPU after a reorganization phase.

                                        1. 2

                                          I’m not sure most are quite that dramatic, but companies that used to fit into the ‘boring, sensible business’ image wanting to reinvement themselves as tech-centric seems to be a bit of a trend. In some cases it might be more PR than a real 180 in how the business is run, but it’s still something management wants to push. For example, boring ol’ Spanish bank BBVA now puts out streams of press releases about how they’re hip to open source and machine learning, publishing miscellaneous stuff like that on GitHub. Oil companies seem to also be trying to reinvent their image in that direction, although it’s less of a stretch because oil/gas exploration has been heavily driven by data / statistics / computational modeling for decades anyway, it just wasn’t seen as tech culturally.

                                          1. 1

                                            “although it’s less of a stretch because oil/gas exploration has been heavily driven by data / statistics / computational modeling for decades anyway”

                                            I was about to point out that every cool NUMA machine I looked at back in the day (esp SGI or Sun) mentioned oil industry as big sector. I was envious of the oil labs. :)

                                      1. 4

                                        For you OS/{400,I} folks out there, what’s the landscape look like for actual applications that aren’t just POSIX-y? OS/400 had a very different way of doing things, but it seems as though (kinda like VMS before it), it’s becoming a Unix runtime with some mysterious stuff underneath.

                                        (Yes VMS was still “VMS”, but it got to the point where everything was external commands and not DCL and ported POSIX apps and only a few true VMS applications.)

                                        1. 5

                                          The author mentions that ASCII-friendly APL successors (see J) “are all ugly far beyond the possibility of public success.” While I don’t necessarily agree, I feel like ligature fonts would be a perfect fit for a language like J. It could be used to map verbs onto their APL equivalents, and just make things look a bit more cohesive.

                                          1. 7

                                            J is beautiful and, in terms of semantics, is even more elegant than APL. The notation is its primary drawback, to me, for two reasons: there is no longer a one-to-one mapping of action to symbol (because some symbols are digraphs or semi-trigraphs); and because the symbols used already have well-known meanings, causing cognitive burden when switching between the J and the everywhere-else meaning.


                                            This is the Game of Life in APL

                                            I love APL but I swear if all you read is pop-CS articles about APL you’d think it’s Life: The Language

                                            1. 3

                                              Would you have some recommendation of array language snippets that are more representative of the things people end up writing?

                                              As someone extremely tired of seeing fibonacci examples for functional languages, I’m very interested in knowing what real APL looks like

                                              1. 2

                                                The Co-dfns compiler (https://github.com/Co-dfns/Co-dfns) is an APL-to-C++ compiler written in APL.

                                                GNU APL has a pretty nice community page at https://www.gnu.org/software/apl/Community.html where they list some APL projects (some written in APL and others in other languages).

                                                J has an extensive standard library and a complete relational database written in J, all at https://jsoftware.com

                                                Array languages get the most use today in finance, I believe. The K language from Kx Systems (and the Q query language strongly related to it) are widely used there and have a free-as-in-beer version available with some documentation.

                                                (I don’t remember who said it, but the statement “every time you buy stock you’re using K” is probably a reasonably true statement.)

                                            1. 18

                                              I’m very, very pro-diversity in all walks of life (see my past comments for example) but there are a few problems here:

                                              We acknowledge the value of non-technical contributors as equal to the value of technical contributors.

                                              That’s not always true and it’s silly to think so. If my goal is to write a kernel device driver, having high-quality documentation or something is irrelevant if the codes doesn’t work.

                                              Now, if you’re writing user-level software, the UI design work, documentation, and so on is critical. It doesn’t matter if the code works if no one knows how to use it or if it’s so clunky they choose something else.

                                              We can add the most value as professionals by drawing on the diversity of our identities, backgrounds, experiences, and perspectives. Homogeneity is an antipattern.

                                              Again, yes and no. For application software it’s critical you have diversity in development because you want to reach as broad a user base as possible (and you should get actually disabled people to use and help develop your accessibility mechanisms, dammit!)

                                              But for low-level bit manipulation or parsing or whatever…there are only so many ways to skin a cat and technical skill is more important than anything else.

                                              We are devoted to practicing compassion and not contempt. We refuse to belittle other people because of their choices of tools, techniques, or languages.

                                              I’ll be dead in the cold, cold ground before I use Emacs!

                                              The rest of it I agree with, especially this:

                                              The negative impact of toxic people in the workplace or the larger community is not offset by their technical contributions.

                                              Absolutely. If you’re such a jerk that you drive ten people away…well, chances are no matter how good you are, you’re not as good as those ten people put together. Good projects have lost good people because of asshole behavior.

                                              And, finally, we gotta remember: projects are free to adopt whatever policies they like. If you think this sort of thing is like Hitler and Stalin combined, great! The beauty of software is you can go write your own thing.

                                              1. 5

                                                Personally I dislike the notion of this skill is more important than that skill.

                                                Skills are different they do different things.

                                                “Value” assumes you can comparing something comparable.

                                                Skillsets are so broad and categorically different, trying to place them in value order is like comparing apples and orangutans.

                                                That said, it is the nature of many humans to more highly value the skills they personally have. It makes them a happier to think that way.

                                                1. 8

                                                  Absoultely, but certain skills are more valuable than others in certain domains, by which they become comparible. Fluency in French is absolutely essential if you’re translating french literature, and basically irrelevant if you’re an accountant in an English-speaking country.

                                                  The problem with the manifesto is that it takes an incredibly broad category of endeavor and implies that all skills within it are equally valuable in all situations, which is false. Bedside manner is critical if you’re a general practitioner and largely irrelevant if you’re a research doctor

                                                  1. 1

                                                    Fluency in French is absolutely essential if you’re translating french literature, and basically irrelevant if you’re an accountant in an English-speaking country.

                                                    To go further, not all languages are equal and some are more valuable than others. English is the most widely spoken language in the world, Spanish, French, Mandarin, Hindi are all high-value languages to acquire. Individual minority language skills are arguably less valuable overall because they’re less widely spoken.

                                                    If it’s reasonable to argue that some skills are inherently more valuable than others in different fields, I don’t see why software should be different.

                                                    1. 1

                                                      Individual minority language skills are arguably less valuable overall because they’re less widely spoken.

                                                      Well, except that the languages you speak forge the way you think.

                                                      I studied a couple of different languages (to various degrees): Italian is my mother tongue but I speak English and I used to speak Portoguese, a bit of Russian and a bit of Swahili (plus a couple of local Italian dialects that I understand but I cant speak).

                                                      Each time I learned a new language I discovered different ways of looking at things that I couldn’t conceive before. And this effect survive even after I completely forget the language, as it is for Russian and Swahili that I haven’t spoken in the last 15 years.

                                                      So basically the value of learning a language for a programmer might not be that low. At least if your work require some creativity, the more varied is your culture the more varied is what you can invent.

                                                      I agree that a culture of NIH does not require free thinkers, though.

                                                2. 4

                                                  Well said! I agree with all of that.

                                                  1. 1

                                                    I agree with everything you’ve mentioned however I would like to put forward two points you’ve made from a different angle. The wording of this manifesto is vague and you assumed that it emphasized on some aspects that maybe it didn’t, or maybe it did (It probably did but I’m just adding to the discussion for fun).

                                                    For instance:

                                                    We acknowledge the value of non-technical contributors as equal to the value of technical contributors.

                                                    What do we mean by contributions? Could it just be listening to a non-technical person’s ideas or is it limited to writing documentation, graphic design, translation, and other kinds of similar work? Nevertheless I still don’t see how anything in those could be looked at as equal, could be the ideas of technical people are more important in some cases or the ideas of non-tech in other cases. Maybe the word “equal” was meant as “don’t ignore them completely”.

                                                    We can add the most value as professionals by drawing on the diversity of our identities, backgrounds, experiences, and perspectives. Homogeneity is an antipattern.

                                                    If you understand this point as a “we have to cater to all needs” then I’m all in with your reply, it depends on what kind of work needs to be tackled. But if it’s about bringing diversity and creativity into thinking about problems and solutions then it’s another topic. It switched to “avoid doing the same things over and over again in the same way, invite people from different places maybe this will bring innovations in ways we couldn’t predict”.

                                                    We are devoted to practicing compassion and not contempt. We refuse to belittle other people because of their choices of tools, techniques, or languages.

                                                    I’ll be dead in the cold, cold ground before I use Emacs!

                                                    No clue how compassion and contempt got injected here… Unless language is meant as natural language (not programming language), and techniques as methods of learning and working. (But that’s probably not what is meant)

                                                  1. 5

                                                    I turned 10 in 1990. I wanted a home robot so badly. I got a book on interlibrary loan that was a survey of the personal robots available at the time; this would’ve been in the late 80s or early 90s. I would just sit and dream about what it would be like.

                                                    What do 9 year olds dream about as the future of personal technology these days? VR?

                                                    1. 4

                                                      I’m nearly ten years younger than you, & grew up on those same library books from the mid-80s about personal robots. (They all seem to have disappeared from my local library, within the past 15 years!)

                                                      I’m not sure if anything is actually progressing, these days, in a way that captures the imagination of kids. Maybe neural nets? But, on the other hand, it’s easy to be fooled by the illusion of progress if you don’t have enough knowledge of the history of the subject. When I was a wee lad, I thought even TOPO was cool and technically advanced!

                                                    1. 8

                                                      Good. If you’re a vocal asshole outside of the project, I don’t trust you to be able to magically turn it off and hide your prejudices inside the project either.

                                                      And people act like this is some bizarre new thing. If I engaged in harassment or inappropriate behavior on Saturday, so much so that people knew about it…I’d likely be fired from my day job too. Nobody wants that kind of association with their project/business. Plenty of employment contracts and employee handbooks have “good conduct” clauses, and have for decades.

                                                      Those of you concerned about this, serious question: what is an example of some behavior that you honestly think would be problematic under this new policy?

                                                      1. 17

                                                        Those of you concerned about this, serious question: what is an example of some behavior that you honestly think would be problematic under this new policy?

                                                        Mainly people digging Twitter to oust someone. One case immediately comes to mind, Rod Vagg and Node.js:

                                                        Most recently Rod tweeted in support of an inflammatory anti-Code-of-Conduct article. As a perceived leader in the project, it can be difficult for outsiders to separate Rod’s opinions from that of the project.

                                                        The article mentioned is The Neurodiversity Case for Free Speech, which I agree with. I really don’t want to be excluded from Go project by tweeting this reasonable article I agree with. This actually happened, and I fear it will happen after this revision of Go CoC.

                                                        1. 6

                                                          I don’t know enough about his situation to judge, but a quick reading shows that there were sufficient complaints from contributors and other Steering Committee members to bring his resignation to a vote, and 40% of the vote was for him to resign. Generally speaking I’m opposed to the concept of “where there’s smoke there’s fire” but if a lot of people are saying they don’t want to work with you…maybe the problem is you and not them.

                                                          (And they have in that article lists of explicit violations of the project’s policies, like discussing private moderation publicly, etc. That he wasn’t allowed a forum to answer to these charges is a flaw in the process to be sure, but he doesn’t deny they happened.)

                                                          And the problem, from what I gather, wasn’t that he tweeted about an article, but that he tweeted screenshots of rude responses about it. He’s a leader of the project, and as such needs to think about his position.

                                                          If thw CEO of Pepsi tweeted something on his “private” Twitter that the Pepsi Corporation felt brought them into disrepute…you don’t think PepsiCo would do something? Because they absolutely would. Like it or not, he was in a leadership position and discussed things relevant to the project’s governance in a (supposedly) flippant way.

                                                          …but like I said above, I’m not familiar with this issue, and am just providing my opinion based on the linked article (and the things it linked to).

                                                          EDIT: And I went back and read “The Neurodiversity Case for Free Speech”, which in my opinion is framing the argument very poorly. They seem to imply that there are people with atypical neurologies who are incapable of refraining from sexist, homophobic, and anti-Islamic speech. It’s basically saying “I can be an asshole and if it makes you uncomfortable…I have a condition!” It’s removing all agency from atypical neurologies or implying that prejudice and bigotry is an inherent part of atypical neurologirs, neither of which is true.

                                                          It also echos the old Kuro5hin “we’re just smarter than you and if you can’t handle it, too bad” argument, which was tiresome then too.

                                                          It goes on to say that Isaac Newton would run afoul of these sorts of things today. Well, sure. He owned shares in a slavetrading enterprise. He’s not gonna be in trouble for thinking he can transmute lead into gold, he’s going to get in trouble for talking about owning other humans. It’s a sttawman.

                                                          There’s a difference between the kind of behavior exhibited by, say persons with Aspberger’s Syndrome and people who are just assholes. If someone with Aspberger’s truly believes he should tell women he wants to touch their boobs and “just can’t help it”…that’s unfortunate, but it’s not appropriate behavior regardless. Nobody’s banning an Aspie because they forgot to say “please” or said that some piece of code is “garbage”. Aspies can be not-homophobes too, just like neurotypical people.

                                                          The article is seeming to say that people shouldn’t be held to any expected form of social behavior when working on a social project. It also falls into the “you have to know 100% every time without asking if someone else would be offended by what you say” which is logically falicious and not in line with what these Codes of Conduct actually say.

                                                          In other words, this “reasonable” article seems, to me, to be attempting to throw around some absurd examples and mischaracterized strawmen, and then claim that anyone should be free to act however they please socially with no repercussions.

                                                          That’s not how it works, or has ever worked, in any field of human endeavor.

                                                          1. 19

                                                            No one should be obliged to refrain from anti-Islamic speech in order to participate in an open-source software project, especially if they do so outside of the confines of the project (I’ll grant that it’s reasonable for a project to make any discussion of religion off-topic within the confines of the project). When I said that these changes to the code of conduct were a way of controlling participants’ political speech, this is exactly the sort of thing I was talking about. Islam is a system of religious thought like any other and deserves no special protection from criticism, other than that which is granted equally to all religions in a religiously-pluralistic society. If the Go project can define anti-Islamic speech outside of the project as a banning offense, then they are acting as enforcers of a specific political ideology that privileges Islam as a sacred idea. This has no place in an open-source software project.

                                                            1. 4

                                                              Well said.

                                                              I am more concerned about how, say, virulent your speech is. If you’re so anti-Islam or anti-Christian or anti-Atheist that it becomes obvious that you might have problems working with people of those philosophies then I would be concerned as to how well you’d function in a project that explicitly welcomes people of all (or no) faith.

                                                              I am more concerned about consistent “women are just inherently worse at programming, it’s science!”-style posts. If that’s what fills your Twitter, I wonder how you’ll be when you review a woman’s PR, y’know?

                                                              But you raise an excellent point.

                                                              1. 3

                                                                If (this is hypothetical) women are, in fact, inherently worse at programming, and one thinks programming is important and should be for everybody, this means women need additional support for programming. In fact, this is the exact position I hold: I think men are inherently worse at language (reading) as evidenced by standardized test score statistics, and reading is important, and boys need special support so that they can get equal score at reading.

                                                                I don’t hold such position wrt women and programming, but if I were, I would review a woman’s PR with more care and time so that it is more helpful.

                                                            2. 7

                                                              You asked for an honest concern for the new Go CoC. If my concern, to be specific, tweeting a link to The Neurodiversity Case for Free Speech and being allowed continued participation to Go project, sounds honest and reasonable, please confirm.


                                                              1. 2

                                                                I edited my comment above. From what I gather, the problem was twofold: he didn’t just tweet the article, but supposedly offensive screenshots of comments about the article; and he did it while in a leadership position of the project.

                                                                And there were apparently many other complaints and violations of the project’s policies, so it wouldn’t appear to be as simple as “tweet a link, get banned.”

                                                                But again, I first heard of this like 15 minutes ago.

                                                                1. 10

                                                                  so it wouldn’t appear to be as simple as “tweet a link, get banned.”

                                                                  With Go, it would appear to be simpler than that. Post something totally innocuous that they don’t agree with, and get banned.

                                                                  They banned some guy on reddit because he was just expressing his opinion.

                                                                  (In case my own post gets deleted, here is a screenshot.)

                                                                  1. 1

                                                                    Reddit isn’t Go, though. We have to wait and see.

                                                                    (And he wasn’t “expressing his opinion”, he was accusing them of witch hunts before the thing was even promulgated. He wasn’t banned for his opinion, he was banned for being an asshole. Go into any volunteer organization and combatively accuse them of witch hunts and bigotry and see how long they welcome your effort…

                                                                    If he had said “I worry that the vague language and lack of public investigation to lead to abuse of those with minority political opinions,” he’d be fine. Instead he came in accusatorily with guns ablazin and then gets taken aback when people don’t like being talked to that way.)

                                                                    1. 9

                                                                      Note that /r/golang does use Go CoC, so it is fully relevant here.

                                                                      1. 9

                                                                        he was accusing them of witch hunts

                                                                        No, he wasn’t. He was responding to this post, essentially answering the question “what is wrong with CoCs in general?”. /u/zevdg had his own opinion, and /u/gildedlink had answered punctually to his objection.

                                                                        It looks like he was perfectly correct though.

                                                                        1. 1

                                                                          He accused the CoC of being used by “bigoted people…to exclude others based on superficial ideological labels…[and] to bully targets.”

                                                                          I shortened it to “witch hunt” but the idea’s the same.

                                                                          Again, if he had said “I fear the language is too vague and might be liable to abuse by people who wish to exclude minority viewpoints” he would’ve been fine. I you act like a jerk when expressing your opinion, people’s reactions might be based on your jerkiness and not the expressed opinions.

                                                                          EDIT: removed some of my own jerkiness. There was no reason for it, sorry.

                                                                          1. 9

                                                                            Your restatement is bad because I (and I think gildedlink) am against outside clause in its entirety, and my primary objection is not vague language. In fact, you seem okay with my “Mainly people digging Twitter to oust someone… Rod Vagg and Node.js”, but I don’t see much difference.

                                                                            Or do you think I should be banned from Go project for saying the above?

                                                                            1. 4

                                                                              He said “frameworks like this”, he was talking about other CoCs just like this one and how they were used by other people. He wasn’t accusing these people (the Go people) of anything (although, now, I am, in case anyone is keeping score).

                                                                              Again, if he had said “I fear the language is too vague […]”

                                                                              He was saying what a CoC can do (and what it did do in other communities). He didn’t get a change to expands on his thoughts, or explain in depth how this particular CoC enables that phenomenon because he was banned.

                                                                              As a related point, I am sure you realize that some of use are against the very idea of a CoC. While I have specific problems with this particular CoC (which have all been discussed here before by other people, so I won’t repeat them), my main ideological problem is with the existence of a CoC itself in any shape of form.

                                                                          2. 1

                                                                            For the record, I appear to have been shadow banned from /r/golang as well. Not just regular ban, but shadow ban.

                                                                            1. 1

                                                                              Any idea why?

                                                                              1. 3

                                                                                Actually after some more investigation, I wasn’t banned, but they enabled global censoring. Every post now has to be approved by a moderator before it becomes visible to other people. In my opinion, this is a far worse outcome then if they had just banned me…

                                                                    2. 5

                                                                      Replying to edit:

                                                                      They seem to imply that there are people with atypical neurologies who are incapable of refraining from sexist, homophobic, and anti-Islamic speech.

                                                                      There is no such implication. It’s not about being incapable, it’s about being more difficult. Large text accessibility theme is not about being incapable of using small text.

                                                                      That’s not how it works, or has ever worked, in any field of human endeavor.

                                                                      Since humanity never made it fair for Aspies in its long history, humanity shall continue to make it unfair for Aspies forevermore. Got it. If your criteria for social change is “that’s not how it has ever worked”, there would be no women’s suffrage.

                                                                      1. 4

                                                                        How does being an Aspie make it more difficult to not be a homophobe? Homophobia is not a symptom of Aspberger’s Syndrome.

                                                                        1. 4

                                                                          It makes it more difficult to know what the implicit prevailing social norm is.

                                                                          But really, that’s not what I think is the core of disagreement. You find The Neurodiversity Case for Free Speech objectionable. Got it. Do you find it objectionable enough that tweeting a link to it should constitute a cause for ban for open source projects?

                                                                          1. 1

                                                                            Not at all. But if that’s provided as supporting evidence that I lack impartiality to do my job according to the project’s rules and had been the subject of multiple complaints on top of documented violations of procedures and policies….well…

                                                                            Now, do you think that treating gay people with common respect is purely a social norm that we should ignore if we feel like it?

                                                                            1. 3

                                                                              Yeah it’s also important to remember that a condition may be an explanation but it isn’t an excuse. I have ADHD and I do lack impulse control. That lack of impulse control is not an excuse to act out on others. I still need to apologize for my behavior and describe what steps I might take to avoid it in the future. It does not count as be an asshole free card. I still need to put a good faith effort into having good behavior and if I repeatedly am hostile to others then I may not be able to be involved in a group project.

                                                                              1. 3

                                                                                This is why I am in favor of Rust CoC. “Moderators will first respond to such remarks with a warning.” Rust CoC is explicitly against instaban.

                                                                                Go CoC is not, and above /r/golang case seems Go CoC in fact can instaban. (It is possible that there was private warning, but short time frame makes it unlikely.)

                                                                              2. 1

                                                                                No, I don’t think so.

                                                                              3. 1

                                                                                It doesn’t, however, make it difficult to know what one’s values are, or to act accordingly. I don’t know what social norms have to do with it, and I find this argument insulting.

                                                                          2. 3

                                                                            And the problem, from what I gather, wasn’t that he tweeted about an article, but that he tweeted screenshots of rude responses about it. He’s a leader of the project, and as such needs to think about his position.

                                                                            I have an honest question which I hope you to reciprocate by answering. Do you seriously believe it would have been different if just link was tweeted and “Dude, What’s wrong with your head?” screenshot was not tweeted? I really have hard time believing this. “Yes” or “No” would be sufficient. Thanks!

                                                                            1. 1

                                                                              Well, before we go too far down this rabbit hole, we should remember that Node.js and Go are two separate projects and we should judge Go’s policy separately.

                                                                              As for your question:

                                                                              I don’t know. Maybe yes, maybe no. I think if the person in question has other complaints lodged against them, the scales might tip.

                                                                              I personally wouldn’t care, but I’m not the Node.js TSC with their insider knowledge of his past behavior.

                                                                      1. 4

                                                                        When I was young, I was all about Prolog. I got a copy of Logic and Prolog by Richard Spencer-Smith and Stony Brook Prolog for the Amiga from Aminet and just went to town.

                                                                        Now, sadly, there just isn’t much use for Prolog in what I do, and so I don’t use it anymore, and honestly never did professionally. It was, in a very true sense, a childhood summer romance that I occasionally try to recapture.

                                                                        1. 1

                                                                          It’s completely unknown in the world of CRUD web apps, but I think it might be still used in niche areas.

                                                                          SPARQL has similarities to prolog/datalog, but not exactly.

                                                                        1. 2

                                                                          Interestingly, the ANSI Smalltalk committee viewed reflection as being used so rarely it was omitted from the standard:

                                                                          The vast majority of Smalltalk application programs do not utilize the reflective capabilities available in traditional Smalltalk implementations. For this reason, we view such reflective capabilities as artifacts primarily used in the implementation of incremental program facilities and do not mandate their presence in all Smalltalk implementations.

                                                                          They also refused to standardize the addition of new selectors to classes:

                                                                          Because symbols and selectors are defined as supporting different protocols and because the standard does not define any messages that generate selectors from text strings it is possible to build an implementation that can analyze the program text to determine which methods have selectors that are not used by the program.

                                                                          Taken together, this also removes from ANSI-standard Smalltalk things like metaclasses (which is also mentioned in the standard).

                                                                          1. 12

                                                                            “This is a summary of the blog post about draining the manual page swamp. The complete blog post is available as a GNU info document.”

                                                                            1. 2

                                                                              ChromeOS with a full Linux terminal environment would handle 100% of my computing needs and would “just work”…but it involves selling even more of my soul to Google than I already do, so, I’m conflicted.

                                                                              EDIT: Well, not 100% because I need to be able to run VMs. But, you know, 80%.

                                                                              1. 1

                                                                                If you only ned to run Linux VMs then it may still be 100%, since that’s how this is being done…

                                                                                1. 1

                                                                                  Alas, no.

                                                                                  1. 1

                                                                                    I guess there’s still the faint hope that VMware Workstation for Linux will run inside ChromeOS eventually.

                                                                                2. -1

                                                                                  If Google was good, then Google would push their drivers for Chromebooks upstream. Google does not push their drivers for Chromebooks upstream.

                                                                                  1. 1

                                                                                    They’re still open source though, aren’t they?