Ideal OS: Rebooting the Desktop Operating System
This sounds like a rant from a person not really acquainted with operating systems.<p>&gt; Why can I dock and undock tabs in my web browser or in my file manager, but I can&#x27;t dock a tab between the two apps?<p>How would this even be semantically meaningful? What about top-level components like menus which are completely different?<p>&gt; Why can&#x27;t I have a file in two places at once on my filesystem?<p>Umm, soft and hard links do exactly that.<p>&gt; Why can&#x27;t I speak commands to my computer<p>Cortana takes a shot at that. Personally, I don&#x27;t even want to try out the feature until it has the level of comprehension corresponding to a human. Otherwise, I&#x27;ll just be guessing how to spell out my sentences &#x2F; commands..<p>&gt; or have it watch as I draw signs in the air, or better yet watch as I work to tell me when I&#x27;m tired and should take a break.<p>Because these are hard problems in computer vision, unrelated to operating systems.<p>&gt; Each application has its own part of the filesystem<p>Yes, I wouldn&#x27;t want to give up on that. It&#x27;s orderly.<p>&gt; its own config system, and its own preferences, database<p>Well, Windows unifies this in the registry. It&#x27;s somewhat unpopular.<p>&gt; Traditional filesystems are hierarchical, slow to search, and don&#x27;t natively store all of the metadata we need.<p>NTFS can store extended metadata + arbitrary data in alternate data streams. Doesn&#x27;t seem to be used very much.<p>&gt; I&#x27;d like to pipe my Skype call to a video analysis service while I&#x27;m chatting, but I can&#x27;t really run a video stream through awk or sed.<p>The video stream is a stream of bytes. Skype interprets it and constructs a video from that byte stream. Does he suggest that this interpreter should be part of the kernel? That there is one single video streaming protocol that fits all purposes?<p>&gt; Native Applications are heavy weight,<p>Um? I have yet to see a &quot;non-native&quot; application that is as snappy as a native one.<p>&gt; take a long time to develop and very siloed.<p><i>Any</i> application takes a long time to develop. If you care about stability, crash recovery, etc.<p>&gt; Wouldn&#x27;t it be easier to build a new email client if the database was already built for you?<p>Exists, integrated in the Windows OS: <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Extensible_Storage_Engine" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Extensible_Storage_Engine</a><p>&gt; The UI would only be a few lines of code.<p>It&#x27;s logic behind the UI that&#x27;s complicated, not building the UI itself (heck, you can just draw it if you use C# or VB).<p>&gt; If you want to make a program that works with the song database you have to reverse engineer iTunes DB format<p>Even if the hypothetical document DB existed, how would one program know about the schema of other programs? Or schema versioning, or...? The problems with proprietary formats won&#x27;t just disappear, it&#x27;ll just become easier to do the wrong thing based on misinterpretation of the other program&#x27;s schema.<p>&gt; Message Bus [...] All applications become small modules that communicate through the message bus for everything.<p>COM, DCOM, CORBA... The first two are made user-friendly on Windows by C#. Don&#x27;t know whether it&#x27;s possible to snoop on COM messages, but given the thickness of the documentation on COM, I&#x27;d say the answer is &quot;yes&quot;.<p>&gt; However, this also means we have to rebuild everything from scratch.<p>Yes. Windows already exposes an insane amount of helper objects as COM components.<p>&gt;  You could build a new email frontend in an afternoon...<p>In which alternate universe?<p>&gt; I really like the commandline as an interface sometimes, it&#x27;s the pure text nature that bothers me. Instead of chaining CLI apps together with text streams we need something richer, like serialized object streams (think JSON but more efficient).<p>He should read up on Powershell. It&#x27;s also extensible and can directly invoke COM components (+ all of the .net framework).<p>&gt; System Side Semantic Keybindings<p>That one may be original. I think KDE has something like this.<p>&gt; The clipboard should be visible on screen as some sort of a shelf that shows the recent items I&#x27;ve copied.<p>IIRC, I&#x27;ve seen something like this in KDE. Earlier versions of Windows had some &quot;clipboard manager&quot; too, though it seems to have disappeared in new versions. Plenty of freeware ones though.<p>&gt; In the new system all applications are tiny isolated things which only know what the system tells them.<p>That&#x27;s how Windows UWP applications behave. Appstore ones too. IIRC, some old, then-mainstream OS-es tried the kind of separation and it didn&#x27;t work well with users. Sometimes you want to share data between isolation domains.<p>&gt; None of this is New<p>No, and it seems that, feature-wise, Windows is closest to his dream OS. Now he just needs to convince programmers to use the features that are already there :-)