1. 76
  1. 25

    First off, I’m not out to belittle Ken Thompson’s efforts here. Writing an assembler, editor and basic kernel in three weeks is highly respectable work by any standard. It’s also a great piece of computer lore and fits Blow’s narrative perfectly - especially with Kernighan’s little quip about productivity in the end. Of course, we don’t know how “robust” Thompson’s software was at this stage, or how user friendly, or what kind of features it had. I’m going to boldly claim it would’ve been a hard sell today, even if it did run on modern hardware.

    Ooh, I can answer this! Ken Thompson’s first version of Unix was just the barebones he needed to run Space Traveler, a game he wanted to port from MULTICS. It wasn’t anything close to what we’d recognize as a Unix.

    Despite that, I’m willing to bet a few bucks there are more people around today (including youngsters) who can program in C than ever before, and that more C and assembly code is being written than ever before.

    I was thinking the same thing. Maybe in relative numbers there are fewer people who understand the low level things, but the absolute numbers are magnitudes higher.

    1. 11

      Maybe in relative numbers there are fewer people who understand the low level things, but the absolute numbers are magnitudes higher.

      This is very powerful thinking and unlocks a lot of counter narratives to popular beliefs.

      I remember when the Wii came out and people were worried that games would stop being “good” cuz so many casual games existed now (see also mobile game stuff). The ratio with sales was super weird but ultimately we were looking at bigger pie stuff.

      I think a similar thing has happened with software sales as well relative to mobile applications

      1. 3

        Ooh, I can answer this! Ken Thompson’s first version of Unix was just the barebones he needed to run Space Traveler, a game he wanted to port from MULTICS. It wasn’t anything close to what we’d recognize as a Unix.

        Not only that, you can actually run it in SIMH’s PDP-7 emulator! The original source code is available, including the source for the game Space Travel. The ~3k lines kernel is bundled with ~18k user space programs (assembler, debugger, text editor, disk/file management utilities, some games, etc.). Maybe less barebones than you’d expect. To me this inititial UNIX version is akin to prototype to see if the approach will work (later evolved and refined into Research UNIX of course).

        1. 2

          it wasn’t anything close to what we’d recognize as a Unix

          Do you have any recommendations for philosophical/historical/narrative reading produced by these folks or their contemporaries? I’ve consumed plenty of their writing on the technical side, but most of the philosophical/historical/narrative accounts I’m aware of seem to have gone through the filters of other people involved with later/divergent parts of the historical trajectory (GNU, Linux, FSF, and so on).

          1. 2

            Have a look around on multicians.org. I’ve enjoyed some of Tom Van Vleck’s pieces like his history of electronic mail.

            1. 4

              Unix Hater’s Handbook http://web.mit.edu/~simsong/www/ugh.pdf

              Lion’s Commentary on Unix https://cs3210.cc.gatech.edu/r/unix6.pdf

        2. 21

          I feel such a deep sense of catharsis seeing someone write out a takedown of that unbelievably terrible talk that people keep linking to.

          Copy a program from one computer to another.

          ah so here where the author says nobody does this any more, I agree that nobody does it very much but argue that it’s not actually that hard (in Go, not sure on other stacks but should be easy in Rust?) and totally worth your time to do. I work at a game company and sometimes when people need small tools to do something, I just write a 30-40 line Go program in a single file, compile it to a binary and literally DM it to them on Slack a few minutes later. I do this every now and then, usually to make a one-off .exe file that I can give to a QA person to generate a given API request that they can fill with command-line variables, or download/upload a file or file tree, or perform some form of file transformation, data abstraction, or templated file generation. One of our engineers was having problems with a low-level websocket client written in C running on a PlayStation and I made a websocket server for him in Go that could test his specific websocket protocol implementation problem in about 30 minutes and DM’d it to him on Slack. (of course, it turned out the problem was one of our own doing.) Very little ceremony, lots of utility. Making little binaries and sending them to people on Slack is wonderful and people should do it more.

          we basically have to go back to the days of the C64 and PC/XT to find self-contained programs that didn’t require installation

          That’s sortof a choice that people are making though. A friend of mine, a game designer, decided to stop using Maya and start using Blender instead because Blender is so small and self-contained, she can put it on a thumbdrive. She puts a whole 3D modeling kit onto a thumbdrive and then puts it in her pocket and uses it at home, at grad school, and at work. And she even readily admits that it’s not as good of a modeling program than Maya! But her games are small and she doesn’t need all of Maya’s features (and doesn’t have a license for it at home), so it’s more ergonomic for her to just stick Blender on a thumbdrive. She’s not a professional 3D modeler, and I doubt this workflow would work for someone that is a dedicated environment or character artist, but it works for her workflow as a designer.

          Godot also has a similar setup; you just download it and run it. The engine and the editor together are just an executable. It’s fantastic.

          AppImage on Linux is a similar thing. I do all of my image editing in Krita, which is packaged as an AppImage so looks to me like it’s just an executable file. (yeah, not as good as Photoshop, duh, but convenient and free and I’m not a professional artist so don’t really need the things that Photoshop has that krita lacks.) Overall, the situation here is much better than both Blow and the author are claiming, although it is still far behind where it really could (and should) be. MacOS has .app files that behave the same way. It’s really only Windows that lacks such packaging facility to my knowledge.

          I’m not exactly sure I follow Blow’s train of thought here - perhaps he reasons too much like a game developer and I don’t.

          honestly I don’t think he does. 90% of the gamedevs I know think that Blow is a has-been jerk, but I don’t and have never worked in AAA so I’m certain that the gamedevs I know are not a representative sample; my gamedev world is admittedly very tiny. It really seems to me like people outside of games think that Jonathan Blow is a paragon of gamedev because he told them he is, and people in games mostly roll their eyes at him.

          1. 6

            Blow is a has-been jerk, but I don’t and have never worked in AAA

            There are so many different kinds of subcultures within gaming. If you look at the games like Braid and The Witness, I think they are more interesting than the average game. Does that mean they are the best games ever? No, and it depends who you ask, of course!

            One reason that I like Blow, is that he seems to be one of the most prominent accomplished devs who isn’t just going with the flow. No flow with Blow. Like, that new programming language that disregards any PLT research of the last 50 years: I probably won’t use it, but I am happy he is out there, experimenting.

            I don’t think people would realize, to the same degree, that yes, you can write your own game engine, if he wasn’t using his prominence like this. I value clean engineering, so I think that message is way more important than the message of Unity which is probably something like “you can get a pretty game in no-time with us”. I don’t want “pretty”! I want innovation.

            I don’t understand why you mention AAA, since Blow is not a AAA dev, and it doesn’t make sense to compare him to one. What did you mean?

            1. 6

              I’m more interested in innovations in gameplay than I am in the engines running games. I don’t care whether the innovative game uses Unity or Fusion or Game Maker. I’m not playing a game for its clean engineering.

              1. 7

                I don’t understand why you mention AAA, since Blow is not a AAA dev, and it doesn’t make sense to compare him to one. What did you mean?

                ah I just mean that if you asked AAA game devs they might like him. I don’t know many AAA game devs.

                Unity has never made the promise that they’re pushing the performance of games, but that they are pushing the medium to be accessible to a larger set of creators. I’m not arguing that there are no benefits to writing your own engine, but that innovations in game engines and innovations in games are two completely different things. Besides, have any developers other than Jonathan Blow created great games with his game engines? Hmm.

                You can make an innovative game without innovating in the engine. A LOT of people just want to make a game with existing concepts of controls and rendering, but with different art assets, different stories, different levels, different themes, etc. The reality is that if you look at the set of people who want to make games, the vast majority of them are not in it with the goal of making a game that is pushing some technical envelope, but because they want to push some creative or expressive envelope. A lot of people simply want to make a game that tells a story that they haven’t seen told in a game before. I’m one of two professional programmers in my game design MFA program and not a single one of the ten other designers in my program cares at all about making games that are innovating in the game engine space or expresses an interest in learning about pushing things technically, because existing game engines and technologies already provide a design space that is so enormous that we have barely begun to explore it. Honestly most of them care much more about innovations in either narrative structure, spatial structure (i.e. level design), or aesthetics. Very few people care much about innovations in mechanics, and none care about making technical innovations. Technical innovations in games is just one area of design exploration out of many.

                also Braid is boring to play and deeply problematic on a thematic level, I’m sorry. Limbo and INSIDE are ten times the experience Braid is if you want an indie platformer with an interesting narrative context. Starseed Pilgrim, Rain World, Thomas Was Alone, and Celeste all stand out as having more to say in that space to me, too. The Witness has a large number of puzzles but so do those books of sudoku puzzles you can buy at an airport book store. Who cares. Those books admit they’re all variations on the same puzzle, and the line-drawing puzzles are also all in the category of constraint-fitting puzzles. Those puzzles don’t even have any state in them. It’s just “find the correct line”. Wow. Amazing.

                Mind you, I don’t think The Witness is without merit; I’ve logged 38 hours on it and think it’s one of the most beautifully rendered environments I’ve explored in games. But the real innovation of The Witness, and the reason that game designers talk about it, is that he hired an architect to help design the environment, and the environments are incredible. The fact that The Witness is written in its own engine is not a thing that game designers talk about or care about. Do players actually care? I doubt it. One wonders how much in the game could not be created in Unity or Unreal. The color puzzles would probably be impossible without having control of the render pipeline, but that’s a tiny portion of the game (and imho they’re some of the least interesting puzzles in the game). The first-person puzzle game that everyone actually cares about is Return of the Obra Dinn, a game that -also- has interesting rendering stuff going on that the game dev writes about a lot. The difference is that Lucas Pope is not a huge condescending jerk about it. Manifold Garden, Proteus, Stanley Parable, Antichamber, and Superliminal are all doing things as interesting or more interesting than The Witness in that space. So really, the idea that Blow is some sort of singular genius doing things that aren’t being done in game design is not actually true. There are loads of great game designers out there.

                The thing I’m not trying to get at here is that Jonathan Blow is a terrible designer that makes terrible games, because I don’t think that he is. Braid is imho mediocre to bad, and The Witness is quite good. What I find so aggravating is that in this space and in other programming spaces, programmers all too often portray Jonathan Blow as being The Definitive Game Designer, when in game design spaces, that’s not at all the case, and I am exhausted of seeing programming communities fail to recognize other people making other innovations in games, many of which are much more profound and sublime than what Blow is doing.

                1. 4

                  deeply problematic on a thematic level, I’m sorry.

                  How so? I saw it as unsympathetic to the player character— a nice departure from what I thought was gonna be “nice guy” bullshit.

                  And to the point on innovation in engines not mattering, look at factorio. The devs have said that the game wouldn’t be possible on unity or unreal, it would just be too slow. When I play factorio and there’s no slowdown on my massive, multiple location factory, I think that’s pretty cool.

                  1. 6

                    to the point on innovation in engines not mattering

                    I am literally not making that argument and I said as much up front:

                    I’m not arguing that there are no benefits to writing your own engine

                    My argument is not “no innovations in game engines are interesting”, my argument is that “the engine is not the only site of innovation”.

                    Despite Blow’s intentions, I don’t think that Braid is at all unsympathetic to the player character. I think the game is deeply sympathetic to the player character. You don’t give him that cutesy tousled hair or put him in that nice little suit if you’re not depicting him sympathetically. You don’t go through pains to show his perspective if you’re not depicting him sympathetically. You don’t put all of that outrageously bad writing into the game if you’re not being sympathetic to that character. You don’t make that character the center of the entire narrative if you’re not sympathetic to that character. At the end you find out he’s done a bad thing, but really, if you were at all paying attention to the story unfolding, the fact that it’s a story of an abusive partner rationalizing their abuse is clear the entire time. How much time is spent on the perspective of the other party? Any story that centers the thoughts and experience of the abuser, while relegating the thoughts and the experiences of the abused party to a status so minor as to be ornamental, is sympathetic to the abuser, regardless of whether or not the creator intends it as such.

                    see here for a longer viewpoint on this: https://boingboing.net/2015/07/30/the-other-side-of-braid.html

                    Why did it take so long for your protagonist to come to this revelation? It’s as if the whole game is constructed around trying to find ways to exonerate Tim’s wrongdoing. Look at all the stuff he’s done, and how smart he is! It’s the most common argument made for successful artists and thinkers who have done bad things throughout history. The game’s true hand is only revealed, and only barely, at the end.

                    1. 3

                      My argument is not “no innovations in game engines are interesting”, my argument is that “the engine is not the only site of innovation”.

                      Right, what’s all this then?

                      The fact that The Witness is written in its own engine is not a thing that game designers talk about or care about. Do players actually care? I doubt it.

                      My point is that in the case of factorio, players do care. And game designers should look at factorio and how great everything works and think “what could I do that’s innovative if I can make everything work fast?”

                      You don’t go through pains to show his perspective if you’re not depicting him sympathetically.

                      Sorry, what? This doesn’t follow in the slightest. Do you think American Psycho is sympathetic to Bateman?

                      Any story that centers the thoughts and experience of the abuser, while relegating the thoughts and the experiences of the abused party to a status so minor as to be ornamental, is sympathetic to the abuser, regardless of whether or not the creator intends it as such.

                      I disagree, insofar as a text isn’t “sympathetic” to anything, ever. It’s certainly possible to misread Braid in that way, but what would you prefer? A big, flashing red all caps impact font “YOU ARE A BAD GUY, DON’T DO THIS IRL” message at the start of the game?

                      I’m not going to read that review as the only good review of braid has already been produced: https://www.youtube.com/watch?v=xSXofLK5hFQ.

                      1. 7

                        “I don’t think The Witness being in a custom engine is a thing that matters to people who play The Witness” is not saying “no innovations in engines are interesting or observable to players”. To equate the two is ridiculous. To extrapolate this to Factorio is even an even more ludicrous act of moving the goalpost.

                        Do you think American Psycho is sympathetic to Bateman?

                        Haven’t seen it so I wouldn’t weigh in on that one.

                        if you’re just straight up admitting to refusing to engage the materials supporting my arguments, you’re openly acting in bad faith.

                    2. 3

                      look at factorio. The devs have said that the game wouldn’t be possible on unity or unreal, it would just be too slow

                      they do say that, but i’m not really sure i believe it

                      you’d probably have to make some tweaks. but cities: skylines is written in unity, and it has a similar problem of simulating a lot of stuff. i was looking at the decompiled code for it, and they wrote a lot of their own data structures instead of using the default C# ones, for performance reasons

                      (it’d also be easier now with unity’s burst compiler. but that didn’t exist when they started)

                  2. 3

                    I value clean engineering, so I think that message is way more important than the message of Unity which is probably something like “you can get a pretty game in no-time with us”. I don’t want “pretty”! I want innovation.

                    Why is a binary built up here?

                    1. 1

                      You’re right, I shouldn’t be building it. I just find that one big problem is that everyone is expecting so much from graphics nowadays. It’s not necessarily either-or, but usually if you want people to deemphasize something, something else has to go. Does that make sense?

                      1. 2

                        I just find that one big problem is that everyone is expecting so much from graphics nowadays.

                        You’re entitled to your preferences, but what does that have to do with the broader population? Tastes change. I’m pretty sure chess, checkers, Go, and Shogi players around the world are lamenting how more folks these days are interested in League of Legends than their games.

                        It’s not necessarily either-or, but usually if you want people to deemphasize something, something else has to go. Does that make sense?

                        It makes sense, but carries quite a lot of assumptions, namely that there is some finite resource that is “zero sum”, I’m guessing time/dev+design effort (though not sure) and that innovation and speed are directly opposed. Now with this model, one point of “effort” spent on innovation is a point of “effort” not spent on speed. That feels overly prescriptive to me. There probably is a region in this state space at which an incremental addition to “speed” compromises “innovation”, but plenty of regions throughout the state space where the tradeoff is not nearly that clear cut.

                  3. 3

                    ah so here where the author says nobody does this any more

                    This is done over a billion times a day, apt, rpm, docker, whls, etc.

                  4. 7

                    Software is eating the world but a lot of it is, in the end, completely inconsequential. I’m willing to bet people would lead far more fulfilling and less stressful lives if they deleted most of the apps they had on their phones.

                    If most people lead more stressful lives because of the apps they have on their phone, then software is not “completely inconsequential”, quite the opposite.

                    1. 2

                      It’s “inconsequential” from the “collapse of civilization” perspective; no civilization is going to collapse if King stops being able to maintain Candy Crush.

                    2. 10

                      There’s a famous theory that denizens of the Star Wars fictional universe are functionally illiterate; they are post-literate and stand upon the ruins of several collapsed literate societies. This theory is largely motivated by a desire to explain how Roman-era politics could manifest in a supposedly advanced and progressive society which appears to have a strong multicultural (and, as is possible in sci-fi, multiracial) community; how can hyperdrive travel not beget lightspeed news?

                      But any student of history will realize that the very lens through which we view fictional universes is going to be artificially narrowed and equipped with a narrative. While it is true that sometimes civilizations collapse and permanently lose capabilities, we should be careful to imagine that this will always destroy our knowledge of how to rebuild society. Historically, this only seems to have happened when we lose the ability to read and write, as at the end of the Bronze Age.

                      1. 8

                        Nobody texts in Star Wars!

                        People didn’t text in 1977 when the original movie came out, and people really hate when stuff from the original trilogy is invalidated, so why bother changing it? Having people talk to one another on two-way radios means that the audience gets to witness their conversation without having to read, which is good, because the audience is children.

                        This is why there seems to be so much poverty in Star Wars: widespread ignorance.

                        … the entire plot of the prequel trilogy is “the Jedi are cops that uphold a system of slavery and exploitation and Anakin brings balance to the Force by destroying them because they are actually bad”. The subtext really is not that deep here. Anakin is born into slavery. His mother is a slave. He is “freed” by his Jedi Master to fulfill some prophecy; he is “freed” to be used as an instrument, and not because, and stick with me here, slavery is bad and people should be freed from slavery. The fact that he wasn’t freed from slavery because slavery is bad is only reinforced by the fact that Qui-Gon declines to free Anakin’s mother from slavery. At no point do the Jedi or does the senate say “hmm, maybe we should abolish slavery”. Anakin literally asks Qui-Gon if his mother will be freed and Qui-Gon says no. Why? Because she’s not useful to their goal of “maintaining order”. What order? Order for whom? What good is order to a person that is enslaved by that order?

                        even ancient Jedi records exist in the form of holograms

                        … the point of holocrons is that it requires the force to open a holocron. Opening a holocron is a Jedi skill. The entire point is that only Jedi can open a Jedi holocron, and that opening a Sith holocron requires tapping into the Dark Side. These things are plot points in Clone Wars and Rebels.

                        The final nail in the coffin which proves widespread illiteracy is how fast stories of the Jedi mutate from a fact of everyday life into legend, seemingly overnight.

                        uggggggh. The characters in the movie receive their information from oral tradition because they are proxies for the audience who -also- receives their information from oral tradition. When one character explains something to another character out loud in a movie, it’s because the point of the scene is to have that thing explained to the audience. This analysis is making me feel like I’m on crazy pills. It’s completely ignoring any practical consideration of filmed media, the audience being children, the realities of what could be depicted in the original trilogy, or the non-depiction of things to make them intentionally alien.

                        The alien languages in Star Wars are not real languages, they have no grammar, they’re just sound design, because Lucas wanted the alien languages to have no meaning. The point here is that you’re not supposed to be able to find out what they’re saying if you’re a big enough fan: the point is that you can never know what they’re saying because they are depicting something that is not observable to the POV characters. It’s not depicting the collapse of language and it’s not suggesting that the alien languages are not mutually intelligible to the aliens.

                        This is the same way Palpatine was able to take over in Revenge of the Sith. He simply said “the Jedi tried to kill me” and everyone was like, “okay.”

                        it’s a children’s movie that already had a 140 minute runtime. What do you want, an additional 15 minutes of people doing witness cross-examination to figure out the thing that the audience already knows to be true?

                        The Jedi seem to be the most educated people in the prequels

                        it’s almost like they’re the main characters?

                        Anyway, in the sequel trilogy, Rey steals the Jedi texts from Luke. They’re books. She doesn’t ever look at them like she doesn’t know what they are, and it’s taken for granted that she, a formerly homeless scavenger, would know how to read them. This whole “there’s no books because it’s depicting a post-literate society” really isn’t supported by anything other than “there aren’t books on the screen”.

                        1. 2

                          Nitpick: the sequel trilogy came after the piece theorizing about the SW universe being post-literary. I remember seeing the books in the movie and being reminded of the theory.

                          1. 3

                            totally fair and more than a nitpick. But still, I don’t think even in the original trilogy that there’s anything going on that suggests that people not visibly reading books has any meaning beyond “watching characters read a book in a movie is kinda boring” or “life in that galaxy sure is different from life on earth”. Also, R2 speaks to Luke in the original trilogy by texting to his console in the X-Wing, despite the fact that Luke is wearing a two-way headset that he uses to communicate with other characters and can understand R2’s bleeps and bloops and didn’t grow up in the Jedi academy. He grew up with … Uncle Owen, who this article suggest is illiterate because he’s never shown reading a book. In newer media such as Clone Wars, characters are depicted using computers in a way that suggest literacy on a number of occasions, but usually the focus is on the character’s face and their reaction to what they’re seeing than the screen itself. E.g., there’s a depiction of the archives in which a changeling disguises herself as a Jedi and uses one of the terminals to access some of the records and is depicted typing and using a search engine. I know, I know, this is extremely specific, but it’s just coincidence; I saw that episode the other day because I’m watching through Clone Wars for the first time.

                            It’s just a very flimsy interpretation that doesn’t at all stand up to scrutiny, and hinges on making assumptions about things that are not depicted instead of having much to say about things that are depicted.

                        2. 4

                          reminds me of a quote from Snow Crash:

                          We have a huge workforce that is illiterate or alliterate and relies on TV—which is sort of an oral tradition.

                        3. 6

                          I think people are missing the point interpreting what he is saying in the video and trying to go after individual technologies like how is C. I think the problem is independent from the actual implementation details.

                          We simply moved away from knowing the details of the things we operate in the details we used to even in a relatively small area where we work (not talking about being able to fix your own car). We kind of settled on the Neumann architecture, settled on binary code, using a monolith kernel with a garbage libc, writing stuff in a language that makes it hard to deal with the things we need to deal with, package it up with an even bigger pile of crap and deploy it the another 5 levels of abstraction just to have a hello world level program.

                          Why don’t we move towards designing hardware for a specific goal, having built in redundancy at the bottom level for what we would like to do, skip the kernel and libc and just implement what we need in a language that makes it easy to express what we want correctly and hard to express mistakes. I think GreenArrays is an attempt towards this model.

                          http://www.greenarraychips.com/home/documents/index.html#architecture

                          1. 7

                            Yossi Kreinin has a writeup of why the “hardware for a specific goal” doesn’t work at scale here: http://yosefk.com/blog/my-history-with-forth-stack-machines.html. Also, a lot of Forth discussion.

                            1. 1

                              This is an interesting write up. I think what it says is that Forth is not for everybody and Greenarray nodes are not well suited for a problem where you need MD5. Maybe we need a 32bit words after all.

                            2. 7

                              We simply moved away from knowing the details of the things we operate in the details we used to even in a relatively small area where we work (not talking about being able to fix your own car). We kind of settled on the Neumann architecture, settled on binary code, using a monolith kernel with a garbage libc, writing stuff in a language that makes it hard to deal with the things we need to deal with, package it up with an even bigger pile of crap and deploy it the another 5 levels of abstraction just to have a hello world level program.

                              Why does this matter? Everyday, folks buy furniture from Ikea. Ikea itself uses large machines to create their wood composites, and put furniture together. The modern craftsmen that make furniture will use several power tools, from routers to table saws to band saws to put their furniture together by hand. That, of course, depends on power, which itself is dependent on a complicated AC power distribution network; the power itself is generated in highly sophisticated power plants that use precise machinery to generate power. To create a piece of furniture, you must invent the universe. Have we forgotten how to make furniture by hand? The first water wheel powered bandsaws themselves come from the Middle Ages (and developed independently in multiple civilizations), so should we argue that we forgot to make furniture by hand from then?

                              Every aspect of modern life runs on several layers of abstraction. Bridges use carefully machined parts, houses are made from concrete or dimensional lumber, your showers and bathrooms depend on running water, and your paved roads depend on rollers and asphault, even a bicycle itself depends on pneumatic tires.

                              There’s plenty of room to criticize certain aspects of the way software abstractions are built. Software abstractions are cheap, and easy to build, which often leads to leaky abstractions. Software is often created around incentives that treat performance and responsiveness as externalities. Unfortunately, civilization is complicated, and software is becoming complicated as well. There’s no way around it. A lot of abstraction is built around essential complexity, whether that’s in software or in other fields. Rejecting complexity for complexity’s sake can be an “aesthetic” preference or an ascetic one, but I fail to see what is inherently bad about complexity.

                              1. 1

                                Bridges use carefully machined parts

                                What is the abstraction for a bridge? How many layers does it have? Can a bridge designer still calculate and design on paper?

                                1. 1

                                  I agree with you. Still, I would add the remark that software engineers should make an extra effort to distinguish between apparent essential complexity and actual essential complexity. It may be cheap to build software abstractions but they are not always robust and cheap in terms of maintenance.

                              2. 3

                                Bad abstraction is killing civilization. The solution is not to stop abstracting, but to get better at finding the right abstractions. This is an art that we haven’t even scratched the surface of, if only because we are just beginning to experience the magnitude of complexity that we have to deal with to make progress.

                                1. 3

                                  This part is true: five nines means a total yearly downtime of just above five minutes.

                                  My cellphone, iMac, and iPad probably reach that level of reliability. I do reboot for security updates but I see 0 crashes or such failures. My wifi AP is less reliable so I reboot monthly.

                                  1. 3

                                    I believe good abstractions can play a significant role in reducing complexity and bad abstractions can play a significant role in adding complexity. So, I think the message that bad abstractions can cause problems has merit. At the same time, everybody knows some level of abstraction is necessary. What are higher-level languages if not abstraction barriers against writing assembly code? Is it true that software sucks because of bad abstractions? I like the author’s take on it. On the other hand, I think it’s probably easier to create bad abstractions than it is to create good ones. I wouldn’t go so far as to say that civilization is in decline or something like that.

                                    1. 1

                                      I really wish people would stop paying attention to Jon Blow. Just because he’s loud doesn’t mean he has anything useful to say.

                                      1. 1

                                        So it’s accurate to describe him as a… Blow-hard?

                                        I’ll show myself out.