Monad and Verbs
On the drive home this afternoon I listened to this week's episode of Hanselminutes, which was all about Microsoft's new command-shell (code-named Monad).
It was a great episode (they all are), but one thing that Scott said towards the start of the show struck me as quite odd/funny.
He was talking about how every command in Monad takes the form "verb-noun". For example, you might have a command "get-childitem", or "format-list". Every command starts with a verb, then has a hyphen, then a noun.
What struck me as funny about this is that the example he was using that led him to explain this rule was "new-object"! Now, call me old-fashioned, but last I looked, "new" was an adjective, not a verb.
Surely "create-object" would have been a better choice?

Comments
# Jeffrey P. Snover
25/03/2006 11:39 PM
> Surely "create-object" would have been a better choice?
Excellent point! This was one that I struggled with. When I designed these verbs, I was juggling a number of different goals. In the case of new vs create, I liked create better than new but the following factors tipped the scales:
1) I'm not sure what the right term is but there are social issues that we were sensitive to (Imagine that - a Microsoft guy trying to be socially sensitive! Strange but true). There are people that object to commands like: Create-User and Abort-Operation. While these are long standing terms of art in the computer industry, there are completely valid alternatives so I went with those.
2) I wanted to provide a glide path between Monad and C# and VB.NET and the way you create an object in those languages is with NEW
3) I wanted people to layer their GUIS on top of Monad so I wanted a good alignment between the CLI and GUI terms and NEW is the more prevalent term in GUIs.
One of my favorite concepts is that people's actions can seem insane if you don't understand their motives. Now that you understand my motives, hopefully this will seem a little less insane. (that won't always be the case :-) )
Jeffrey Snover
Monad Architect
# mabster
26/03/2006 9:25 AM
Jeffrey, It's amazing to think you'd even be visiting my humble little blog, let alone leaving a comment!
Now that I've heard your reasoning, I totally agree. I do wonder, however, if "verb" is the right word for the thing on the left side of the hyphen. Maybe "action" or something.
I still haven't played with Monad (haven't really had a reason to yet), but I've been watching its progress online, and I'm really impressed with what you guys are doing. I'm actually trying to come up with a reason to use it! :)
Anyway, thanks again for visiting!!
# Jeffrey Snover
26/03/2006 9:51 AM
> I do wonder, however, if "verb" is the right word for the thing on the
> left side of the hyphen. Maybe "action" or something.
I'm reminded of a story about Truman Capote who responded to a critic, "where you you when the page was blank?" :-)
If I could start over, I would use the term Action. This became clear when we really started to think through the GUI layering. Alas, we are in one of those situations where there is a heavy cost to change and the current term isn't bad enought to warrent the effort. (ergo the joke about "where were you..."). You seem to be on a roll of good insights - please start kicking the tires and letting us know - I can't change VERB right now but I might be able to change some other things.
Thanks!
Jeffrey Snover
Monad Architect
# mabster
26/03/2006 10:07 AM
:)
Of course you're right. Oh well! Squabbling over terminology doesn't change the fact that it's an awesome product/technology. Keep up the good work, Jeff!