Live data from Hacker News

Is software abstraction killing civilization? (2021)

datagubbe.se

41–50 of 219 posts

Re: Is software abstraction killing civilization? (2021)

#41
post #12
post #10

Blow often makes fantastic points about development, and often completely misses the mark. He’s accomplished great things and has ideas worth listening to - but also plenty of nonsense that’s presented indistinguishably. I felt quite strongly that the collapse of civilisation talk was one of those pieces of nonsense, and I’ve largely ignored it (despite listening to it twice). I’m grateful to OP for providing a more…

Does he though? It seems like he just makes these broad critical statements then pisses off to continue to do nothing. I wouldn’t even say he’s accomplished great things. He’s accomplished some decent things. He’s released two games which barely qualify as games. They’re more like puzzles. You don’t need to play them ever again after you finish the first time. Braid is ok. And the Witness is just Flow. And then after…

> He’s released two games which barely qualify as games.

Everyone's entitled to an opinion, but it's worth pointing out that Braid is not only widely considered one of the best games ever made[0], its success was also instrumental in the explosion of indie games in the late 00s/10s. The Witness didn't quite reach the same heights, but it got an 87 on Metacritic and was a financial success.

Even if it's only two games, that's a much stronger resume than most. You can argue that he takes too long to develop games, but other studios also take 8 years to make games and come out with Concord or Dragon Age: Veilguard.

[0] https://en.wikipedia.org/wiki/List_of_video_games_considered...

Re: Is software abstraction killing civilization? (2021)

#42

I teach the systems class at Montana State, where we go from transistors up to a real computing system, and I have students that don't understand what a file system really is when they start my class I agree that blow is wrong on some details, but I really think we need to be thinking hard around a NAND-to-Tetris style education that starts in high school for our technical students. I use "outdated" models like Littl…

I'd strongly suggest having a look at the Cardiac [0] and MIX [1] computers. Shift operations are pretty important and having a dedicated multiplication/division is also very useful.

The fact that all of these are (or can be) decimal machines makes it much easier for people to understand what's going on.

Jumping to binary before you understand how a computer works is like learning logic in Latin.

[0] https://en.wikipedia.org/wiki/CARDboard_Illustrative_Aid_to_...

[1] https://en.wikipedia.org/wiki/MIX_(abstract_machine)

I've been playing around with a modern version of the cardiac, drop me an email if you'd like to collab on testing it on live students.

Re: Is software abstraction killing civilization? (2021)

#43
> I'm not a historian and will not comment on this first part of the talk. It doesn't matter much,

Okay.

> What is robust? ... Is it the multi-year uptimes of a plethora of ...

Big uptime systems are dubious. Probably a lack of kernel patches, hardware patches, and who know if, on reboot, the system will actually boot and start the relevant services correctly. A bank once had their mainframe fail, and they were flailing around for a good long while, possibly because it had been about a decade since their last failure and everyone forgot what to do, or maybe Bob had retired. Or how about that host that boots four years into the future and now various things are quite broken? There was NTP, but an unrelated change had broken that on some firewall. "Normal Accidents" are somehow a thing in complex systems, as are black swan events. Quite possibly either or both were involved in the late bronze age whateveritwas, but naturally history doesn't matter much.

> Oh, and garbage collection and functional programming aren't new abstractions. Lisp did both in the late 1950s

PAIP (Norvig) recounts that the garbage collection was so bad it was turned off and the LISP machines were let run until they ran out of memory, at which point they were rebooted. I guess this is a point for improved robustness in certain areas, though there are probably still "/5 * * * reboot-something" type cron jobs out there for services that leak too much memory. No, management did not grant time to fix that service last I had to put in the most recent five minute reboot script. Many don't get such a intimate view of the rusty bowels of the internet.

