Agreed. For sharing a filesystem, I assume the best you can do today is probably FAT32 (or whatever the latest of that family is), which is not great.
Why can't we get people from major tech companies together and have them develop a good on-disk format which supports the features we all need, and then everybody can go back and write their own implementations? Like we do with Unicode, or IP. And like we should do for many other features.
For all the talk about the importance of separation of interface and implementation, operating system designers really suck at it.
The modern answer is exFAT. August last year Microsoft opened up the specifications, and pledged that it won't be patent encumbered[].
How well an operating systems has a separation of concerns between interface and implementation really has very little (unfortunately) to do with business incentives. Even if the Linux kernel had perfect separation of concerns, there's no way to force Microsoft or Apple to support it in their products.
Amazingly, the web folks seem to be doing OK on this front. They often manage to miss the xkcd#927 trap. What I see (admittedly the simplified public version) is more like:
- Here's a standard that kind of works and everybody is using it.
- Hey, we invented this cool new thing that isn't part of that standard but people seem to like it! (XHR, Canvas, ...)
- OK everybody let's put that into the standard as well so we can all agree on how it works. Thanks!
There was no way to "force Microsoft or Apple" to make a web browser, either, and yet they both did, and made it part of their operating systems.
FAT32 is too modern in some cases. I had to fall back to that recently to use with a fairly recent commercial photocopying machine (of the kind that can do full color, A3 paper, staple and fold outputs, etc, so not bottom line).
And I think that, “For sharing a filesystem” nowadays your best option is ”the cloud” for most people.
Why can't we get people from major tech companies together and have them develop a good on-disk format which supports the features we all need, and then everybody can go back and write their own implementations? Like we do with Unicode, or IP. And like we should do for many other features.
For all the talk about the importance of separation of interface and implementation, operating system designers really suck at it.