I have just spent a very interesting hour watching Dale give a talk about PowerShell- he has a summary on his blog if you haven’t come across it before. Until today I was only vaguely aware of its existence but hadn’t had the time to take a look, so I’m very glad Dale took the time to share his presentation.
My immediate thought was how much it reminded me of the excellent OS/400 CL commands (I used to work with MQ on the AS/400 in my youth and, on a slight tangent, am quite fond of the rather splendid WRKMQM). Among other reasons for liking CL, I think it proves that it is possible to have a very usable command line interface; a concept which, while lost on some people, is very definitely evident in PowerShell.
What became clear was that the power in PowerShell is largely derived from its object orientated nature. No need for tortuous string parsing between piped commands (or commandlets in PowerShell speak). For example, instead of having to process a text list of process information, you get a list of process objects, which you could then display as a list, or simply select one to end (or all of them in Dale’s case- oops!). You can also extend PowerShell very nicely to add product related commandlets which, keeping the same noun and verb format along with all the generic commandlets like Sort and Select, make picking up a new product much easier for an admin.
So, cross product: good. Cross platform… hmmm, I wonder… Mono? Well, it seems others have asked the same question (and that wasn’t actually a ‘no’ in response to the open source question!) but not yet at least.