Powershell : more than just a shell
Microsoft has been working for some time now on a shell named Powershell (previously called Monad), which brings the tremendous power of dotnet at your fingertips. A technical presentation is here, download is here It all look like a shell you'd know like a DOS command prompt or for those of you who used unix like a bash or korn shell. But this usual seamingly innocuous tool's mission is actually to connect you, the user, with an easy acces to all those structures defined in your computer : COM object written by some painful C++ programmers, small admin script written by a colleague, VB type written by your intern yesterday. All those elements have a vocation to be accessible through a uniform way from monad, who lives in between those elements and the user, and make it easy for a simple element to be available for consumption. Monad contribution on bringing a programmed elements ready to industrial strength use on 3 aspects User interaction
- it automatically makes sure the necessary arguments are filled, and take necessary corrective steps. the original programmed object does not have to do anything to inherit this behaviour
- it automatically provides parsing functionnality for the arguments provided, and again the programmed component needs not to know about any of this stuff.
- it handles error in a clean way, and reports them as such without breaking eventual function composition
- it will load the necessary dll and other components on the fly
- it provides with standard output formatting, be it text or other component (excel graphics)
- you can group object's properties through sets, which corresponds to one particular point of view of an object (mind you I dont care most of the time of the pid of a process....)
- your objects will natively have a common space to live and cohabitate in..
- and they can alos collaborate through piping object from one command to another, composing functions easily
- The ability to dynamically enrich the type system of an object on the fly
- object pipelines
- runtime typesystem extension