<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: VMware Perl Toolkit versus PowerShell VI Toolkit</title>
	<atom:link href="http://halr9000.com/article/460/feed" rel="self" type="application/rss+xml" />
	<link>http://halr9000.com/article/460</link>
	<description>(powershell &#38; other stuff)</description>
	<lastBuildDate>Thu, 18 Mar 2010 14:11:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: halr9000</title>
		<link>http://halr9000.com/article/460/comment-page-1#comment-6543</link>
		<dc:creator>halr9000</dc:creator>
		<pubDate>Mon, 17 Mar 2008 15:58:49 +0000</pubDate>
		<guid isPermaLink="false">http://halr9000.com/article/460#comment-6543</guid>
		<description>While yes, VMware did learn and so did the creators of PowerShell, I have to disagree that things would be the same if the order of the two toolkits were reversed.  There is a higher level interface here, one that is encouraged by the structure of the language.  What VMware did was great, but the results were singularly specific to that implementation/toolkit.  What they&#039;ve done with PowerShell is more consistent and easier to use than anything they&#039;ve done before.  Also, you can plug this stuff into anything else in the .NET world keeping that same consistency and discoverability which makes PowerShell so cool.</description>
		<content:encoded><![CDATA[<p>While yes, VMware did learn and so did the creators of PowerShell, I have to disagree that things would be the same if the order of the two toolkits were reversed.  There is a higher level interface here, one that is encouraged by the structure of the language.  What VMware did was great, but the results were singularly specific to that implementation/toolkit.  What they&#8217;ve done with PowerShell is more consistent and easier to use than anything they&#8217;ve done before.  Also, you can plug this stuff into anything else in the .NET world keeping that same consistency and discoverability which makes PowerShell so cool.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian</title>
		<link>http://halr9000.com/article/460/comment-page-1#comment-6542</link>
		<dc:creator>Ian</dc:creator>
		<pubDate>Mon, 17 Mar 2008 14:58:40 +0000</pubDate>
		<guid isPermaLink="false">http://halr9000.com/article/460#comment-6542</guid>
		<description>The other main point here is VMware is learning.   The VI Perl Toolkit was version 1.0.  The Powershell one took everything learned from people using the VI Perl Toolkit (which was a HUGE leap in API usage over the VI API) and put it into the Powershell system.   If Powershell was first I&#039;d argue that it&#039;d look alot like the VI Perl Toolkit is today and the story would be reversed.   

Powershell is just another language like anything else.  It has learned from languages that came before it.</description>
		<content:encoded><![CDATA[<p>The other main point here is VMware is learning.   The VI Perl Toolkit was version 1.0.  The Powershell one took everything learned from people using the VI Perl Toolkit (which was a HUGE leap in API usage over the VI API) and put it into the Powershell system.   If Powershell was first I&#8217;d argue that it&#8217;d look alot like the VI Perl Toolkit is today and the story would be reversed.   </p>
<p>Powershell is just another language like anything else.  It has learned from languages that came before it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: halr9000</title>
		<link>http://halr9000.com/article/460/comment-page-1#comment-6504</link>
		<dc:creator>halr9000</dc:creator>
		<pubDate>Sat, 01 Mar 2008 20:19:34 +0000</pubDate>
		<guid isPermaLink="false">http://halr9000.com/article/460#comment-6504</guid>
		<description>I actually knew you were going to say CPAN.  I guess you can say the coolest thing about PowerShell is that making .NET so accessible is like giving CPAN to VBScripters.

But even so, PowerShell has the benefit of starting fresh with many of the concepts that Perl and Python have had time to bring to maturity.  Microsoft can really set the stage and drive the show moving forward.  With the third-party support coming in so fast like it is, it is hard not to get excited at the potential that PowerShell is bringing to the sysadmin game.  I think I&#039;ll keep my PowerShell fanboy-like bias for now.

But that being said, I agree with everything you&#039;ve said.  My other hobby outside of Posh evangelism is webmaster for the &lt;a href=&quot;http://psi-im.org&quot; rel=&quot;nofollow&quot;&gt;Psi instant messaging client&lt;/a&gt;.  It is cross-platform software written in C++ and uses the QT toolkit.  I do get the cross-platform arguments.  What will be interesting to see in maybe a couple of years is if Mono will have a powershell-like port.</description>
		<content:encoded><![CDATA[<p>I actually knew you were going to say CPAN.  I guess you can say the coolest thing about PowerShell is that making .NET so accessible is like giving CPAN to VBScripters.</p>
<p>But even so, PowerShell has the benefit of starting fresh with many of the concepts that Perl and Python have had time to bring to maturity.  Microsoft can really set the stage and drive the show moving forward.  With the third-party support coming in so fast like it is, it is hard not to get excited at the potential that PowerShell is bringing to the sysadmin game.  I think I&#8217;ll keep my PowerShell fanboy-like bias for now.</p>
<p>But that being said, I agree with everything you&#8217;ve said.  My other hobby outside of Posh evangelism is webmaster for the <a href="http://psi-im.org" rel="nofollow">Psi instant messaging client</a>.  It is cross-platform software written in C++ and uses the QT toolkit.  I do get the cross-platform arguments.  What will be interesting to see in maybe a couple of years is if Mono will have a powershell-like port.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Kutz</title>
		<link>http://halr9000.com/article/460/comment-page-1#comment-6503</link>
		<dc:creator>Andrew Kutz</dc:creator>
		<pubDate>Sat, 01 Mar 2008 19:22:21 +0000</pubDate>
		<guid isPermaLink="false">http://halr9000.com/article/460#comment-6503</guid>
		<description>Well, I don&#039;t want to turn this into a &quot;You can do it Perl, I can do it in PS&quot; conversation, because obviously both have their pros and cons. For me though, the litmus test that I apply to tools is &quot;How many users does this help? How many users does this reach? How can I ensure that this tool is helpful to as many users as possible?&quot; That is why I think cross-OS compatibility is so terribly important. VI Perl lets you create tools that Windows users, OS X users, and Linux users can all use. What is more powerful and helpful than that?

Another maxim that I try to remember is that tools are just that, tools. These things we create should not be the end, they should be the means. Therefore, I try to look past how cool a framework is, or how nice a language is, but instead attempt to (and I do not always succeed) remember that I am creating this tool to serve a user, not another developer (unless it is an IDE or something like that of course). And since I am creating it for the user, well, see my previous paragraph : )

However, I also do not want to end this comment without directly addressing your points, because they are good and valid points. Point 1 - PowerShell lets you pass around object references. Counterpoint 1 - So does Perl. I can actually create a VI Perl view *from* a .NET VirtualMachine object and then pass that reference around. Remember, VI Perl view are just hash tables. Point 2 - Output formats. Counterpoint 2 - See CPAN for all the Perl modules that are available to format output.

I am a *huge* .NET advocate. I frequently evangelize it for the fact that the Microsoft provided framework gives developers almost anything they could want when it comes to building tools. However, since we create tools for users, we should keep the users in mind when creating them.</description>
		<content:encoded><![CDATA[<p>Well, I don&#8217;t want to turn this into a &#8220;You can do it Perl, I can do it in PS&#8221; conversation, because obviously both have their pros and cons. For me though, the litmus test that I apply to tools is &#8220;How many users does this help? How many users does this reach? How can I ensure that this tool is helpful to as many users as possible?&#8221; That is why I think cross-OS compatibility is so terribly important. VI Perl lets you create tools that Windows users, OS X users, and Linux users can all use. What is more powerful and helpful than that?</p>
<p>Another maxim that I try to remember is that tools are just that, tools. These things we create should not be the end, they should be the means. Therefore, I try to look past how cool a framework is, or how nice a language is, but instead attempt to (and I do not always succeed) remember that I am creating this tool to serve a user, not another developer (unless it is an IDE or something like that of course). And since I am creating it for the user, well, see my previous paragraph : )</p>
<p>However, I also do not want to end this comment without directly addressing your points, because they are good and valid points. Point 1 &#8211; PowerShell lets you pass around object references. Counterpoint 1 &#8211; So does Perl. I can actually create a VI Perl view *from* a .NET VirtualMachine object and then pass that reference around. Remember, VI Perl view are just hash tables. Point 2 &#8211; Output formats. Counterpoint 2 &#8211; See CPAN for all the Perl modules that are available to format output.</p>
<p>I am a *huge* .NET advocate. I frequently evangelize it for the fact that the Microsoft provided framework gives developers almost anything they could want when it comes to building tools. However, since we create tools for users, we should keep the users in mind when creating them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: halr9000</title>
		<link>http://halr9000.com/article/460/comment-page-1#comment-6502</link>
		<dc:creator>halr9000</dc:creator>
		<pubDate>Sat, 01 Mar 2008 18:23:45 +0000</pubDate>
		<guid isPermaLink="false">http://halr9000.com/article/460#comment-6502</guid>
		<description>Well obviously, I can write a powershell script that does the same, which is to say, I can write a script that returns textual information about a virtual machine.  

However, there are a lot of differences when you look at the big picture.  All of the below are examples drawn from the VMware Perl Toolkit versus their PowerShell one, but you could just as easily replace the word VMware with Citrix and compare their &lt;a href=&quot;http://www.sessioncomputing.com/cmd.htm&quot; rel=&quot;nofollow&quot;&gt;last gen stuff&lt;/a&gt; with BSonPosh&#039;s PowerShell &lt;a href=&quot;http://bsonposh.com/modules/wordpress/?p=49&quot; rel=&quot;nofollow&quot;&gt;Citrix management scripts&lt;/a&gt; or Citrix&#039;s as of yet unannounced future plans which they have said will include PowerShell.

VMware is providing 70+ cmdlets with their PowerShell Toolkit.  Each one manipulates an object.  These 70 cmdlets can be combined with each other, or with the hundreds of others that either come with PowerShell or are available as external snapins.  Cmdlets can take objects as input, and can emit them as output.   You are a .NET developer, so you can appreciate that I can instantiate most any .NET object in PowerShell and manipulate it.  You can do that at a command-line shell, or inside of a script.  This is a pervasive concept upon which PowerShell is built.  Perl doesn&#039;t have a shell.  At this time (to my knowledge), you can&#039;t do the sort of ad-hoc experimentation and one-off scripting that I do all day in Posh.  (I found this &lt;a href=&quot;http://dev.perl.org/perl6/rfc/184.html&quot; rel=&quot;nofollow&quot;&gt;old Perl6 RFC&lt;/a&gt; amusing.)

But really, it *is* the big picture which is the point.  Not only can I do all of the above with VMware&#039;s stuff, but I can use the same consistent interface for Exchange 2007 management, or WebSphere MQ or System Center Virtual Machine Manager.  Vminfo.pl may use a --fields parameter to determine what information is displayed.  But is IBM going to release a perl utility to view queues that has a --fields parameter?  Not likely.  With PowerShell it is irrelevant because of the abstracted output formatting.   I can take get-vm, pipe it through select-object or format-table and get exactly the output I want.  Same for Get-Mailbox.</description>
		<content:encoded><![CDATA[<p>Well obviously, I can write a powershell script that does the same, which is to say, I can write a script that returns textual information about a virtual machine.  </p>
<p>However, there are a lot of differences when you look at the big picture.  All of the below are examples drawn from the VMware Perl Toolkit versus their PowerShell one, but you could just as easily replace the word VMware with Citrix and compare their <a href="http://www.sessioncomputing.com/cmd.htm" rel="nofollow">last gen stuff</a> with BSonPosh&#8217;s PowerShell <a href="http://bsonposh.com/modules/wordpress/?p=49" rel="nofollow">Citrix management scripts</a> or Citrix&#8217;s as of yet unannounced future plans which they have said will include PowerShell.</p>
<p>VMware is providing 70+ cmdlets with their PowerShell Toolkit.  Each one manipulates an object.  These 70 cmdlets can be combined with each other, or with the hundreds of others that either come with PowerShell or are available as external snapins.  Cmdlets can take objects as input, and can emit them as output.   You are a .NET developer, so you can appreciate that I can instantiate most any .NET object in PowerShell and manipulate it.  You can do that at a command-line shell, or inside of a script.  This is a pervasive concept upon which PowerShell is built.  Perl doesn&#8217;t have a shell.  At this time (to my knowledge), you can&#8217;t do the sort of ad-hoc experimentation and one-off scripting that I do all day in Posh.  (I found this <a href="http://dev.perl.org/perl6/rfc/184.html" rel="nofollow">old Perl6 RFC</a> amusing.)</p>
<p>But really, it *is* the big picture which is the point.  Not only can I do all of the above with VMware&#8217;s stuff, but I can use the same consistent interface for Exchange 2007 management, or WebSphere MQ or System Center Virtual Machine Manager.  Vminfo.pl may use a &#8211;fields parameter to determine what information is displayed.  But is IBM going to release a perl utility to view queues that has a &#8211;fields parameter?  Not likely.  With PowerShell it is irrelevant because of the abstracted output formatting.   I can take get-vm, pipe it through select-object or format-table and get exactly the output I want.  Same for Get-Mailbox.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Kutz</title>
		<link>http://halr9000.com/article/460/comment-page-1#comment-6499</link>
		<dc:creator>Andrew Kutz</dc:creator>
		<pubDate>Sat, 01 Mar 2008 15:49:39 +0000</pubDate>
		<guid isPermaLink="false">http://halr9000.com/article/460#comment-6499</guid>
		<description>Okay, you&#039;re arguing that it is a matter of complex interfaces. Well then, Perl wins. While all that is needed to list VMs in PS is Get-VM, remember that you must also connect to the server with Get-VIServer or Get-VC... or Get-ESX... In VI Perl you can list all of the VMs via a single command:

vminfo.pl --server 192.168.0.47 --username akutz --password mypassword

That&#039;s it. That is all it takes. Sure, the code beneath that is doing what you listed above, but I would argue that a Perl script is analogous to a a CmdLet, and that a CmdLet is not the same thing as a single Perl function as your original post seems to assert.</description>
		<content:encoded><![CDATA[<p>Okay, you&#8217;re arguing that it is a matter of complex interfaces. Well then, Perl wins. While all that is needed to list VMs in PS is Get-VM, remember that you must also connect to the server with Get-VIServer or Get-VC&#8230; or Get-ESX&#8230; In VI Perl you can list all of the VMs via a single command:</p>
<p>vminfo.pl &#8211;server 192.168.0.47 &#8211;username akutz &#8211;password mypassword</p>
<p>That&#8217;s it. That is all it takes. Sure, the code beneath that is doing what you listed above, but I would argue that a Perl script is analogous to a a CmdLet, and that a CmdLet is not the same thing as a single Perl function as your original post seems to assert.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: halr9000</title>
		<link>http://halr9000.com/article/460/comment-page-1#comment-6498</link>
		<dc:creator>halr9000</dc:creator>
		<pubDate>Sat, 01 Mar 2008 15:41:21 +0000</pubDate>
		<guid isPermaLink="false">http://halr9000.com/article/460#comment-6498</guid>
		<description>Andrew, in a way I agree, but the point is not one of Perl vs PowerShell but complex interfaces to simple ones and it really typifies the architecture behind PowerShell.  Besides, the creators of PowerShell openly admit their admiration of Perl and its influences on PowerShell&#039;s creation.  I could have made this more clear when I wrote the blog post, but at the time I was in the middle of something else and did not feel like writing a longer article.  Luckily, Jeffrey Snover (the PowerShell team lead) took up the challenge.  If you have not read his article, please do, he explains it much better than I could.</description>
		<content:encoded><![CDATA[<p>Andrew, in a way I agree, but the point is not one of Perl vs PowerShell but complex interfaces to simple ones and it really typifies the architecture behind PowerShell.  Besides, the creators of PowerShell openly admit their admiration of Perl and its influences on PowerShell&#8217;s creation.  I could have made this more clear when I wrote the blog post, but at the time I was in the middle of something else and did not feel like writing a longer article.  Luckily, Jeffrey Snover (the PowerShell team lead) took up the challenge.  If you have not read his article, please do, he explains it much better than I could.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Kutz</title>
		<link>http://halr9000.com/article/460/comment-page-1#comment-6497</link>
		<dc:creator>Andrew Kutz</dc:creator>
		<pubDate>Sat, 01 Mar 2008 15:27:21 +0000</pubDate>
		<guid isPermaLink="false">http://halr9000.com/article/460#comment-6497</guid>
		<description>This is an unfair example. I could write a function called Get-VM in Perl that encapsulates that code. And besides, Perl is completely cross-OS compatible and PS is not.</description>
		<content:encoded><![CDATA[<p>This is an unfair example. I could write a function called Get-VM in Perl that encapsulates that code. And besides, Perl is completely cross-OS compatible and PS is not.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TechProsaic - I write about great software, Internet technology, cool gadgets, and The Next Big Thing. &#187; Call for Script Ideas: VMware PowerShell Toolkit</title>
		<link>http://halr9000.com/article/460/comment-page-1#comment-6466</link>
		<dc:creator>TechProsaic - I write about great software, Internet technology, cool gadgets, and The Next Big Thing. &#187; Call for Script Ideas: VMware PowerShell Toolkit</dc:creator>
		<pubDate>Thu, 21 Feb 2008 14:10:44 +0000</pubDate>
		<guid isPermaLink="false">http://halr9000.com/article/460#comment-6466</guid>
		<description>[...] VMware Perl Toolkit versus PowerShell VI Toolkit [...]</description>
		<content:encoded><![CDATA[<p>[...] VMware Perl Toolkit versus PowerShell VI Toolkit [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: halr9000</title>
		<link>http://halr9000.com/article/460/comment-page-1#comment-6440</link>
		<dc:creator>halr9000</dc:creator>
		<pubDate>Mon, 11 Feb 2008 13:56:00 +0000</pubDate>
		<guid isPermaLink="false">http://halr9000.com/article/460#comment-6440</guid>
		<description>It&#039;s still in closed beta, but you can always ask.  See the &lt;a href=&quot;http://blogs.vmware.com/vipowershell/2007/10/early-access-te.html&quot; rel=&quot;nofollow&quot;&gt;announcement&lt;/a&gt; on the VI PowerShell blog.  The beta is supposed to open to all in March.</description>
		<content:encoded><![CDATA[<p>It&#8217;s still in closed beta, but you can always ask.  See the <a href="http://blogs.vmware.com/vipowershell/2007/10/early-access-te.html" rel="nofollow">announcement</a> on the VI PowerShell blog.  The beta is supposed to open to all in March.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: nicozozo</title>
		<link>http://halr9000.com/article/460/comment-page-1#comment-6439</link>
		<dc:creator>nicozozo</dc:creator>
		<pubDate>Mon, 11 Feb 2008 13:20:53 +0000</pubDate>
		<guid isPermaLink="false">http://halr9000.com/article/460#comment-6439</guid>
		<description>Hi, can you tell me where I can get VI toolkit ?</description>
		<content:encoded><![CDATA[<p>Hi, can you tell me where I can get VI toolkit ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeffrey Snover</title>
		<link>http://halr9000.com/article/460/comment-page-1#comment-6435</link>
		<dc:creator>Jeffrey Snover</dc:creator>
		<pubDate>Sun, 10 Feb 2008 23:51:14 +0000</pubDate>
		<guid isPermaLink="false">http://halr9000.com/article/460#comment-6435</guid>
		<description>Thanks for this post.  It inspired me to write:

http://blogs.msdn.com/powershell/archive/2008/02/10/the-semantic-gap.aspx

Cheers!

Jeffrey Snover [MSFT]
Windows Management Partner Architect
Visit the Windows PowerShell Team blog at:    http://blogs.msdn.com/PowerShell
Visit the Windows PowerShell ScriptCenter at:  http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx</description>
		<content:encoded><![CDATA[<p>Thanks for this post.  It inspired me to write:</p>
<p><a href="http://blogs.msdn.com/powershell/archive/2008/02/10/the-semantic-gap.aspx" rel="nofollow">http://blogs.msdn.com/powershell/archive/2008/02/10/the-semantic-gap.aspx</a></p>
<p>Cheers!</p>
<p>Jeffrey Snover [MSFT]<br />
Windows Management Partner Architect<br />
Visit the Windows PowerShell Team blog at:    <a href="http://blogs.msdn.com/PowerShell" rel="nofollow">http://blogs.msdn.com/PowerShell</a><br />
Visit the Windows PowerShell ScriptCenter at:  <a href="http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx" rel="nofollow">http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Windows PowerShell : The Semantic Gap</title>
		<link>http://halr9000.com/article/460/comment-page-1#comment-6434</link>
		<dc:creator>Windows PowerShell : The Semantic Gap</dc:creator>
		<pubDate>Sun, 10 Feb 2008 23:48:37 +0000</pubDate>
		<guid isPermaLink="false">http://halr9000.com/article/460#comment-6434</guid>
		<description>[...] An excellent example of the semantic gap is provided by the TechProsaic blog entry:&#160; VMWare Perl Toolkit verses Powershell V1 ToolKit which shows the 20 lines of Perl required to do the same as the Get-VM [...]</description>
		<content:encoded><![CDATA[<p>[...] An excellent example of the semantic gap is provided by the TechProsaic blog entry:&#160; VMWare Perl Toolkit verses Powershell V1 ToolKit which shows the 20 lines of Perl required to do the same as the Get-VM [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
