导读:PowerShell 如今已成为 Windows 系统的重要组成部分,但是这是作者与微软官僚机构抗争,才将该 Shell 纳入微软的操作系统技术栈中。
Jeffrey Snover被称为 PowerShell 的发明者,但他总是将功劳归功于团队。
在一本称为《Shell of an Idea》一书的前言中,Snover 称其为“一群出色的工程师努力将一整套新技术打造为连贯体验的故事。与此同时,他们还经历了一场长达数年的公司内部政治斗争……”
Shell of an Idea一书封面
这是一个令人振奋的产品,它创造了一个被数百万人使用的工具神话,有时甚至开启了他们的职业生涯并改变了生活。
到 2016 年,这个无处不在的配置管理工具甚至已经脱离了 Windows 操作系统,成为开源软件,还可以在 Linux 上使用。
https://github.com/PowerShell/PowerShell
今年 3 月,微软宣称PowerShell 甚至已经超越了其作为系统管理员工具的本质:
“现在已经被自称DevOps、Cloud Ops 甚至开发人员的角色所使用。”
但这一切是如何开始的?Snover在一则播客节目中分享了一些“令人震惊”的故事,这些故事讲述了微软内部关于是否要将PowerShell付诸实践的争论。根据斯诺弗的LinkedIn 个人资料,他现在已经在Google的网站可靠性工程部门工作。
但他还是忍不住回顾了一下这个工具的影响——以及他们一路走来不得不做出的艰难选择。
所有这些都是为了让那些在凌晨 2 点面临危机的无名系统管理员的生活变得更好。
但是“如果我能将它发布到 Windows 中,它将出现在数亿或数十亿台机器上,你知道,数千万人将使用它。这确实是一个机会——一个产生影响的机会。因为这与金钱无关......而是关于影响世界的能力。”
为了与 Unix 竞争,该计划是通过操作系统的“Windows 管理工具”界面开发用于管理网络配置和其他任务的命令行工具(该工具最初名称为“Monad”)。
Unix 系统有它的局限性。
2002 年的一份名为《 Monad 宣言》的白皮书这样指出:Unix 提供的可组合性(复杂功能由较小的组件组装而成)“存在缺陷”,Unix 通过“非结构化文本”将它们连接起来,最终形成了“笨拙、有损、不精确的文本操作实用程序”,称现状“困难而脆弱”,“基于祈祷的文本流解析”和“笨拙、不一致和不精确”的机制等。
Snover 这样告诉Corecursive频道,他雇佣的承包商团队甚至已经为 WMI 命令行实用程序 ( WMIC ) 实现了前 70 个操作。但在此过程中,Snover 了解到了在微软工作的一个“肮脏的秘密”。“微软的垃圾箱里有成堆的很棒的功能,因为他们开发了这些东西,但没有测试组织的带宽来签署。”
因此,为了绕过这个问题,Snover 创建了一个“通用”型命令生成器,认为它对某个命令的特定配置只是元数据。
“人们反对我这样做……而这就是人生的教训之一:时不时地,你只需要知道什么时候该当个傻瓜。如果你从不当傻瓜,那可能意味着你没有做出足够勇敢的改变或将一个沉默寡言的组织推向它应该去的地方。”
但Snover来说,对世界产生影响比头衔等东西更有价值——甚至比随之而来的金钱更有价值。“我说,‘嘿,你知道,我觉得我可以用这个东西改变世界。好吧,我被降职了。这是很糟糕。但如果我能成功,并把它融入 Windows,伙计,我就能影响数百万人的生活了。’”
在与其他团队集思广益讨论各种可能性时,Snover 似乎顿悟了。“我们意识到,计算曾经很有趣。后来它似乎不再有趣了。但这个又很有趣了。”它有一个社交元素。与基于 GUI 的解决方案不同,在基于 GUI 的解决方案中,问题只需单击即可不可见地解决,而脚本化解决方案会创建一个可与其他用户共享的工件——脚本本身。“你在使用一种语言,对吧?你在交流。”
“然后我有了这个神器,我把它发布出来,人们都在使用它。我感激不尽。就像,他们欠我一杯啤酒。”
“人们最终会欣赏你记录下来的聪明才智”。Snover 如此说道,这在基于 GUI 的方法中永远不会发生。因此,他宣称基于鼠标和 GUI 的方法是“反社会的”。经过多年的变化,这就是这种社会环境……
“那一刻真的让人感觉,‘伙计,我们玩得太开心了。’”
“哦,那真是太好了,”Snover 满怀感激地说道。
“是的,他们成了英雄。他们被邀请在会议上发言。许多人因此成为了专业演讲者。这太神奇了。”
Snover 告诉Corecursive,他还看到了另一个巨大的影响。在微软 Office 部门工作时,他从该部门的高级经理Perry Clarke那里听说,“PowerShell 是微软进入云端的主要原因。”Clarke 说,Office 率先引领了这一潮流——“Office 通过Azure 顺利进入云端。”
但更重要的是,“如果没有 PowerShell,我们永远无法进入云端。”想象一下,通过一次又一次地点击 GUI 界面来配置每台服务器。“你无法多次执行此操作……”
Snover 在接受Inside IT Automation采访时重述了这个故事。通过能够编写脚本、能够自动化所有操作、能够说‘哦,嘿,我这样做了,但不太对。改掉这个。’大规模地应用这项技术让他们能够实施”成为 Microsoft Office 365 的早期先驱,为 Azure 进入市场铺平了道路。”
故事结束时,Snover 开心地开玩笑说:
“哇!他们欠我更多的钱了。”
作者:聆听世界的鱼
参考:
https://thenewstack.io/jeffrey-snover-remembers-the-fight-to-launch-powershell/
本文为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。