Is PowerShell for Developers Only?

Paul Thurott recentlyposted an article about LightSwitch, and made some interesting comments on PowerShell. The article is, as usual for Paul, well-written and thought-out. But I wanted to offer some alternative viewpoints for a couple of the comments he made. Specifically:

But the problem with PowerShell is that it's so powerful as to be indecipherable to admins. In fact, it's arguably a full-blown development environment. It consists of a command line shell, a .NET-based, object-oriented scripting language, and a runtime engine that can optionally be embedded in other applications. For the typical overworked admin or IT pro, PowerShell might be a godsend if they could actually use it. But I was of the mind in 2002--as I am today--that most admins and IT pros have a completely different set of skills and are overworked as it is. To really take advantage of PowerShell, you need to be a developer or learn those skills too. And finding people who have credible administrative and developer skills is quite a trick. If you are such a person, maybe it's time to ask for a raise.

I kind of disagree. Take cars, for example, an analog Paul used later in his article. I drive a car. I have a friend who can change just about any fluid in my car. Me, not so much. We have a mutual friend who can strip a car down to bolts and rebuild every bit of it. If we were all employed in the car industry, I'd make the least money driving, my friend would make a bit more doing maintenance, and our mutual friend would make the most - probably rebuilding classic cars.

There are two points to be made, there. First, cars offer something for a variety of audiences - as does PowerShell. Just because PowerShell does offer a crazy-powerful programming environment based on .NET doesn't mean you need to use it; it also offers a much simpler command-line mode that goes out of its way to hide the underlying .NET complexities. It is no more complicated than most Unix shells.

The second point, though, is that people who know how to do more get paid more. If you can master some of PowerShell's intricacies, you're setting yourself up for a better place in life, money-wise. That's hardly a new concept: Unix and Linux administrators know this, which is why most of them love their shell environments. Cisco folks know it, which is why so few of them bother using the GUIs that lay atop their iOS. In fact, practically every admin of every operating system other than Windows knows it - and most of them handily straddle the "gap" between admin and developer. PowerShell, in fact, is one of the few shells that lets you be pretty darn effective without having high-end developer skills. 

Paul's next comment:

Microsoft can't stop making solutions like this because, at its heart, Microsoft is a developer-run company. And this isn't just because it got its start making and selling developer tools. Microsoft has always seen the world through developer-colored glasses, and is always willing to tackle even the simplest of problems with complete, extensible, and finely documented platforms. It's just in their DNA.

Amen, brother. Just looking at the architecture of SharePoint makes me wince, although from a developer's perspective, on paper, I'm sure it looks incredibly elegant. And you know, Microsoft committed some of the same sin with PowerShell. I mean, yay with the concept of "providing both basic and advanced experiences in the same product," but the fact is more people get scared off of PowerShell because all that crazy-advanced stuff is in there. Two products might have been better, even if they shared a lot of the underlying code.

The last of Paul's comments, and the main point of his article:

And now they're at it again. Last week, at the annual VSLive show, Microsoft announced a new version of its Visual Studio development tools aimed at--you guessed it--admins and IT pros. Dubbed Visual Studio LightSwitch, this product aims to provide the simplest way yet to build business applications for both the cloud (using an Azure backend) and the Windows desktop.

Lord, help us. I've been saying for years that Microsoft wasn't going to make an "admin version of Visual Studio to use with PowerShell," because they had talked about it at one point and decided not to. Changed their minds, I guess. Sigh. You know, though, it'll be great for those admins who are strong in the Development side of the Force - although those guys will doubtless continue using Visual Studio, just like they always have been. I do wish - and I agree with Paul 100% here - that Microsoft would stop thinking of administrators as "Developer Lite" and start recognizing that we have unique jobs that require unique solutions - not more copies of Visual Studio.

I wonder if Visual Studio LightSwitch will install on x64 versions of Windows. The main Visual Studio product won't, because apparently 'porting Visual Studio to 64-bit is, um, hard. 

What do you think?

Discuss this Blog Entry 7

Keith Hill (not verified)
on Aug 13, 2010
Darren makes a good point. PowerShell has a pretty easy on-ramp from interactive CLI use to scripting e.g. you copy the commands you typed at the console into a .PS1 file, voila you have a script.

One minor correction WRT Visual Studio and x64, Visual Studio does run on x64 as a 32-bit process. I would expect that LightSwitch would do the same.

bcnagel (not verified)
on Aug 10, 2010
Don, I've really appreciated your encouragement to IT pros to learn more about PowerShell. I think your strongest argument is where you mention that "every admin of every operating system other than Windows" knows how helpful "shelling out" can be.

I converted one of the other admins at my former company to PowerShell when he saw how amazingly easy it was to do sophisticated bulk management of files on a file server from the shell. Most admins *love* tools that give both power and flexibility. "Get-ChildItem," "Export-Csv," etc. are actually pretty intuitive once you give them a try.

