Updated: June 20, 2009
Let's begin this article with a question: what is the operating system known for using the ps command line utility for displaying the list of all processes running, ls for listing files in a directory or the clear command clearing the monitor screen of all output? If you answered: Linux or alike, then your answer is only 50% right.
Recently, Microsoft have come out with a new command line shell and scripting language, aimed at giving serious computers users the ability to achieve similar levels of control and productivity that they enjoy working on UNIX-based operating systems. It seems that Redmond chaps have finally realized that GUI may be nice, but real people work with scripts and text files. PowerShell is included with Windows Server 2008, but you can also download and use it on Windows XP, for instance, the next best thing to actually running Linux.
Overall, PowerShell seems like an refreshing idea. But what makes it really interesting is the choice of commands. For example, like I said before, you can list the directory contents with ls, see the running processes with ps or clear the screen with clear - rather than using the standard DOS cls.
To demonstrate this, I've made a short Flash movie using the excellent Wink presentation software. Here it is:
And here's a staggering GIF animation emphasizing the point ever further:
Man, my image processing skills are incredible!
On a serious note, PowerShell seems like a nice, refreshing edition to the Windows arsenal. If you're an open-source die-hard evangelist, you may oppose this tool as a feeble attempt by Microsoft to infuse life into their dying projects. But if you're a little more pragmatic, you may realize that the introduction of PowerShell is a clear sign of a sort of a UNIX victory, when it comes to getting-the-job-done mindset. The world of IT professional requires serious tools to be productive and effective - and they can only be found in the command line.
PowerShell may also lead to a wider adoption of better standards, less dependency on GUI and more focus on compliance and cross-platform cooperation. And it surely means the command line is far from becoming obsolete. On the contrary. The UNIX-based world is becoming more popular, day by day. The trend is clear and PowerShell is yet another testimony to that. On a funny note, we have Windows running Linux commands. So what shall we call it? Lindows? Windux?
If you're a Windows user who likes to dabble in little details, PowerShell can be a nice addition to your toolpack. It may also help you migrate more smoothly to Linux, should you choose to do so one day. Commonality of command names is also quite useful. DOS users will also be very much pleased.
Call me naive, but I find the Windows command line to be smart and useful. For someone who likes to get job done the right way, without visual distractions of GUI programming, command line is the right choice. You may also want to take a look at unxutils for Windows. For now, happy scripting!