You Don't Need a GUI
GUI is better for discoverability of the most common scenarios (I can right-click to see everything that can be done with the file, including some third party programs). But it&#x27;s bad for composing programs and interoperability, often it&#x27;s impossible or very hard to automate (how many people are doing UI testing? there is a good reason it&#x27;s not many -- it completely sucks)<p>TUI&#x2F;console is very good for interoperability&#x2F;automation&#x2F;muscle memory, but doing one-off things is harder.
If I don&#x27;t remember the `df` command... what do I do apart from searching on the internet? Maybe searching man pages, but it isn&#x27;t as fuzzy (e.g. `man -K &quot;free space&quot;` isn&#x27;t very fruitful). 
In comparison, I know that if I start going through GUI, eventually I&#x27;ll eventually find the free disk space info.<p>It&#x27;s interesting that there is some analogy to object-oriented and functional paradigms -- if I have a rich object in a debugger in Python, I can call dir() on it to immediately see what I can do with it. Whereas if it&#x27;s a simple dataclass, I&#x27;d need to search through code to find how I can use it. Might be a too far fetched analogy though.<p>I think we need all of it, and also need to make the distinction less apparent. Would be nice to make GUIs more composable, and TUIs more discoverable. Ideally it should be a spectrum of interfaces, so you don&#x27;t have to make a hard choice and can gradually move into the direction you want.