Live data from Hacker News

Is software abstraction killing civilization? (2021)

datagubbe.se

161–170 of 219 posts

Re: Is software abstraction killing civilization? (2021)

#161
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…

Agreed.

Blow's taken the better part of a decade to make a game where he didn't even need to invent the mechanics and Muratori never finished a game he started a decade ago.

Meanwhile if you use modern game engines (including stuff like Raylib) you can have a pretty decent result in a weekend game jam session, and you could probably make Blow's Sobokan game in ~6 months or so (especially with a team of ~10).

Re: Is software abstraction killing civilization? (2021)

#162

„ If we forget low level stuff, civilization will fall apart since we won't be able to keep vital software running.“ I argue the other way around. There is too mich complexity involved with using low level systems to model high level processes. We use the wrong tools and often model our system in a way which mimics the initial dataflow instead of discovering our domain and have a higher level understanding. Complexit…

> And we must do everything in our power to keep complexity to its minimum and avoid accidental complexity. We aren't avoiding nor minimising complexity (by being at higher levels) but merely being ignorant of it, which is okay, too; until the abstractions leak: For example, folks working in hpc / cybersecurity have no such luxury.

The idea that abstractions have to leak is a myth. We don't need fewer abstractions, just better ones. Abstractions that don't require obscuring the low-level details (e.g. typeclass/trait systems instead of interface/impl ones) help too.

Re: Is software abstraction killing civilization? (2021)

#163

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…

> But How Do It Know? The Basic Principles Of Computers For Everyone

https://archive.org/details/jclarkscottbuthowdoitknowthebasi...

Re: Is software abstraction killing civilization? (2021)

#164

You make some very good points here. I've watched the talk too and criticism of it is important. I have to say though Blow is right when he says: "you can't just Draw pixels to the screen" I am a game engine programmer at a 'medium sized' games company and it is becoming VERY difficult to hire anyone to work on graphics code. DX12 (and others of the same generation) is a massive step up from what previous generations…

I agree with your point, but DX12 went in the opposite direction of abstraction: it's a much lower level API than the highly abstracted OpenGL.

Re: Is software abstraction killing civilization? (2021)

#165
post #23

Earlier quoted context omitted.

The concept of files and file systems is useful to regular computer users, even when they have no interest in knowing how things work under the hood. The issue is with mobile OSs, and that software companies like their apps to be a walled garden for your data as much as possible, and therefore resist exposing your data as files living in a normal shared file system. Even if you already work with files, they have you…

In the name of low effort, tangential, golden era HN comments: the decision to hide file format extensions on windows (and maybe other OSs) sucks soooo much. The point about mobile devices breaking the desktop metaphor and file system norms is really interesting. Higher quality discussion question: Files, buffers,file systems, file explorers, and window managers seem like useful abstractions to me for the human compu…

File name extensions aren’t an inherent or necessary part of the desktop metaphor. They can be stored as metadata in the file system. Mac OS used to do this.

Re: Is software abstraction killing civilization? (2021)

#166
post #87

Earlier quoted context omitted.

I don't believe this is the root cause, computers got faster, and software got quicker to the state of "run good enough". I'm calling Wirth's law on it. "Clean code" is indeed often a bad idea, but you are overestimating the impact. Even software written by people caring very much about performance consume way more than it theoretically should. Plus, if this was that simple, people would have already rewritten all th…

Wirth's law doesn't bolster your point. He observed software is getting slower at a more rapid rate than computers are getting faster. Which is the whole point. We write increasingly slow, increasingly shitty code each year. I read and hear this attitude all the time that is basically "if you optimize something, you're bad at your job, only juniors try to do that". That's a culture problem. It's frankly insulting you…

Jira runs good enough to get idiot managers to pay for it, which is what it's designed for. And, yeah, microoptimising (or micropessimising, who knows since the changes are usually just made on vibes anyway) random bits of code that probably aren't even on any kind of hot path, while compromising maintainability, is something only juniors and people who are bad at their job do. It's easy to forget how common security flaws and outright crashes were in the "good old days" - frankly even today the industry is right to not prioritise performance given how much we struggle with correctness.

A lot of code is slow and could be faster, often much faster. This is more often because of people who thought they should bypass the abstractions and clean code and do something clever and low level than the opposite. Cases where you actually gain performance on a realistic-sized codebase by doing that are essentially nonexistent. The problem isn't too many abstractions, it's using the wrong algorithm or the wrong datastructure (which, sure, sometimes happens in a library or OS layer, but the answer to that isn't to bypass the abstraction, it's to fix it), and that's easier to spot and fix when the code is clean.

Re: Is software abstraction killing civilization? (2021)

#167

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…

What do you mean by "HTML is what gets rendered by the browser"? In the context of using Javascript to modify the DOM.

My understanding is that HTML is an input to the browser, which is translated to the DOM. (Which is then translated to painting the screen, handling inputs etc.) This is an important distinction in context of your point. React (Or any VDOM or similar JS lib) isn't creating HTML; it's creating a set of DOM manipulation instructions in JS.

Re: Is software abstraction killing civilization? (2021)

#168
post #61

Earlier quoted context omitted.

I like Braid. I do. But, it’s more of a puzzle than a game. Once you figure out the answer, you’re done. Like Myst. Games have some element of skill involved and Blow’s products lack that. And that’s not to knock the products. I like puzzles. And not everything has to be a game. Will Wright has said that he does not make games, he makes toys. Digital toys. I also think people judge his work on his reputation more tha…

I despise Blow but this is a critique that borders on the incoherent. You could just as well say that when you figure out how to hurt enemies without taking damage, you're done with action games.

Being able to execute the action is part of the challenge. Being able to do it once does not guarantee you will be able to do it again.

Neither Braid nor The Witness nor Myst have that quality. Once you know solution, it’s done, it never changes.

You seem to think being a puzzle is an insult. But it’s not, it’s just not a game.

Wentworth and Ravensburg make decent money publishing puzzles. But neither company tries to say this is how all construction should be done. Which is how Blow comes across to me.

Re: Is software abstraction killing civilization? (2021)

#169

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…

I agree with you that it's awful that a lot of young developers wouldn't be able to program without React.

I would like to add as someone would has no problems working without any library that the DOM is one of worst APIs ever invented by humankind and that "reactive programming" is a superior model to what we used to do before.

That being said: - NextJS rolled back years of tooling improvements, it's much slower than Vite - I just statically built a NextJS and a page that has no interactivity downloads 100KB of JS to do nothing with it - Facebook decided to make a "compiler" for React instead of just not pointlessly re-rednering components by default - Compared to Preact which is almost a drop in replacement, React is huge! This shows how little Facebook cares.

Re: Is software abstraction killing civilization? (2021)

#170

You make some very good points here. I've watched the talk too and criticism of it is important. I have to say though Blow is right when he says: "you can't just Draw pixels to the screen" I am a game engine programmer at a 'medium sized' games company and it is becoming VERY difficult to hire anyone to work on graphics code. DX12 (and others of the same generation) is a massive step up from what previous generations…

Blow's talk made me realize I'm not crazy when I get frustrated about basic things being incredibly difficult. Drawing a button to the screen when you want to build a software application has become so difficult that most people just use a progressive web app which is 100x slower than is possible. Are the best options for GUI applications in 2025 really Java Swing and Qt?
Post reply on HN