> open up a Unix-type command line in Linux/MacOS/*BSD/WSL, type "ed" at the prompt and see how far you get with your text editing

Some wacky systems do not install ed, or link it to nano or some other nonsense, so you may need to actually install ed to get the standard editor. If you happen to be stuck on such a system, `busybox vi` is tolerable—vim gussied up with color spam is not, especially the unreadable blue on the black console—though learning enough about ed might be good if you, hypothetically, ever have to fix an old system over a serial line at 3AM in the morning. There isn't much to learn for such cases, "a" to append new lines, "." on a line by itself to end that, "/foo" to search, "c" to change that whole line (and then the "." thing) and then "wq" to save. Great for edits were you don't want other folks seeing the contents of, say, /etc/hostname.wg0. Or sometimes a cat of the file should be done to preserve it in the scrollback buffer, which has saved a non-zero number of configuration files across the internet. Ideally this sort of disaster training should be practiced by some now and then, but that does take time away from other things.

Back to the unloved history thing. A collapse can take a few centuries, which may be a problem given the recent emphasis on the current sprint or how the stock will be doing Tuesday (as opposed to the lease for Hong Kong, though a hundred years is a magnificently short period of time). So a few folks crying wolf or playing Cassandra might be a good thing to help point out past issues and maybe from that future shocks can be made less bad.

And of course one should beware the C people.

Re: Is software abstraction killing civilization? (2021)

#46
Not all simplifications are abstractions. Not all abstractions are simplifications. But the pursuit of simplification is usually what motivates an abstraction. I don’t think that abstractions kill software, or civilization for that matter, but ill begotten abstractions in the name of short win simplifications, puts a drag on the flexibility and agility and approachability of either.

Take syntactic sugar in just about any language. There’s usually a breaking point, where you can say the localized gain in simplification for this particular nuance is not worth how complex this tool (language) has become. People don’t make more mistakes in a syntax heavy language because of any particular element, but because using the tool well to solve complex problems just gets difficult (regardless of what a compiler might guarantee you).

I look at the complexity that async and coroutines adds to my experience when programming anything “threaded like” in Kotlin compared to how I deal with the same sorts of problems in Elixir/Erlang and it’s just night and day difference. Both have abstractions/simplifications to the age old problem of parallel/async computing, but one (the former) just multiplies simplicities to end up with something complex again and the other has an abstraction/simplification that Just Works(tm) and really is simple.

Re: Is software abstraction killing civilization? (2021)

#47
post #30
post #12

Earlier quoted context omitted.

Does he though? It seems like he just makes these broad critical statements then pisses off to continue to do nothing. I wouldn’t even say he’s accomplished great things. He’s accomplished some decent things. He’s released two games which barely qualify as games. They’re more like puzzles. You don’t need to play them ever again after you finish the first time. Braid is ok. And the Witness is just Flow. And then after…

I think you're getting close to ad hominem. It should be sufficient to point out how little overall people like Blow have accomplished. Blow is a hard worker, and yet it took him and his team 8 years to develop The Witness, which as you pointed out isn't anything revolutionary. I think there's a weird form of elitism at play here. Working close to the hardware isn't hard. There was a point in my early 20s where I too…

The Witness isn't revolutionary, but it is crafted with the care of someone who cares about the small details of 3D worlds. Besides being easily one of the deepest/broadest puzzle games of the decade, it is GORGEOUS, and filled to the brim with visual scenes that take your breath away.

To me it's something more akin to the iPod. "No wireless. Less space than a Nomad. Lame." was absolutely a correct way to dismiss it as nothing revolutionary. And yet it's perfect well-rounded craftsmanship WAS revolutionary.

From what it seems, Blow is doing exactly the same thing with his next game too. And there's something admirable about that.

I say this as someone who disagrees with 80% of what he says, but VEHEMENTLY agree with the remaining 20.

Re: Is software abstraction killing civilization? (2021)

#48
One reason I like Rust is it lets me replace a lot of high level Python stuff with faster and more correct code while also opening access a new world of low level C stuff I never had an opportunity to learn about, it’s been super fun to tinker with and I look forward to keep working with it!

Definitely good to broaden our horizons but also crucial to maintain focus…there is so much to learn, how can we balance the joy and productivity of software with the strategic imperative to build locally grown hardware?

Re: Is software abstraction killing civilization? (2021)

#49
post #27

I think JavaScript on the server and React and these things has really made the web a mess of software development compared to how little stuff it actually does. I know for a fact a bunch of kids now do not even know that HTML is what gets rendered in the browser. They think that React is itself what browsers render. Not to mention the absolute idiot of a CEO of Vercel who thinks React is the Linux kernel of developm…

> They think that React is itself what browsers render My kingdom for native JSX in the browser. That would be awesome . Something similar to how we have WebGL and Canvas, but for pure JavaScript UI without the extra step of DOM reconciliation. There’s a small (and growing) cohort of people working on rendering React Native directly on canvas or webgl (I think). Supposedly gives you super smooth UX, but I haven’t kno…

> super smooth UX

I think typical front end developers (or the managers they report to) don't really know what smooth UX is. They keep reinventing things like scrolling.

Re: Is software abstraction killing civilization? (2021)

#50

I teach the systems class at Montana State, where we go from transistors up to a real computing system, and I have students that don't understand what a file system really is when they start my class I agree that blow is wrong on some details, but I really think we need to be thinking hard around a NAND-to-Tetris style education that starts in high school for our technical students. I use "outdated" models like Littl…

We can't train every engineer with the goal of making them qualified to be the CTO of a complex systems engineering organization. People who end up in those roles learn what they need to know themselves over time, anyways.
Post reply on HN