I wholeheartedly agree with you; a system based on structured data or objects would be much better than what we have today. What I've been dreaming about for years is a system where everything is an object, much like Smalltalk. Instead of typing "ls" in a terminal window, you would send a get_files request to the current directory, which would return a list of file names. It's possible to emulate the traditional Unix "ls" command, but interacting programmatically with the system enables so many other uses that's much easier than parsing text or calling POSIX system calls. Because the user is working with objects instead of text, not only would it be easier to write scripts compared to Unix shell scripts, it would also be easier for developers to implement GUI tools for the system. For example, imagine if word processing documents were represented by a class that handled all sorts of manipulations of the document, hiding the details of the underlying file format from the user and developer in most cases. It would be easier to come up with scripts for generating and modifying word processing documents without having to use the word processor's macros (if they're available in the first place) or without having to dive deep into the underlying file formats of the documents.
[1] http://www.bitsavers.org/pdf/symbolics/software/genera_8/Pro...
Cool, I'll be following that. To me, one of the most interesting aspects of Genera is the command line interface, where commands know their arguments' names, types, defaults, and help strings. The commands can output nicely formatted data such as tables and, because they're just Lisp functions, they can share structured data directly rather than parsing and serializing ad-hoc text formats as is that's typical in the Unix world.