To me, the aesthetic of *nixes is the way everything is neatly arranged around the same set of relatively simple abstractions: executables, shell scripts, processes and text files. Yes, there's a learning curve, but once you're around the bend it's pretty flat. Skills are generally general -- once you know how to do X, chances are you've touched a great deal of the tools you need to Y.<p>Windows is somewhat simple (but unreliable) on the outside, and completely inaccessible on the inside. If you want to interact with the innards of Windows, there's somethings you can do in the registry, some things you need Scripting Host for, some things can be done in .NET, others you need COM for. Documentation for these things are spotty (you might find a guide for doing something in COM, in C++, and need to pair that with another guide on how to do COM in .NET). The learning curve maybe isn't as steep, but it keeps its inclination all the way to the wall you're bound to hit. There's little generality in skills -- once you know how to do X, you're still almost all the way back to square one on how to do Y.
There seem to be two sort of unrelated criticisms here. One's a preference for GUI (or at least full-screen console-mode) interfaces over CLIs, and generally for fewer config files and command-line options. The other is a dislike of chaining piped commands, and a suggestion that integrated scripting languages like Perl are the replacement. But those seem like two pretty wildly different directions to go in. And there doesn't seem to be any argument for either of the points, just personal preference ("I don't like the Unix aesthetic, and you shouldn't either").<p>The more specific examples are pretty weird, also. Just about every Unix comes with a full-screen text file viewer ('nano' is a decent one). If you don't like bash, you can use a different shell; I mean, he was willing to use a third-party shell on Windows, why not on Unix? One option: <a href="http://fishshell.org/" rel="nofollow">http://fishshell.org/</a>
"By way of comparison, on my home PC I used a third-party command shell called 4DOS [...] It had a wonderful command line history mechanism: type part of a command, then press up-arrow."<p>Want in bash? Add to ~/.inputrc:<p># up and down arrows do <i>incremental</i> history search<p>"\e[A": history-search-backward<p>"\e[B": history-search-forward
I used Suns as my primary development environment from '89 to '96 and I really don't recognize most of those complaints - just about everyone I knew used emacs, xman was pretty handy for reading man pages and the supplied Sun manuals were awesome.<p>I'm pretty sure I used ksh that had interactive command line history as well.<p>I've used a lot of different Unix variants (BSD, Ultrix, OSF/1, SunOS, various Linux distros) and while they were all quite different they all had and continue to have common logical structure that eludes some newer operating systems I could name.
I just finished reading <i>The Art of Unix Programming</i>. Eric Raymond gives insight into exactly why this is a bad analysis.<p>Regarding the anti-CLI argument:<p>GUIs are helpful for one-time tasks... things that don't require much repetition. They are discoverable (i.e., the learning curve can be easier) and easier for non-technical users.<p>However, as one understands the CLI and the power of DRY code, one gravitates towards it for its power, simplicity, reusability, and transparency.<p>Commandline options only make the programs more versatile and scriptable, further boosting productivity.<p>Of course we could do a bug-by-bug comparison of standard Unix tools to standard MSFT tools, but I'd rather not go there.
Unix is bad, crusty and getting less relevant due to how computers are becoming more distributed and less as a single system. Linux may be the top of the herd right now but sooner rather than later there is going to be a huge paradigm shift into distributed computing. Linux will have no place in distributed computing without either layers upon layers to the POSIX API (aka backwards compatibility) or well a new operating system.