Tome Tanasovski (not verified)
on Aug 14, 2010
Going back to the car analogy: Powershell is a car, but it can be every car when you need it to be. Yes, it can be the Porsche that requires technique, but it can also be a hummer that barrels over rough terrain. One of the beautiful things about Powershell is its versatility. There are so many ways to get things done that it lets you build your own car even if you can't strip it down to the bits and bolts.

Paul feels that an overworked admin doesn't have time to learn the basics of Powershell that will help them with their job. An admin/IT Pro who doesn't see the value of learning any scripting technology is a bad admin who will never get anywhere. Take scripting out of the equation - If an admin doesn't keep up with technology in general they are bad at their job. They may be ok for a few years, but they will eventually get in a situation where they are no longer relevant, unemployed, shaking their head asking why Microsoft didn't make the new technology easier. An IT Pro must be an aggressive student at all times who decides to spend additional time to learn new things every day of their life (even when overworked).

dahlbyk (not verified)
on Aug 10, 2010
For the record, SharePoint's architecture is wince-worthy from a developer perspective as well.
VE (not verified)
on Aug 13, 2010
I started using powershell a few weeks ago and love it. I manage an Windows Admin team and have been pushing them to learn it as well. I have been able to write some very helpful programs using Primal Forms from Sapien. I really wish Microsoft would include powershell in VS2010 so I could use it's great IDE. Sapien has also announced a new version of Primal Forms called Visual Powershell 2011.
Darren (not verified)
on Aug 11, 2010
Good comments Don. I happen to think that PowerShell is great for admins because they don't NEED to write scripts to use it (unlike, for example VBScript). Most IT admins are completely capable of running command-line tools --they've done it for years. And, PowerShell to me is accessible to them because its just another command-line tool (in the simplest case), albeit one that is more powerful and extensible than the single tool-for-single-purpose command lines most are used to. A lot of it is about providing folks with lots of examples and lots of simple "commands" that they can use. They don't necesssarily have to know its PowerShell frankly. They just need an easy way to get their job done and the rest will follow.

Bewc (not verified)
on Sep 13, 2010
I agree with Paul. It's nuances stack up so high, that I consider it to be a dev tool to do admin work. When I suggested that to a dev friend of mine, he said it's not a dev tool either, since powershell is not a development language with an API, etc. (very badly paraphrasing, since I don't know these things).
So what we have is an "admin" console where 1-liners are easy, and anything more than stacking up a few of those requires a dev or a stolen script from someone like you. We also have a tool that devs don't like, because "it's not a real language". Sounds messed up to me, but I'm no dev. I have my admin problems with powershell...

If-else logic, test logic, script/bracket/dot/parenthesis/double escaping/colons that are special combined with colons that aren't/etc. that confuses the stuffing out of me, logging is confusing, eventing is confusing, output that wraps funny, no ssh, can't roll it out to end users without them being able to open the script and run it in a console, can't do runas in a script in a job with a hard-coded yet encrypted password, no key-based auth, no cert-based auth, can't run as a service, can't schedule jobs in server 2003, no web based interface where we could have end-users run "safe" commands, and more.

As much as I want to love powershell, and I use it interactive at a console, right next to a cmd prompt, it's not there yet, and I'm unsure that it will get better.

5 years from now, we'll still have no SSH (which offers remote commands, SFTP\SCP file transfer, key/cert/password auth, and works from/to Mac, Linux, Solaris, and some mobiles - all securely over a single firewall port), and still resort to scouring the web for small executables we can install into our boxes and call in our batch files.

@Tome - I completely disagree. The idealism you profess is not the experience I've seen in several companies. If you're an admin with a family that depends on you, then never leave your job. Your employers obviously don't beat you down like other jobs, or they do and you enjoy 60 hour weeks.

I gave it a good shot, I have read blogs/three books/several e-books, written scripts, gone to powershell user group meetings, and more. To be at the level I am, I've invested WAY more time than I should have to.

The point of no return is v3 of many products. I predict powershell will be sent to the back seat and used in combination with WSH, ADSI, VBScript, KiXtart, and WMI. And those that need more than it can provide, will install cygwin, a bunch of other executables, search for scripts to steal, and keep going. Mostly, but not always, without powershell.

As far as lightswitch goes...
I played with the download until I saw the web isn't the same as the desktop, and the web version requires a plug-in. No more plug-ins. We already have to support 8 operating systems (3 are mobile), and we aren't rolling out any web apps that require plug-ins.

Please or Register to post comments.

What's PowerShell with a Purpose Blog?

Don Jones demystifies Windows PowerShell.

Blog Archive

Sponsored Introduction Continue on to (or wait seconds) ×