Microsoft's latest operating systems are boasting a great "new" feature, Windows PowerShell. If you haven't seen PowerShell yet, it is a complete ripoff of the Unix-based shells that have been around for decades. Over the years, Microsoft has continuously made its software completely GUI-based, point and click, and has criticized other operating systems that used the command line. Windows had a shell type of program called "cmd" or "command", but it was extremely limited. All of a sudden though, PowerShell popped up and now products like Exchange Server 2010 utilize the shell extensively. In fact, there are some features of Exchange 2010 that can only be accessed with the shell, and not through the GUI-based Exchange tools. It seems Microsoft has done a complete 180 on its stance.
It's pretty clear that Microsoft has discovered the value of the shell, since it has integrated it into Windows Server 2008 and Windows 7, the latest operating systems. However, other more stable operating systems like Unix, Linux, and other flavors of Unix, have used shells like ash, bash, and others for decades. And, they have proven to be essential. The shell is an extremely lightweight yet powerful tool for tackling just about any operation you could want. The nice thing is that the shell is completely text driven, so that it can be used over small data links like modems, even though modems are becoming extinct these days.
But, Linux and other Unix flavors still have an advantage over Windows. Decades of refinement for one. Windows' implementation of the command line is still a little limited. It would take Microsoft quite a long time to catch up and try to match the huge array of command line tools available with Unix/Linux. Also, Unix/Linux is still (thankfully) based on the command line, then the X11 Window System adds the GUI-based functionality on top of that layer. This provides easy troubleshooting when X11 has problems, and is even more ideal for servers where you don't need X11 running on the server all of the time, so that administrators can perform tasks from the command line without tying up other resources that would have been used by X11. Microsoft Windows has the GUI-based piece running 100% of the time.
Moving forward though, what will Microsoft's operating systems be called, if they become more and more command line driven? Will "Windows" still be an appropriate name?