News: 1652179387

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Jeffrey Snover claims Microsoft demoted him for inventing PowerShell

(2022/05/10)


PowerShell inventor Jeffrey Snover has aired some grievances about how his indispensable tool once got him demoted.

The Microsoft Technical Fellow [1]discussed the incident in a weekend Twitter thread that started when controversial investor Peter Thiel discussed the virtues of courage.

"Courage is a key characteristic of future leaders and previous employees," [2]Snover joked in response to Thiel's musings. He also asserted that "many people focus on getting their boss to pat them on the head rather than address problems."

[3]

Snover said he was urged by friend Kevin Kean – who served as director of the Microsoft Security Response Center (MSRC) in the mid 2000s – not to reveal PowerShell, as it may not well be received.

When I was doing the prototype for what became PowerShell, a friend cautioned me saying that was the sort of thing that got people fired.

I didn't get fired.

I got demoted. [4]https://t.co/aOaEiiBHgk — Jeffrey Snover (@jsnover) [5]May 7, 2022

[6]How to polish the bottom line? Microsoft makes it really hard to claim expenses, say staffers

[7]Microsoft staff giggle beneath the weight of a 52,000-person Reply-All email storm

[8]PowerShell inventor Jeffrey Snover gets new gig driving ‘modern workforce transformation’

[9]ARPANET pioneer Jack Haverty says the internet was never finished

This is not the first time Snover has revealed his demotion, but he hasn't previously discussed his profound embarrassment – or that he kept it secret from everyone other than his wife.

[10]Youtube Video

[11]

[12]

"I never mentioned it to anyone for over a decade until I got promoted to Distinguished Engineer," tweeted Snover, who was given the honor in March 2009.

Snover then contrasted Microsoft's policy for company-related passion projects to Google's famous 20 percent rule.

MSFT doesn't have the 20% rule. — Jeffrey Snover (@jsnover) [13]May 7, 2022

When Google floated in 2004, founder Sergey Brin and Larry Page stated in their IPO letter: "We encourage our employees, in addition to their regular projects, to spend 20% of their time working on what they think will most benefit Google".

Snover regularly criticizes his employer in a gentle way via Twitter. In January, for example, he took to the social platform to [14]complain about Microsoft's expense reporting procedure.

[15]

But as Snover is the inventor of many Microsoft products – including Azure, Windows Server and of course the venerable PowerShell – he has clearly earned a bit of latitude for public complaint. ®

Get our [16]Tech Resources



[1] https://twitter.com/m3sweatt/status/1523009784818982912

[2] https://twitter.com/jsnover/status/1523010083189235712

