Simplicity In the Age Of The GUI
evenprime writes: "Wired is running a story on Mark Hurst's extremely retro GoodEasy computing environment, and how it's old fashioned *nix approach to computing -- flat text, small simple programs that can be chained together -- increases user productivity" It's an interesting, hyper-simple approach, though any user outside of Mark's agency would have to apply some creative adaption. Every few months, I try to re-organize and simplify the documents and programs on my system, this looks like a good experiment for the next time.
Microsoft's Word, Excel, PowerPoint, and much of Access, are all built around the idea that bits are most useful when converted to atoms.
...
Unix uses quick-to-transmit plain text files instead of large, slow, printer-centric documents. Unix ties together multiple small programs to create systems both simple and powerful, instead of building complicated, monolithic applications that must compromise between flexibility and ease-of-use.
So Microsoft application's are based on the idea that computer users eventually want paper but Unix isn't -- but it's text-based?
I personally prefer to develop my code in a Unix, non-IDE environment, but I still think that piping text around is a real throwback. Even slightly advanced users will find themselves gluing bits of data together in a single line of text, and then using something along the lines of regular expressions to pull it apart.
For example, think about stdout and stderr. In Unix, you need two separate streams. Interleaving them is a bad idea because then you can't tell text in one stream from text in the other. You could have a single stream of output if each item in the stream were, let's say, a Text object or an Error object. You could then, in the next application down the pipe, choose to examine either Text object or Error objects, or pay attention to both. Also, the interleaving of Text and Error objects would convey useful information; something that's harder with two independent streams.
If you like the ideas of command-line, and small functional units that can be composed, and you want to build an environment from scratch, why focus on text as the main paradigm? Other things that programs could input, output and pass around include objects and tuples, which would have more intuitive tools for putting together and taking apart complex data that would otherwise be encoded into a line of text.
...a program that watches what I type and when it sees me repeating a word or phrase several times, suggests a short cut without interrupting me, e.g. displaying it in the info bar at the bottom of the window. For example, if I keep typing "String", it might suggest [S][T][space] as the shortcut.
I don't want to have to stop working and think up shortcuts since the computer would be better at identifying which words and phases I use most. I don't want the computer to try to guess what I'm going to do next since no matter how good it was, it would still piss me off when it was wrong (and it's none of the computer's business whether I'm writing a letter).
Where can I find it?