{"id":10781,"date":"2006-04-25T12:18:00","date_gmt":"2006-04-25T12:18:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/powershell\/2006\/04\/25\/verb-noun-vs-noun-verb\/"},"modified":"2019-02-18T13:25:02","modified_gmt":"2019-02-18T20:25:02","slug":"verb-noun-vs-noun-verb","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powershell\/verb-noun-vs-noun-verb\/","title":{"rendered":"Verb-Noun vs Noun-Verb"},"content":{"rendered":"<p>Kurt asked the question &#8220;why not Noun-Verb vs Verb-Noun&#8221; in his post: <a href=\"http:\/\/blogs.msdn.com\/monad\/archive\/2006\/02\/16\/533522.aspx#574708\">http:\/\/blogs.msdn.com\/monad\/archive\/2006\/02\/16\/533522.aspx#574708<\/a><\/p>\n<p>There are lots of answers to this some better than others.&nbsp; Let me rattle off a couple of them:<\/p>\n<ol>\n<li><strong>VMS DCL\/AS400<\/strong>.&nbsp; Issac Newton once said&nbsp;that if he could see farther, it was because he was standing on the shoulders of giants.&nbsp; So it is with Monad.&nbsp; People like to point out the similarities between Monad and various UNIX shells\/utilities and scripting languages.&nbsp; Absolutely true &#8211; many of us have&nbsp;deep UNIX backgrounds and &nbsp;have a lot of respect for that body of work.&nbsp; That said, Monad is influenced as much by VMS\/DCL and&nbsp;AS400\/CL&nbsp;as it is UNIX.&nbsp; These are wonderful environments built with the clear vision that they would be used by people running production shops where operations and management really mattered.&nbsp; These environments are strict about naming guidelines, common syntax, environmental setup, operational characteristics, etc etc.&nbsp; \n<p>Both of these environments are hard core about naming and leverage a Verb-Noun pattern.&nbsp; Apollo&#8217;s Domain\/OS and AIX also used Verb-Noun models as well.&nbsp; BTW &#8211; you can see the influences of the VMS &amp; AS400&nbsp;focus on production qualities in:&nbsp; having a single common command line parser,&nbsp; -VERBOSE, -CONFIRM, -ERRORACTION (actually our entire near-manical focus on error handling comes from a focus on production readiness), and others.<\/p>\n<li><strong>Programmer vs Admin focus<\/strong>.&nbsp; Kurt points out that a Noun-Verb schema would mirror the OO programming world.&nbsp; That is another reason we are Verb-Noun.&nbsp; There are 2 aspects to this:\n<ol>\n<li>Admins are admins with needs similar but&nbsp;distinctly different from those of programmers.&nbsp; We already have world-class languages and tools for programmers, what we need improvement on is Admin languages and tools.&nbsp; I did not want teams thinking that they could just expose their .NET objects and think that they were meeting the needs of admins.&nbsp; These teams need to think about the needs of admins and provide consistent, high level, task-oriented, set-oriented operations with a strong focus on error handling and operational control.&nbsp; You can easily do that with a thin layer on top of .NET objects but you can&#8217;t get that by just exposing .NET objects.&nbsp; So being Verb-Noun helps drive home this point.\n<li>Take a look at the inconsistency of Method names on .net objects.&nbsp; It is Kill() for a process object but Stop() on a serviceController object.&nbsp; Putting the noun first puts people in the mindset that their domain is the high order bit and they pick methodnames optimized for their domain.&nbsp; Putting the Verb first makes it clear that the User Experience is the high order bit and the domain specifics are the low order bit.&nbsp; We want an very high level of verb reuse to provide a consistent, predictable user-experience.&nbsp; <\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>Jeffrey P. Snover<br \/>Monad Architect<\/p>\n<p>[<i>Edit: Monad has now been renamed to Windows PowerShell. This script or discussion may require slight adjustments before it applies directly to newer builds.<\/i>]<\/p>\n<p>&nbsp;<\/p>\n<p>PSMDTAG:FAQ: Why is it VERB-NOUN vs NOUN-VERB ?<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kurt asked the question &#8220;why not Noun-Verb vs Verb-Noun&#8221; in his post: http:\/\/blogs.msdn.com\/monad\/archive\/2006\/02\/16\/533522.aspx#574708 There are lots of answers to this some better than others.&nbsp; Let me rattle off a couple of them: VMS DCL\/AS400.&nbsp; Issac Newton once said&nbsp;that if he could see farther, it was because he was standing on the shoulders of giants.&nbsp; So [&hellip;]<\/p>\n","protected":false},"author":600,"featured_media":13641,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[10],"class_list":["post-10781","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell","tag-faq"],"acf":[],"blog_post_summary":"<p>Kurt asked the question &#8220;why not Noun-Verb vs Verb-Noun&#8221; in his post: http:\/\/blogs.msdn.com\/monad\/archive\/2006\/02\/16\/533522.aspx#574708 There are lots of answers to this some better than others.&nbsp; Let me rattle off a couple of them: VMS DCL\/AS400.&nbsp; Issac Newton once said&nbsp;that if he could see farther, it was because he was standing on the shoulders of giants.&nbsp; So [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/10781","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/users\/600"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/comments?post=10781"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/10781\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media\/13641"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media?parent=10781"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/categories?post=10781"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/tags?post=10781"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}