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 computer user. Why did we not end up with something like “every app has a folder with your files” or “if you have a new iPhone, just send or recover your user files from the official Reddit app on your old device and import them to carry on where you left off on your new device. Welcome back to the Reddit app.”
Because that's anti-thetical to control. The biggest sin in a technology business is allowing your customers to stop using your product with no negative consequences for them.
If you're making software or hardware for millions of users then abstraction becomes your friend in a variety of ways, some of which are immediately obvious and some of which are not.
I used to work for a company which sold software for both desktop and mobile. The earliest versions of the mobile software assumed you also had the desktop software: it was more of a companion to the desktop software. That changed over time, and it was a painful migration because we had to build a lot along the way. It was kind of like in a game where you're running through the sky building a walkway in front of you as you go.
Over time not having some kind of seamless syncing and handheld migration option became a liability for a variety of reasons, and a big economic one was support overhead. Asking users, at scale, to do things with files on their mobile devices (let alone with both their mobile device and computer) was asking a lot. So much so that we ended up expending an increasingly economically unjustifiable amount of time hand-holding users through very basic steps. Our technical users got it just fine, and we basically just had to provide cover when something unexpected or untested happened, but that was a minority of users.
I agree with the general sense here that it's to our detriment generally that basic computer literacy for things like files and folders is decreasing, and that it's made worse by trying to abstract those primitives away. On the flip side, the market is going to serve itself best by meeting people where they are. Businesses aren't going to try to educate people, they're just going to take the path of least resistance which only serves to enable (or you like, underwrite) a continued regression in basic computer literacy.
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.
Bundles are just folders with a bunch of files in them. How does that invalidate the concept of files?
Bundles are an attempt to simplify file format development, or can be seen that way, but it failed exactly because they are folders not files, and therefore aren't really usable because they can't be easily transmitted. You can't drag a bundle onto an email, or upload it to a file sharing platform, or send it via Bluetooth. Apple used to use bundles for iLife word processor documents, spreadsheets etc. They had to give up because it caused too many problems. Nowadays they use ZIPs like everyone else.
Intricacies of file systems have always been a means to an end for regular computer users.
And as someone who had their house (whole town actually) burn down recently, cloud storage saved all my data, thousands of baby photos, etc...
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
Here's another: Your device contains a bunch of photos and videos. Photos are identified by looking at them. Videos are identified by a still image, or by playing the video within the video chooser.
Here's another: Your device contains a bunch of apps. Apps can organize their own data however they see fit.
... Microsoft's OLE really was the most well-integrated document-centric desktop we ever got, wasn't it?
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.