[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_offbeat/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YnqMKRhFrJSgAEXd93MgGgAAABA&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[4] https://t.co/aOaEiiBHgk

[5] https://twitter.com/jsnover/status/1523010444570419200?ref_src=twsrc%5Etfw

[6] https://www.theregister.com/2022/01/26/microsoft_expenses_claims/

[7] https://www.theregister.com/2020/03/26/microsoft_reply_all_email_storm_52000/

[8] https://www.theregister.com/2020/05/20/jeffrey_snover_workplace_transformation/

[9] https://www.theregister.com/2022/03/01/the_internet_is_so_hard/

[10] https://youtu.be/nKyF8fzed0w

[11] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_offbeat/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YnqMKRhFrJSgAEXd93MgGgAAABA&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[12] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_offbeat/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YnqMKRhFrJSgAEXd93MgGgAAABA&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[13] https://twitter.com/jsnover/status/1523044068678201346?ref_src=twsrc%5Etfw

[14] https://www.theregister.com/2022/01/26/microsoft_expenses_claims/

[15] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_offbeat/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YnqMKRhFrJSgAEXd93MgGgAAABA&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[16] https://whitepapers.theregister.com/



And now Powershell is pretty much the rock of Windows.

Anonymous Coward

with the added twist that us poor *nix bods - looked down on for years - suddenly leapfrog the seasoned windows admins (who have said more than once that it's unfair) who ran a mile from the CLI.

Almost everything you want to do in Windows Admin is now done with a PSE of some sort.

I would get it fired for inventing Powershell

LDS

It's clumsy, slow, and with an ugly syntax.

Re: I would get it fired for inventing Powershell

b0llchit

It's clumsy, slow, and with an ugly syntax.

So, a recipe for success at the MBA level decision tree then. No wonder we are all suffering.

Re: I would get it fired for inventing Powershell

pimppetgaeghsr

MBAs are members of the mangaerialist class, how dare you criticise them, do you even know how much it costs their parents to enroll them on those MBA courses!!?!

Re: I would get it fired for inventing Powershell

Zippy´s Sausage Factory

Of course we don't. But unless there's an easily reusable KPI formula for it in one of their college course books, neither do they.

Re: I would get it fired for inventing Powershell

wolfetone

So I started out with Windows, then moved away to Linux, and now where I am while I use Linux 100% of the time but I need to provide support to Windows machines. Most of the time the PowerShell is helpful in doing that.

I think you are right that the syntax isn't great. It feels, sometimes to me, that commands given are like a weird pirate copy of the usual DOS prompt you used to get with Windows. It doesn't feel that intuitive compared to the language you use on the Linux CLI.

But it's miles ahead of what was possible with DOS, and the fact that even with it's ugliness it allows us to actually do things in Windows now. And that makes it rather pretty.

Re: I would get it fired for inventing Powershell

Alan Bourke

There hasn't been a DOS prompt in Windows since Windows ME. There is CMD.EXE, which supports DOS commands.

Re: I would get it fired for inventing Powershell

Anonymous Coward

Isn't there a 'pedant' icon? Why yes, yes there is!

Re: I would get it fired for inventing Powershell

Anonymous Coward

Is that the one with an inverted triangle, black and furry, like a minge ?

At the risk of being downvoted to hell

Steve Davies 3

(you need to be an old-timer to get this)

Bring back DCL.

Compared to Powershell it was pretty good.

Re: At the risk of being downvoted to hell

UCAP

From one old timer to another - have an upvote. And a beer.

Re: At the risk of being downvoted to hell

Paul Mitchell

Anyone remember JCL, the language where comments are significant (shudder)?

Re: At the risk of being downvoted to hell

Warm Braw

If you mean [1]this JCL , it's still very much alive.

I'm not sure what you mean by significant comments, but if you use JES3, the control statements begin with //* - the same characters that introduce a JCL comment - which means you can't include JCL comments that begin with any of the JES3 commands in your virtual card deck. You'll be pleased to know that JES3 is on its way out, though JCL seems here to stay indefinitely.

[1] https://www.ibm.com/docs/en/zos/2.1.0?topic=mvs-zos-jcl-reference

Re: At the risk of being downvoted to hell

cschneid

JES3 is now supported and enhanced by [1]Phoenix Software .

[1] https://phoenixsoftware.com/jes3plus.htm

Re: At the risk of being downvoted to hell

bluesxman

Been over 20 years since I was near JCL so don't have any well formed memories, but it sounds more like it doesn't actually have "comments" but just ignores control statements that don't have a valid command ... so you could perhaps standardise on something like

//* COMMENT: actual comment text

Re: At the risk of being downvoted to hell

Warm Braw

Bring back DCL.

I still have the manuals. I keep them handy on a low shelf in case I need to reach a higher shelf.

Re: I would get it fired for inventing Powershell

Pirate Dave

IMHO, Powershell's "ugly" comes from the fact that, on the surface, large portions of it look like "programming" as opposed to "scripting". But once you get down into the nitty-gritty, the facade falls away, and it's just scripting, or perhaps "scripting++", since MS did a pretty good job of pre-canning a lot of simple functionality for us (sorting, searching, reading/writing files, etc) that makes the old DOS prompt look absolutely spartan. I'm still doing about 40% batch files and 60% powershell - some things ARE still easier to do in a batch file, especially where there's an existing utility (Robocopy, icacls, etc) that does most of the heavy lifting.

Re: I would get it fired for inventing Powershell

VoiceOfTruth

In comparison to UNIX that may be so (I demur about it being slow as I don't know). But Powershell for Windows is very good indeed, it's very useful.

I can imagine the people who demoted him sitting around nursing their right click muscle memory while drinking their decaffs... but but but he's making it more like UNIX. Isn't the whole point of Windows to have a window? Sip. More gluten-free biscuits, anyone?

Re: I would get it fired for inventing Powershell

Plest

Agree BUT it's light years ahead of DOS batch and in certain areas, ahead of *nix scripting and even things like Python. Try working natively with JSON or XML files in DOS batch or *nix script without any extra utils, can't be done. Work with ZIP files without a ZIP util on hand, PoSH wil do that natively.

I find PoSH to be almost like SQL ( I was a DBA for 20 years ) , you must always be aware of the size and structure of what's coming down the pipe, if it's in the wrong format or too big, go back and keep the pipeline flow "lean, mean and clean".

I see so many PoSH noobs making the mistake of chucking bucket loads of crap down the PoSH pipe and then moaning it's complete rubbish, no you simply need to undertstand it better to make it dance.

Re: I would get it fired for inventing Powershell

Doctor Syntax

The essence of the Unix approach is that the shell provides the control structures with very few builtins. All the heavy lifting is done by other programs; that puts them all on an equal footing, including any you might care to provide yourself.

Re: I would get it fired for inventing Powershell

itzumee

My understanding was that PowerShell syntax was designed to make it easier for Bash-heads to pick up PowerShell?

Re: I would get it fired for inventing Powershell

Mr Dogshit

Ugly syntax for sure.

You'd think equals would be =

Nope. It's -eq

Greater than >

No. -gt

Re: I would get it fired for inventing Powershell

sev.monster

Meanwhile in Bourne shell...

if test "$x" -gt 9 -a "$y" -eq 10; then

And yes, this works in Bash.

Re: I would get it fired for inventing Powershell

Doctor Syntax

You'd think equals would be =

Nope. I'd expect it to be an assignment.

Greater than >

Nope, I'd expect it to be a redirection of output.

The first is a universal issue in languages, differentiating between an equality test and an assignment. The latter isn't universal but it becomes an issue in a language that has to deal with redirecting data flows.

Re: I would get it fired for inventing Powershell

sev.monster

When it first came out, I would have agreed with you. In truth I avoided it for years because "cmd just worked" and "the syntax sucks" and "it makes no sense why they're doing this" and "it's slow as hell".

But then the versions continued to roll out, more modules got developed, the infrastructure got better, and speeds improved greatly. And now we have the largely open-source and multi-platform .NET Core and PowerShell Core, with perfectly acceptable performance and a bevy of useful features. Being able to easily script against .NET Framework/Core objects (or just straight up write in CLR languages and load them at runtime) is such a huge boon, especially when Windows is so tightly integrated with it. There essentially isn't anything you can't do with PowerShell on modern Windows, and it far outshines the capabilities and cruddy syntax of cmd.

Anyway, if you want to talk about bad syntax, let's honestly and objectively take a look at Bash, or really Bourne/POSIX shell in general, and all their ilk. You mean to tell me x="hello world"; echo "${var%world}" is self-evident without already knowing what it means? Or the fact that you can't put spaces around the = when assigning a variable, which has tripped up every newbie? Or the other hundred non-trivial hurdles you have to work around to make a good script? The grass is not always greener on the other side. Even in Windows-land, ask any veteran sysadmin and they will tell you every which way cmd syntax sucks, and how inflexible and error-prone it is; it even shares some of the problems that Bourne shell does, like assigning variables.

Fact of the matter is PowerShell is a hell of a lot more expressive than its competitors, even if the syntax is still a little wonky after all its revisions. I'd take it over cmd any day, and if I didn't know anything about *nix shell and weren't already used to it, I would probably take it on Linux too.

Re: I would get it fired for inventing Powershell

Graham Cobb

I've never really used Windows for anything serious (my history is RSX->VMS->Linux, when not working on embedded systems) but I am impressed with Powershell for its ability to work with objects and collections as basic building blocks.

The ability to pipe around objects, instead of just character streams, along with primitives to allow constructs like "for each" and "case" switching based on class in a standardised way would be very useful improvements to bash.

Re: I would get it fired for inventing Powershell

AndrueC

..plus you can call into .NET assemblies. We've used it to knock up test harnesses and to write simple utilities to support our .NET applications. Sometimes it's quicker than writing yet another .NET application.

There are times it can thwart though. At a recent meeting we got stuck trying to get the value of a variable passed to an external application. We could echo it to the screen but couldn't figure out how to get it expanded in a command line. It being the end of the day was probably a factor in that but it's a pretty trivial thing to have defeated half a dozen software developers.

Re: I would get it fired for inventing Powershell

NoneSuch

"It's clumsy, slow, and with an ugly syntax."

It's all of that with inconsistent switches from command to command and version to version.

It also allows MS to stop developing GUI. Why right click and select an option when you can type a 400+ character PS command that can bork your domain instantly.

powershell command missing

Roger Kynaston

When on earth will they come up with an equivalent of du?

full file system and you want to find the culprit in *nix

ls /some/dir | while read line

do

du -sh $line

done

I once found the code in powershell but it was so ugly I couldn't deal with it. It is good to have powercli on linux though so I can take snapshots etc. So, on balance I suppose it is a good thing.

Re: powershell command missing

FIA

du -sh /some/dir/* | sort -h

Re: powershell command missing

FIA

Powershells not tooooo much more verbose, although I've omitted the sorting which I expect would add a fair bit. :)

Get-ChildItem c:\some\folder | ForEach-Object { Echo $_.Name ; Get-ChildItem -Recurse . | measure-object -property Length -sum }

Re: powershell command missing

G40

Excellent example thank you. The brevity and elegance of Bash shines. And what are those bizarre PS constructs to the right of the pipe?

Re: powershell command missing

Anonymous Coward

Never underestimate how easy it is to make "different" = "worse".

And PS uses autocomplete, so far less typing than you'd think.

Re: powershell command missing

Dan 55

Or, before you've run out of space, install tree.

Re: powershell command missing

Pirate Dave

"When on earth will they come up with an equivalent of du?"

I was just looking at this last week to find a way to log directory sizes on the file server. There is a du utility somewhere, maybe from SysInternals. But it turns out, to get the disk usage of really large directories, the "fastest" way to do it in Powershell is to use Robocopy (with the /L switch) and parse the output. Crazy as hell, yeah, but true. Takes like 8 lines of PS code and bazinga! Robocopy must have super-magical Jedi code in it because it hands-down beat the shit out of every other method I tried, by a large margin.

Re: powershell command missing

Fonant

ncdu

karlkarl

Job control or Tmux is greatly needed for PowerShell.

Currently you need to open up multiple SSH sessions to the same Windows box like it is some sort of multi-user DOS from the 90s again.

hammarbtyp

One of the interesting parts of the thread was the total toxic culture due to a particular VP. It explains a lot and MS at the time, and I wonder whether the culture of stack ranking was part of it?

Certainly he seems to have a VP who was scared in upsetting his bosses, and was not willing to fight for their team. Basically a culture where innovation was frowned upon and discussion was stamped our.

It pretty well explains a lot of MS products at the time

Doug 3

How Microsoft operates internally reminds me of how Trump operates. If you are not making Windows look good then you are Fake News( bad for Microsoft and bad for Windows ). No doubt PS acted too much like the *nix commandline even if more in intent than execution. Linux is bad because it is not Windows and anything which validates something other than Windows makes Windows look bad. Trumpanze thinking and this thinking has been instilled in Microsoft management ever since their split from IBM.

Just be a dick

chivo243

and you'll go far is the moral of the story for VPs, GM's etc. I was a GM for a while, and couldn't shit on everybody, glad I got out.

Who made the world I cannot tell;
'Tis made, and here am I in hell.
My hand, though now my knuckles bleed,
I never soiled with such a deed.
-- A. E. Housman