上一篇《用户评论:Windows Server 2012 PowerShell惹争议》中对PowerShell的讨论颇多,本文继续上篇的话题,这场对话可谓激情四射,铜牌用户eulampios希望一试身手,并开始与某位匿名用户展开讨论。此次讨论迅速升级为纯技术议题,awk与bash的优势也作为参照物被牵扯进来。
开端:
shell是一种旨在将各类程序契合在一起的接口。它的作用是为用户与程序提供一种方便、简单且无缝的交互方式。
诚然,bash能够在无需借助util的前提下实现大量功能,但它的运行速度较慢、在很多方面也显得过于薄弱(perl 5在运行速度上百倍于bash)。然而我们却偏向于使用bash,而不是接近完美的util。
posix shell与posix util的强大之处在一起这是一套独立、简单且极为高效的util环境,应用能够在其中随意与其它应用及shell进行沟通,进而实现KISS(即简单、傻瓜)原则。这种组合中的独立元素往往小巧而且简单。同样,emacs是一种独立合并shell与util的集合,并且赋予这一集合独特的能力。有鉴于此,emacs在由shell命令构成的dired、grep、tramp及calc等复合式模式中表现突出。
不过PS在附加组件方面更臃肿也更难以划分,就我看来创建一套复杂笨重的怪物机制与创建shell并不是一回事。
匿名用户则回复道:
ls能够显示文件与目录。它也有多种选项用于控制输出格式以及类型排序。因此ls所针对的并不是“单一任务”——它针对的是其它命令也能实现的多项任务。这种设定显然有悖unix的一贯风格。
find也能用于显示文件与目录。它也具备多种选项用于控制输出格式,甚至能通过选项实现*执行其它进程*。这是什么情况?为什么find功能还要执行其它进程?我们都知道Unix讲究的就是“只做一件事,并把它做好”,而以上设定根本不符合其基本思路。
ps用于发现进程。它拥有很多很多相关选项,旨在控制过滤机制、输出格式以及排序。为什么要在选项中包含这么多其它功能,而不是仅仅专注于命令本身要执行的任务?这也跟unix风格不相符,对吧?
再来看PowerShell。ls是Get-ChildItem的别称——其作用只有一个:显示文件与目录。与*nix相比它几乎没有什么附加选项——因为它根本不会涉及输出格式或者排序等事务。它也不需要具备庞大的过滤机制,因为它所列出的对象几乎包含所有我们打算过滤的属性。
因此哪种shell在设计上更偏向于功能单一且追求最佳效果?我们看看操作命令。PowerShell中的一条命令只会处理一项工作,而不像*nix命令那样把所有功能都强塞进来。我们还可以通过简单的方式将多种PowerShell命令结合起来以实现*nix shell无法完成的效果。
在一阵你来我往之后,KingZongo显然感到胸闷气短,于是总结出以下反对意见:
Windows Server曾经是彻头彻尾的废品。现在情况发生了转变,但我们也不能说它已经趋于完美。
Linux曾经是彻头彻尾的废品。现在情况发生了转变,但我们也不能说它已经趋于完美。对于任何大家能想到的任务,我们都会发现Windows可以通过比Linux更科学的方式完成。总而言之,Linux取得了进步、不再一无是处,但也仅此而已。
这样的论断当然不足以平息此次纷争,但我们仍然决定将它列举出来。现在暂时不谈PowerShell,再来看看一个饱受争议的话题:对于开发者社区而言,为微软平台开发应用到底明不明智?一位匿名用户认为微软的产品已经“对VMware构成了严重威胁”,但死硬派软黑用户Eadon则如是说:
供应商在为Windows编写了一段时间应用程序之后,却突然发现微软成了自己的竞争对手,这种现象难道还不够诡异么?可以说为Windows编写应用就等于是在给自己构筑潜在风险。只要开发者赚到钱,微软就会很快发布自家版本,并试图把我们辛苦创建起来的市场一股脑偷走。
匿名用户则回复称:
Hyper-v与VMware的竞争主要表现在管理程序与裸机层面。尽管还处于工作站虚拟化阶段,但二者在市场上都早已不是什么新人了。
你的意思是说操作系统制造商不应该为自己的系统开发应用吗?这就像在说因为IBM推出了z/OS,所以他们就不应该再开发DB/2了,因为甲骨文在他们之前率先开发出大型机关系类数据库。
与此同时,金牌用户JDX认为这就是“资本主义的本质”,并指出:“当企业试图阻止他人跟风推出同类产品时,你又会抱怨‘愚蠢的软件专利扼杀了自由竞争’。微软没问题,你的心态才有问题。”
Jean Luc也加入战团,以Armstrong Defence的演变为例推导这一话题:
好吧,我也说几句。现在大家争论的是老牌操作系统厂商昧着良心为自己的系统开发应用——震惊,我对这种论调表示强烈震惊。首先,如果这都能算是错误的话,那业界还有哪家公司算是楷模?
苹果?他们可是非常乐于开发iOS应用,并公开与其它开发者展开竞争。这种情况过去发生过,未来还将继续出现。
Linux?我就只能呵呵了。比如说我们是一家针对广泛的潜在用户群体开发软件产品的供应商,一套方案出台之后相信用不了多久就会有GPL支持下的同类产品面市。这里我并不是要批评Linux,只是想提醒各位,其实用户本身也希望事情照此发展。
其次,大家真的是站在用户角度希望通过付费插件的方式实现基本操作系统功能?就像PDF查看工具、调度程序、CD记录工具以及DVD播放器那些?过去这些东西都不属于Windows系统,但现在已经成为必不可少的组成部分了。
没错,在Windows系统平台上开发应用会给自己带来风险,但这种风险在其它系统平台上同样普遍存在。微软在历史上曾经多次坑过自己的合作伙伴,但这也只是IT竞争中的常见状况,如果认不清这一点,恐怕只能说你太过天真了。
总结:我本人对微软没什么好感,但大家为什么会认为微软比起其它技术巨头更低劣、更卑鄙?
相比之下,The Vociferous Time Waster则对NFS 4.1的贡献抱以讥讽:
“它是一款专为异构环境打造的杰出存储系统,同时也为VMware服务器提供了理想的网络存储点。”
把Windows Server作为VMware服务器的后端NAS?哈哈 哈哈 哈哈 哈哈,这恐怕是我听过的最荒谬的笑话了。
虽然许多用户都在尽量克制,但技术讨论圈中已经出现一种颇为悠久的传统,即任何与Windows有关的讨论都将不可避免地沦为Windows党与Linux党之间形式各异的冲突、对喷甚至是破口大骂。也许我们应该为这类讨论制定一条明确界线——只要任何人提到杀毒软件或者FOSS(即自由及开源软件)系统所必需的技术团队扩张,讨论就立即结束。就在这时,首先开炮的Eadon再度降临:
Windows简直就是种耻辱,它不具备任何Linux所持有的优势、居然还好意思跳出来叫板。Windows根本毫无竞争力,它在服务器领域就是小孩的玩意——时刻需要重启、必须安装杀毒软件、缺乏扩展性而且在文件及内存管理方面也非常差劲。更离谱的是,这种东西居然还要钱。
Reg网站铜牌用户GitMeMyShottinIrons则给他施以迎头痛击:
你知道我们为什么不会在上世纪九十年代讨论NT系统吗?如果要拿传统印象来评判,那Linux不也有一大堆毛病么。糟糕的驱动程序支持、一丁点微小的问题都需要对操作系统本身进行重新编译,但那都已经是历史了,就像你说的那些Windows缺陷一样。
至于你说的杀毒软件,如果敢在任何一台文件服务器的操作系统中“裸奔”,那你的下场绝对可想而知(还会感染客户机哦)。
铜牌用户Stevie显然受够了这一切,他表示:
这些反Windows人士发出的厥词只会令我对你的使用经验产生怀疑。你到底有多少年没碰过甚至没正眼看过Windows系统了?我想说的是,如果我仅仅通过红帽发行版4.2的恶劣体验就对整个Linux阵营指手划脚,恐怕你也会对我展开口诛笔伐吧。
针对这一点,JaimieV 回复道:
我也有同感——相信每一位用过红帽4.2的朋友都会想借酒浇愁、希望永远忘掉那段噩梦般的经历。
话题就此被终结,很公道、也很容易理解。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
PowerShell功能获扩展:微软引入网络交换机
通过本地PowerShell管理网络交换机会快速提升管理人员工作效率。现在,假设你非常愿意尝试使用这项新功能,你该如何着手做呢?
-
如何优化Hyper-V动态迁移
当我们在执行Hyper-V的动态迁移时,系统会被冻结。那我们该如何减少迁移的范围以及优化数据传输的性能呢?
-
掌握Windows Server 2012 R2重复数据删除技术
重复数据删除技术是Windows Server 2012和Windows Server 2012 R2的自带功能。学习更多关于数据删除的技术来清除重复的内容,释放更多可利用的存储空间。
-
Windows Server 2012 SR-IOV技术工作原理解析
SR-IOV技术允许Windows操作系统和微软的Hyper-V或VMware的ESXi等hypervisor对服务器的磁盘I/O设备进行封装,管理甚至共享。