Modern desktop operating systems are bloated, slow, and layered with legacy cruft that still functions only thanks to Moore's Law. Innovation in desktop operating systems stopped about 15 years ago and the major players are unlikely to heavily invest in them again. We can and should start over from scratch, learning the lessons of the past.
-This idea was sourced from a blog post and used with permission from its original creator, Josh Marinacci -
All applications become small modules that communicate through the message bus for everything. Everything. No more file system access. No hardware access. Everything is a message.
If you want to play an mp3 you send a play message to an mp3 service. You draw by having the compositor do it for you. This separation makes the system far more secure. In Linux terms each app would be completely isolated through user permissions and chroot, or perhaps all the way to docker containers or virtual machines. There's a lot of details to work out, but this is very doable today.
Module apps would be far easier to write than today. If the database is the single source of truth then a lot of the general work of copying data in and out of memory can go away. In the music player example, instead of the search field loading up data and filtering it to show the list, the search field just specifies a query. The list is then bound to this query and data automatically flows in. If another application adds a song to the database that matches the search query, the music player UI will automatically update. This is all without any extra work from the app developer. Live queries make so many things easier and more robust.