Live data from Hacker News

Is software abstraction killing civilization? (2021)

datagubbe.se

171–180 of 219 posts

Re: Is software abstraction killing civilization? (2021)

#171

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…

[deleted]

Re: Is software abstraction killing civilization? (2021)

#172

Earlier quoted context omitted.

> You can't believe how absurdly out-of-whack it is to state that a modern high-end PC would somehow "struggle" with text rendering of any sort! I never said that. What I said is that modern text rendering--rendering vector fonts instead of bitmap fonts, having to deal with modern Unicode features and other newer font features, etc.--is a more difficult task than the days when text rendering was dealing with bitmap f…

> This implies to me that you believed that the primary reason Unicode is slower ASCII is because it takes twice as much space, which I hope you agree is an absurdly out-of-whack statement, no? Actually, this precise argument comes up a lot in the debate of UTF-16 vs UTF-8 encodings, and is genuinely a valid point of discussion. When you're transferring gigabytes per second out of a web server farm, through a console…

I continue to be mystified as to why you think I am commenting in any way on the quality (or lack thereof) of the Windows Console.

Re: Is software abstraction killing civilization? (2021)

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

Files have big downsides for both users and developers, which is why they have largely been phased out other than for specialised pro use cases:

1. Many users find recursive data structures like trees to be confusing. Recursion is the place where a lot of students fall off the train when learning programming. Trees are fundamental to file systems and explorers, but they aren't intuitive to a lot of people. That's why every app now starts with a screen that highlights recent documents and search.

2. Developers hate files because files suck. They're just flat arrays of bytes. You have to define file formats and that is really hard work many programmers have never done. Databases are where it's at but RDBMS tech never standardised file formats, hence the appeal of SQLite's "use an rdbms as your file format" elevator pitch. Apple/NeXT tried to partly fix this with the concept of bundles, but our industry never standardised a way to transmit directories that works better than PKZIP so bundles hardly work and Apple had to give up on them in most cases. None of the protocols we use understand how to move directories around.

Re: Is software abstraction killing civilization? (2021)

#175

Earlier quoted context omitted.

God, you're right, this is almost as bad as those "well chemistry is just applied physics and physics is just applied mathematics so math is the best" nonsense that shows up every so often.

... And math is just applied philosophy, and philosophy is just applied wine drinking. So let's drink some wine and be merry.

I am of the firm conviction that ganja produces better philosophy than wine.

Re: Is software abstraction killing civilization? (2021)

#176
post #23

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…

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…

I'll argue that files and filesystems, as we know them, aren't such a great API. [1]

Before we had the hegemony of Unix, for instance, it was expected that operating systems had richer concepts of files, such as files which a record-oriented or block structure, ISAM [2], Record Management Services [3], etc.

What happened was that Unix inspired a generation of microcomputer operating systems, and on top of that, Unix implementation of its own abstractions are poor. For instance, I wouldn't trust any kind of file locking to work on Unix at short of "directory creation being atomic" but even Luu isn't so sure about that one. Contrast that to the Win '95 era in which you could run multiple copies of Microsoft Access on different machines over an SMB file system and expect locking to work properly.

Post-2010 or so there has been a bifurcation between distributed systems that implement simpler but more scalable and reliable 'file-like' APIs like S3 (random access writes are like... aspirational, aren't they?) vs libraries that do what old facilities like DEC's DATATRIEVE did for which I'd include SQLite, Apache Arrow and such. It used to be those facilities had some support in the kernel whereas things like that now are almost entirely userspace.

[1] https://danluu.com/deconstruct-files/

[2] https://en.wikipedia.org/wiki/ISAM

[3] https://en.wikipedia.org/wiki/Record_Management_Services

[4] https://en.wikipedia.org/wiki/DATATRIEVE

Re: Is software abstraction killing civilization? (2021)

#177

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.

Yet these "lower-level" APIs, DX12 and Vulcan, often don't significantly out perform DX11, and in many cases DX11 performs better. I put lower-level in quotes because those APIs bake assumptions about the hardware into their API which shouldn't be there to begin with because they frequently prevent drivers from getting the most out of the hardware.

Re: Is software abstraction killing civilization? (2021)

#178
post #79
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…

Files and directories are just one of many possible abstractions for storing data. You have files and directories. Directories contain files and directories. Your whole device is one big directory. Files are identified by name. There's absolutely no reason to think this is the best possible model. Here's another: Your device contains a bunch of photos and videos. Photos are identified by looking at them. Videos are i…

... OLE is one of those things that have been forgotten under POSIX hegemony.

What people remember of the Office '95 file formats was that they were 'proprietary' but it was worse than that in the sense that these were really meta file-formats that would let you embed a 'file' inside a file which would be handled by some arbitrary EXE, so to process any Office '95 file you really need a Windows installation with all the EXEs and DLLs required by that file, thus when Microsoft came out with ActiveX [1] I was really terrified that you'd need a Windows computer to browse the web in a year or two.

I find the 'app' model to be user-disempowering thing since the app chooses what you can do with the data, but 'photos' and 'videos' are something really different because there is a standard format for those so I can take photos with my DSLR or my tablet or make images with a Python program or edit them with Photoshop or MS Paint or the GIMP and view them with different apps, print them out, upload to a web server, etc. A system could provide a different API for accessing this kind of functionality but I'd say it is fundamentally a step back to have to read data with the same program you wrote it with.

[1] https://en.wikipedia.org/wiki/ActiveX

Re: Is software abstraction killing civilization? (2021)

#179

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…

When I was a child watching my dad fix things around the farm. I was amazed at his power to manipulate the physical world; welding, angle grinding, hammering, etc.

I was always amazed by the back of the television and asked him "Dad, how does electricity work?". He didn't know.

From that moment, I was imbued with purpose.

When we got our first computer I sought desperately to know how it worked and how it was built.

My first year of computer science at university was uninspiring. I learned to code but I wanted to know how people coded without operating systems, without using a computer. I was annoyed by the chicken and egg nature of it.

In my second year we did the "hardware/software" interface and read Patterson and Hennessy's Computer Architecture and Design.

When we made our way to the diagram of the basic von Neumann architecture, my childhood questions, that previously no one could answer, was answered.

The world made sense. And it was the class your now teaching that finally satisfied my childhood questions.

Re: Is software abstraction killing civilization? (2021)

#180

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?

Putting pixels on the screen isn't difficult. Putting them on a screen across hardware in a performant manner is the difficult part because it is difficult.
Post reply on HN