1. 18
  1.  

  2. 11

    It’s amazing to go back and read the old Bell Labs papers on Alef, Dis, Limbo, Inferno, Plan 9, the Squeak and Newsqueak languages…and just see how prefigured Go was.

    (And then you go back and read about Oberon and Oberon-2 and then look at Bell Labs papers on Help and Acme and then Go and see how much Oberon inspired them too.)

    (And there’s even a hint…one might even say an iota…of APL in Go.)

    Go is the product of a long, long history in computer science, dating back 30+ years.

    1. 8

      To some degree, I agree.. but also this is because programming is a social task, and the same group of folks worked on all of these technologies, including Go. Even ken was involved in Go 1.

      1. 2

        To some degree, I agree.. but also this is because programming is a social task, and the same group of folks worked on all of these technologies, including Go. Even ken was involved in Go 1.

        right! And their experience includes ideas that they had in the past, that they… reapplied. I don’t see how the point you’re making is separate from the OP :)

        1. 3

          Saying something has a “long long history in computer science” implies it’s something across the entire field.

          ken and r are not the entire field. Yes their ideas have lasted longer than many trends - but it’s because they personally worked on those ideas and shipped products. It’s not like piles of others took up the idea post plan9 and wrote Go. The authors of plan 9 went and worked on Go.

          It’s basically an observation that ken’s career has lasted more than 30 years. Yes, it has. You wouldn’t say The Irishman is the product of a long long history in film because it related to Taxi Driver or Goodfellas. You’d say Scorsese has had a long career, and his work obviously relates to itself.

          1. 3

            Saying something has a “long long history in computer science” implies it’s something across the entire field.

            Saying something has a history within a field doesn’t imply that it’s the entire field. Any more than me saying a road exists in London means that road is London. Your examples are pretty inaccurate, it’s more accurate to say “Noir has a long history in film”, and, excusing my complete lack of film knowledge, my guess is that because certain directors will go for certain visual styles, you will end up with the same-ish directors working on noir-related media. Likewise you can see that within art, cubism has a long history within it. It will be mostly the same people, indeed! That does not imply that the entirety of cubism is relegated to those people. Likewise it does not follow that cubism is the sole product of all of artistry, or that cubism influenced everything!

            ken and r are not the entire field. Yes their ideas have lasted longer than many trends - but it’s because they personally worked on those ideas and shipped products. It’s not like piles of others took up the idea post plan9 and wrote Go. The authors of plan 9 went and worked on Go.

            That’s… seriously misunderstanding how ideas propagate within scientific and artistic fields.

            I’ve been reading up on computer history for about 10 years, I consider it part of computing, to know where things came from, to know about ideas that might have been lost. It’s blisteringly clear to anyone that’s spent even a month reading up on this stuff, how interrelated and interwoven the ideas and cultures and research interests at Bell Laborotories, Erricson, Parc, Sun Microsystems, MIT, Stanford, etc. were.

            It’s the nature of humans to communicate things we find interesting. We’re in a field to study and work in it because we find it interesting. It’s highly likely that if you’re part of a research project, you find it interesting. If it’s a research project, the other people won’t know it, thus you will naturally communicate it. Likewise you will try and stay abreast of other developments in that research field. You will see papers that other people have produced, think “oh, that seems similar!” or “oh, that’s interesting and different!”, and read them out of curiosity. Maybe you skim it, maybe that’s all the idea needs to percolate.

            It’s wrong to think of computing as these isolated workshops, each churning out different things. Each thing is communicated, and influences the other thing. Sometimes those influences aren’t realised, or are forgotten, a meeting in a pub that’s barely remembered, for example. But it happens naturally as that’s the nature of communication and information within science and art.

            A lot of Plan9 got turned into research papers (There’s a paper on Hume’s redesign and update of Make, which is where GNU gets many of the features from, likewise, mk(1) stole a bit from GNU Make too!), likewise, Inferno, Oberon, System V, Smalltalk-80, Scheme, etc. all had slews of research papers coming out from them.

            Or take a look at EMACS and the Lisp Machine. EMACS, originally written in TECO, rewritten in a Lisp, inspired a lot of other editing environments. Likewise, a lot of features from the Lisp Machine were ported into EMACS by the developers at the time. The Lisp Machine’s ideas, in some part, lives on inside EMACS, and thus in software that takes from EMACS, and vice versa.

            1. 2

              EDIT: thank you for your detailed response, I felt I really understood your point because you took the time to write it out so fully. I may disagree with some of your points but thank you for taking the time to explain them.

              I mean, I think the Lisp Machine is a great example in that it came out of MIT where TECO was also written? It doesn’t really fight this “workshop” thing you’re trying to argue against imo. TECO was written by Dan Murphy, who wrote it at MIT.. afterwards he worked on TENEX, eventually working at DEC and on the PDP-10… which had TECO installed on it at the MIT AI lab.. where rms worked.

              It’s ok that we interpret history differently, I guess I don’t see computing history the way you do. I see it almost exclusively as a social & engineering phenomenon, not an intellectual one. The software engineering field in general is a great example of this to me, where all the largest and most influential papers are from implementation papers (ala “backrub”, or MultiPaxos, or WAFL, etc). If plan9 and emacs are in the “computer science” field, then we have a fundamental disagreement about how technology is made, which probably won’t be a useful discussion.

        2. 2

          Yes, but a lot of Go comes from people who aren’t Pike or Thompson or anyone else from Bell Labs: CSP comes from Hoare, a lot of the type system and “type-bound procedures” come from Wirth and Mossenbock at ETH-Zurich. Help and Acme come from Wirth and Gutknecht. CSP took hold at Bell Labs pretty strongly (Pike has an essay on it) but it didn’t start there. Wirth and his associated never worked there.

          And, as I jokingly mentioned in my original comment, the use of iota in Go finds its inspiration all the way back to 1962 at IBM with the publication of A Programming Language.

          If anything, you could argue that Go was Pike and Thompson’s paean to Hoare, Wirth, and Mossenbock, with a wink at Iverson. :)

          1. 2

            Fun fact, iota is in Limbo as well!

            https://github.com/henesy/limbobyexample/blob/87845d69835cc74cb4c7b7d16869b1e5ee481908/Constants/const.b#L14

            I didn’t know about the origin, thank you for this :)

        3. 4

          It really is fascinating to see!

          I went over a few of these languages and cross referenced them to Go in a prior post: https://seh.dev/go-legacy/

          Go looks so much like its predecessors

          1. 4

            Charles Forsyth gave a talk last year on this. Hopefully the video will show up on Youtube soon.