7 ms·
Host here, thanks for sharing. PowerShell faced extreme opposition at Microsoft, and its creator Jeffrey Snover was demoted for pursuing it. Jeffrey was origi
by adamgordonbell 2y ago
Host here, thanks for sharing.
PowerShell faced extreme opposition at Microsoft, and its creator Jeffrey Snover was demoted for pursuing it.
Jeffrey was originally brought into Microsoft to help MS learn how to compete in the data center, but culturally they were so tied to the personal computer model of the world, that they fought him every step of the way.
Edit: Another interesting thing, is how Powershell exists because Windows isn't file based. Jeffrey's goal was server administration, but on Windows you can't just edit files to administer things, you need to call various APIs and get structured data back forth. The rich object model fell out of that. It was the only way.
( Also, apologies if the transcript has errors. I've gone from professional transcriptions to Descript and then a pass of GPT4 trying to find the right punctation breaks and then me doing a quick read through. I don't think its coming out as high quality as I'd like. )
- hobs 2y agoAnd as far as I can tell its no longer a priority at MSFT, reading the complaints from the MVPs on Github about how MSFT promised a bunch of further investment that has not been realized, changes not implemented, good stuff just sort of left to rot on the vine. I loved powershell with (some of) its weird warts, but I have moved on.
- pletnes 2y agoMy biggest gripe is that some Azure stuff seems to be available only through powershell, which is hard to install and configure (I think) in certain corporate policy-infested environments.
- Uvix 2y agoThe Az PowerShell module just uses HTTP APIs, so anything they do can be done with other tooling if you really want to. (There’s also the Az CLI tool, which I don’t like as much as the Az PowerShell module but might be easier to manage in an environment like that.)
- ExoticPearTree 2y agoYes, true, they call APIs. But for whatever reason, MS decided that instead of documenting those APIs they went on the route of abstracting them in PS modules or the az-cli submodules that its mind boggling.
- RajT88 2y agoThe REST API is documented. Maybe not completely so, but mostly. https://learn.microsoft.com/en-us/rest/api/azure/ https://learn.microsoft.com/en-us/rest/api/azure/
- nullindividual 2y agoThe Azure CLI [0] is a viable method of managing Azure infrastructure if you don't/cannot use PowerShell. [0] https://learn.microsoft.com/en-us/cli/azure/what-is-azure-cli https://learn.microsoft.com/en-us/cli/azure/what-is-azure-cl...
- pjmlp 2y agoActually Azure CLIs are kind of schizophrenic, in typical MS fashion. You have Azure Powershel Cmdlets (the old 5.1 based, and the new Powershell Core based), AZ CLI (in Python), AZD CLI (in Go). The only one that offers full power is actually the AZ CLI one, e.g. some Kubernetes features aren't exposed in the others.
- RajT88 2y agoIf it exists in Powershell, it is backed by a REST API. Lots of AZ SDK's include a helper method to make calling the API's easier (like az rest cli command or invoke-azrestmethod).
- mike_hearn 2y agoThere have been regressions even. PowerShell 7 isn't backwards compatible with PowerShell 5 and some features that used to exist are just gone with no plan for a return, due to (surprise) fights between .NET and Windows teams over API metadata formats or something. Most incredibly Microsoft situation ever. Say what you want about bash, at least it doesn't pull stunts like that.
- JoBrad 2y agoAre there any currently-supported versions of Windows that don’t support Powershell Core? I recall installing it on Windows 2012, even. > Say what you want about bash, at least it doesn’t pull stunts pile that. I guess it depends on what you consider to be included in the terminal’s domain? There are entire papers and guides on which commands are considered safe (sometimes only when run in a very specific way), and which variants, alternatives, etc. you should use instead, for Bash scripts, because of the inconsistency in what a command evaluates, does, and returns for various distros. That’s not to hate on Bash, but just to point out that it’s not a strength of Bash vs PS.
- sllabres 2y agoWhen Powershell was first released I was primarily working with Unices and was very curious what would work better: The Unix way in cutting, changing and grepping some part of stdout (in some OS a bit simplified b with options for automated pricessing which commands the programm to output colon delimited or otherwise formatted) Or the Powershell way where on can access data members directly. I thought I would prefer the second method more, because the access looked much cleaner/structured. But after all these years (still mostly Unix scripting but Powershell and some other environments too) my mind has changed. Would like to hear what others would prefer' Unix method with some scripting language or windows method with Powershell)
- chaps 2y agoCombining both powershell and unix is neat!
- 2y ago
- valiant55 2y agoWhat have you moved on to? I don't think I could go back to bash after learning PowerShell and no longer parsing string output.
- hobs 2y agoPretty much all python, dicts work just as well over here.
- JoBrad 2y agoI’m curious about the scenarios that Powershell used to work for you in, and what tooling you’ve moved on to. Do you use something else for Write-Once-Run-(Nearly)Anywhere type scripts? I primarily write Powershell Core scripts for scenarios where I need to execute the same commands on a variety of operating systems, and I know that the script is likely to be maintained by your “typical” sysadmin (highly technical, but not a programmer)in an environment where installing runtimes for programming languages is discouraged. I switched to macOS as my daily driver about 2 years ago, so PS fits these scenarios pretty well, and Powershell Core updated fairly regularly. Sure there are annoying bugs and misses with the built-in and add-on MS modules: networking cmdlets are an almost total miss, Get-LocalGroup (and maybe other commands?) is totally broken on some AzureAD-joined machines, and the Azure and MgGraph Powershell modules still don’t have enough coverage to move on from the legacy Windows Powershell modules (or even to rely on just one of them, for areas they supposedly cover). But overall I’ve been pretty happy that 99% of the time I can write a powershell script once, and it will run on any machine with Powershell Core, in a consistent way.
- hobs 2y agoDon't do as much "local" sysadmin stuff as most of the workloads moved to the cloud and containers, and that's all automateable via APIs which are much nicer to work with in python with its useful library support. (one of the biggest misses in powershell) There's still a lot of good stuff wrt powershell maintainability by normal humans (though the entire mental model of object output usually throws them for a loop for years) managing local stuff.
- pjmlp 2y agoPowerShell has the whole Windows OS libraries, COM and .NET available, without additional installation, a bit more than just Python.
- hobs 2y agoAbsolutely, and the calling conventions for all those pieces of code make no sense to powershell folks :) If you have a background in windows dev or any of those tools then yeah, easy mode go grab your tools, but for most people doing system automation the calling conventions and complete lack of discoverability within the powershell ecosystem (and their tools in no way helping out) made this not a realistic use case. Shoot I have seen some powershell modules that have to embed string C#s and eval thing just to have basic performance or other basic use cases.
- hypercube33 2y agoYou can tell by WinGet which is a new product not even close to supporting anything PowerShell by design and almost being anti PowerShell with its overly verbose output. Which is odd since it's right up powershells alley being a management cli tool
- briHass 2y agoThere is a Winget client module for Powershell. I used it the other day to write a one liner that could upgrade all with exclusions. I didn't want to pin, because I still wanted to see updates I'm skipping.
- vips7L 2y agoDoes anyone even use winget? I tried but its repositories never have the tools I need in it. Scoop has been superior for me in every way.
- 5636588 2y agoUniGetUI (formerly WingetUI) is a really great tool since it supports multiple package managers. https://github.com/marticliment/UniGetUI https://github.com/marticliment/UniGetUI
- StressedDev 2y agoI have found it useful. I used to install PowerShell 7.x, kubectl, Bicep (Azure language for deploying resources), etc. It works fine. The biggest problem I have is I cannot use it to install helm because the helm package is not shipped by the helm team (I don't trust packages shipped by third parties).
- vips7L 2y agoYeah for the things they have its great, I've just found that they lack a lot of stuff. To this day they still don't have Apache Maven in the repository. I just use scoop, I've found that its repositories just have way more tools and it's way easier to contribute to.
- 2y ago
- lhamil64 2y agoWhat have you moved on to? I have to use Windows at work and PowerShell is way better than basic cmd, even better with Windows Terminal. I suppose you could probably install bash or another unix-y shell but that seems like it wouldn't be as integrated with Windows.
- vb-8448 2y agoI wonder why they chose to build something from scratch instead of using python or similar tools that existed before.
- lozf 2y agoThat was a great listen, thanks.
- 7thaccount 2y agoIf anyone from MS-PWSH team reads this, I'd love for y'all to add some basic GUI functionality that doesn't involve me having to write a bunch of .NET. I'm sorry, but the reason I like PWSH in the first place is it's a simple dynamic language with lots of easy to use commands that I can chain together. I'd love to have a new set of cmdlets for creating simple user interfaces and charts. For example, something like the below would be so simple for Microsoft to add to the product and remove a page of boilerplate code that I don't really understand well. Create-Chart -Type "Bar" -XAxis $Cities -YAxis $GDP -OutputFile "C:/Documents/ProjectAnalysis/CitiesBarGraph.png" There are probably users in the millions that are ok at the basics of programming, but don't have the job role to where tools like Java or C# make sense. Python is usually a good fit here, but I really wish Microsoft had something written for us common folks and not just server admins and IT folks. If Microsoft put some more effort into PWSH to where it wasn't turtle slow at things like parsing files and then started adding things like what I talk about above. Maybe even cmdlets for statistics and science...it could be something pretty amazing that your typical business analyst could quickly use to build some really amazing software to do their job better or a prototype for the software team to actually implement in a more robust manner. It's such a really cool technology that has a lot of missing potential IMO. It seems like Microsoft assumes that the three options are full software developer with C#, IT stuff with PWSH, or Excel for the business folks. Excel is really great in a lot of ways, but it is also pretty limited and VBA+Excel is one of the most limited ecosystems I've dealt with. I guess third party languages like Python, R, and so on make for another fourth option, but sometimes I wish Microsoft had spent more time in this area.
- RajT88 2y agoYou are looking for something like Kusto then.
- 7thaccount 2y agoA query language? I don't think that's what I'm referring to at all if I found the right links. Business users can use SQL quite easily and tools like Powershell or Python make automating that easy.
- bloopernova 2y agoAs someone who prefers to read interviews and articles rather than listen, I really appreciate you providing a transcript. Thank you!
- thiht 2y ago> I've gone from professional transcriptions to Descript and then a pass of GPT4 trying to find the right punctation breaks and then me doing a quick read through. I don't think its coming out as high quality as I'd like. I tried reading the transcript and couldn’t reach the end, it’s a bit hard to read in my opinion. I assumed it was machine generated while reading it, but I can’t say why specifically. Maybe it needs a bit of editing to be easier to read. Thanks for the effort anyway, it’s still better than no transcript :)
- adamgordonbell 2y agoIts funny, because professional transcriber will get the same words. But with better choosen paragraph breaks, and sentence splitting and dropping filler words where it hurts readability. Hard to get right, it seems.
- heresie-dabord 2y ago> the transcript has errors. I've gone from professional transcriptions to Descript and then a pass of GPT4... [...] I don't think its coming out as high quality as I'd like. I wondered why there were so many unintelligible passages. I found it laborious to decipher. Thank you for explaining.
- darksim905 2y ago>PowerShell faced extreme opposition at Microsoft, and its creator Jeffrey Snover was demoted for pursuing it. That makes me sad. The dude is absolutely brilliant. Awesome post!