cover of episode Shell scripting, with Steve Lee (Microsoft) - S04E04

Shell scripting, with Steve Lee (Microsoft) - S04E04

2023/5/18
logo of podcast Console DevTools

Console DevTools

AI Deep Dive AI Chapters Transcript
People
S
Steve Lee
领导 Block 的开源比特币项目 Spiral,并参与比特币共识变化研究。
Topics
Steve Lee 认为 PowerShell 是一种“粘合语言”,主要用于快速测试 .NET API、原型设计和简化系统管理任务,而非构建大型应用程序。PowerShell 基于 .NET 构建,具有强大的对象管道功能,允许用户将结构化数据在命令之间传递,提高效率。PowerShell 的开源历程始于 2016 年左右,经历了从微软内部的私有代码库到 GitHub 的公开代码库的转变,这其中涉及到代码迁移、测试框架重写、代码清理等大量工作。开源后,PowerShell 实现了跨平台兼容性,支持 Windows、Linux 和 macOS 等多个操作系统,以及多种处理器架构。PowerShell 的未来发展方向包括改进对非 cmdlet 命令的支持,例如更好地处理 JSON 输出,以及更自然地集成 AI 功能,例如利用 AI 预测命令参数值,从而提高用户生产力。团队还计划通过 RFC 流程和工作组,与社区成员密切合作,改进 PowerShell 的功能和用户体验。 Steve Lee 还详细介绍了 PowerShell 开源过程中遇到的挑战和解决方案,例如代码库的迁移、测试框架的重写以及跨平台兼容性问题的解决。他强调了团队与社区的合作,以及如何通过 RFC 流程和工作组来改进 PowerShell 的功能和用户体验。他还分享了团队对 PowerShell 未来发展的规划,包括改进对非 cmdlet 命令的支持,以及更自然地集成 AI 功能,例如利用 AI 预测命令参数值,从而提高用户生产力。

Deep Dive

Chapters
This chapter explores the core functionalities of PowerShell, highlighting its object-based pipeline, .NET API integration, and cross-platform capabilities. It also discusses the advantages and limitations of using PowerShell for scripting versus full application development.
  • PowerShell's object pipeline allows for structured data manipulation, unlike traditional text-based pipelines.
  • PowerShell's .NET integration enables access to a wide range of APIs for diverse functionalities.
  • PowerShell's cross-platform support extends its usability beyond Windows-based systems.
  • The choice between scripting and programming languages often depends on project complexity and specific needs.

Shownotes Transcript

In this episode, we speak with Steve Lee, principal software engineer manager on the PowerShell team at Microsoft. We start with what PowerShell is and why its object-based approach is interesting, then get into what it was like open sourcing a project at Microsoft back in 2016. We discuss the transition to using GitHub and what it's like managing an open source project at scale, bouncing community with features, bugs, and requests from users, alongside Microsoft’s goals. We also talk about PowerShell and its relation to AI, before we get some insight into what we can expect from it in the near future.  

Things mentioned:

ABOUT STEVE LEE.

Steve Lee is the principal software engineer manager on the PowerShell team at Microsoft. He’s been with the company since 2000 when he started out working on Internet Explorer for Unix. More recently, his team was responsible for PowerShell Core 6, the open-source cross-platform (Windows, Linux, macOS) version of the object-oriented scripting and interactive shell, developed on GitHub.   

Highlights:

Steve Lee: I think the way we position PowerShell, it’s really a ‘glue language’, and not intended for developing full applications. Now, I do know that there are folks in the community who built very complex systems on PowerShell script and we’ll support them by all means, but it's not intended for that purpose. It’s really for— What we use within our team is really like, you're trying to test out some new .Net API. It's actually much faster to write it in PowerShell script with a few lines of code than running C# that you would have to compile and do that work. So it makes it very easy to test out new things, prototyping before you commit to writing critical proper development code.

[0:08:46 - 0:09:22]

Steve Lee: Everyone probably saw how Bing and ChatGPT has integration. So that’s something— AI is on top of everyone's mind. And that is something that we've actually been looking at for a while. So I'm not sure if anyone is aware but, we had — even before ChatGPT, even before some other popup ones that came out, like Stable Diffusion and stuff like that — we were looking at AI several years ago before things were ready. And we actually have a plug-in model. So PSReadLine is a model that we use as the way to present the interactive experience for PowerShell users. And so one thing that we did back in, I think 7.1 — which should have been probably, what, two, three years ago — is we added a predictor plugin, so someone could actually build a predictor in C# and be able to present that through PSReadLine to the user.

[0:27:27 - 0:28:13]  

Let us know what you think on Twitter:

https://twitter.com/consoledotdev)

https://twitter.com/davidmytton)

https://twitter.com/jeanqasaur)

Or by email: [email protected])

About Console

Console is the place developers go to find the best tools. Our weekly newsletter picks out the most interesting tools and new releases. We keep track of everything - dev tools, devops, cloud, and APIs - so you don’t have to. 

Sign up for free at: https://console.dev)