Monad (an unfortunate codename from greek philosophy meaning "indivisible unit") has me excited. It's the "new command shell" from MSFT. You may have heard of it by now, some have said "like unix"... I think I'll say it's "like a .net shell".
How so? Think classes passing objects from one to the other, perhaps giving a UI, taking input, or performing actions - all in managed code (.net). Hmm, you say, isn't that like any application? Yes! One exception only - you string together the classes (called "commandlets") that will get executed at the command line, passing in attributes for each class, and implicitly giving the order in which to execute them.
get/process | sort "handles" | out/xml
Okay, perhaps not excatly right syntax, but pretty close. What this will do is instantiate an object of the managed class that (with attributes) says it provides the commandlet get/process. It will then call special methods on that class, and pass the output object (in this case an array of System.ProcessInfo objects) to the next object - the one that provides "sort".
Awesome. simply awesome. The ease of extensibility for us .net developers is great. Option processing and validation is provided by the shell, and not by the commandlet developer. I can't wait to learn more.