〔№002〕摸着微软过河

“微软用啥我用啥,微软吹啥我先等等”

缘起

前一篇《真理标准大讨论》上传之后,九省通衢の煎蛋立刻出现了活跃色目帐号应景提供素材:

地缚灵
地缚灵

所以,本篇决定除了继续讨论「摸着苹果过河」之外顺便讨论「摸着微软过河」之真理。

就在两个月之前,「ReactOS」发布「0.4.9」版,终于实现了Self-Hosting,也就是「自举」,可以在ReactOS之上编译ReactOS本身的源代码,这个标志意味着「操作系统终于站起来了」。因此到处贩卖Win2k光盘之「地缚灵」能否「解脱」尚不可知,但微软应该可以「解脱」了。

前一篇不惮以最大的恶意揣测「苹果对GNUstep的态度比微软对Mono还要恶劣」,其实可以换一种说法,说「与微软对Wine的态度一样恶劣」就可以了。细节各位自己搜索,总之这个和Wine紧密合作的ReactOS正在挖微软墙角挖得不亦乐乎岂不美哉。至于微软是否能乐乎美哉,可以去九省通衢の煎蛋根据活跃色目帐号转载的内容顺藤摸瓜找到活跃于微博的色目「大危」询问。

先从「果粉」态度出发讨论对苹果的「摸法」之真理

刚才在知乎首页今日头条位置醒目应景推荐的是这篇文章:《孫志貴:Qt是妨害macOS桌面体验的大敌》。在评论区当中果然出现了「真理标准大讨论」,热火朝天的景象蔚为壮观。而作者也应景呼吁「Apple或许真的可以考虑将在Mac系统内常用的介面渲染库等内容进一步共用到Windows上、供研发者们使用了」。

可以参考微软的情况嘛。天竺「云哥」登基之后,立刻大刀阔斧推动.Net Core开源并且跨平台,于是之前用户对Mono的抱怨,以及微软对Mono之恶劣态度,在微软爱好者踊跃发言当中就已经被雨打风吹去了也。至于当年「光盘哥」鲍尔默在位期间据称看见员工用iPhone就夺过来当众摔烂在地并踏上一只脚还威胁员工永世不得翻身的往事,那就「为尊者讳为尊者讳蛙蛤蛤蛤」,识大体顾大局懂政治讲规矩守纪律嘛。

所以,我不惮以最大的恶意揣测苹果并以微软类比,还鼓吹「天下乌鸦一般黑」之类人缘差情商低的歪理邪说,无一字无来历。太阳底下没有新鲜事,诚哉斯言。

回到主题,目前GNUstep远没有达到Qt的成熟度,只能说将就着可用来实现简单的用户界面。与其它活跃开源社区相比,GNUstep的劣势在于用户群体太少,爱好者多半身兼「果粉」,而认同「一切皆对象」哲学和OpenStep理念却坚决不肯膝盖生根头顶绿得发黑贱到骨子里去了「依附」苹果的理想主义者就更少了。

于是,在苹果恶劣态度与其它路线图执行者的多方围堵两面夹攻动辄放话「何物龙套,敢共作者编剧导演作色」并钦定死路一条的情况之下,GNUstep却顽强的生存并发展。对比「没有自知之明」的Borland那种在「依附」微软的情况下还企图「成功」结果不出意料的「从一场失败走向另一场失败直到最终失败」「身死族灭为天下笑」的反面典型,赛博朋克英特纳雄耐尔主义就是优势。

诚然,GNUstep相关应用项目曾经停滞了几年,如果我们拿着整个局面中的这一方面来看,敌人是得到了暂时的部分的胜利,我们是遭遇了暂时的部分的失败。这种说法对不对呢?我以为是对的,因为这是事实。我们说,赛博朋克英特纳雄耐尔主义是历史纪录上的第一次,GNU是宣言书,GNU是宣传队,GNU是播种机。自从盘古开天地,三皇五帝到于今,历史上曾经有过GNU这样的开源运动么?从1984年,也就是「GNU」路线图创立的那一年,还是「Objective-C」诞生的那一年开始计算,34年光阴中间,天上每日几十家大手会社围追堵截「政治敏感」「亦当删去」,地下每日几十万活跃色目帐号造谣污蔑栽赃陷害颠倒黑白混淆是非,路上遇着了说不尽的艰难险阻,GNU却动员了每个参与者的十个手指头,开展了几十个项目,开发了几百种软件。

扯远了……

回到「果粉」态度,作者提到了「从OpenGLMetal的过渡」,这其中又体现了斗争旧动向。

简单说,OpenGL本来目标是业界「共识」,但是微软一边发展自己的DirectX系列一边加入OpenGL组织充当搅屎棍,直到DirectX翅膀硬了微软退出OpenGL组织之后,OpenGL才开始突飞猛进发展。而苹果早期也支持业界共识,直到「业界」决定在AMDMantle」基础上转型升级并改名「Vulkan」之后,估摸着自己翅膀也硬了,就推出「Metal」了也。

在苹果这里,OpenGL主要是用来为Quartz引擎渲染Aqua界面提供硬件加速的,而对于二维场景则有专门的「Quartz 2D」引擎,运用了PDF标准,也是来自「NeXT」的「Display PostScript」技术。关于这个话题曾经在知乎提问但没有人答疑解惑:

知乎问答〔№055〕在「计算机图形学」当中,有没有运用「复分析」相关成果的「二维图形」处理引擎?

而最近在「三自运动」期间的随笔和告一段落之后写的《〈恶补记〉流水帐》当中提到了,目前比PDF更适合称为「电子纸张」的技术是「SVG」,目前也是业界共识,并且W3C还成功说服了微软和Adobe两根搅屎棍识大体顾大局懂政治讲规矩守纪律,至少迄今为止是这样。苹果的情况也是高举紧跟,提到过目前主流浏览器当中只有「Apple Safari」支持「SVG Font」,虽然在「SVG 2.0」标准中已经去掉了,不过对于我可能遭遇的随手造字之类场景来说还是必要的,可以通过指定「SVG 1.1v2」版本回退实现。

那么最起码,在二维场景当中,如果GNUstep「摸着苹果过河」就不见得是「山寨」了吧。既然已知SVGPDF「不知高到哪里去了」,那么保证接口和Quartz 2D相同就可以了也,内部实现没必要把「大手会社」的弯路都走一遍,这就叫「推陈出新」「青出于蓝而胜于蓝」「冰生于水而寒于水」「长江后浪推前浪」「一代新版换旧版」什么的。

别的就没啥好说的了,因为Objective-C只是「盖在C语言之上的薄薄一层」,那么包装既存的极大充沛的C接口第三方库都很轻松。并且苹果自己也在这么干,比方说(2004年买了iBook G4之后简单实践过程中发现)「Core.Data」就是包装了连开源协议都不需要而直接声明属于公众领域的「SQLite」引用了赛博朋克英特纳雄耐尔主义者的劳动成果。

总之,既然macOS的哲学路线图此消彼长,来自Unix的部分逐步压倒了来自NeXT的部分,那么GNUstep正好可以在GNU计划内部「摸着苹果过河」,凡是苹果借鉴过的都要照葫芦画瓢包装一遍 ,苹果没借鉴的也要包装一遍,来自其它开源协议的「友军」成果同样可以「拿来主义」嘛。赛博朋克英特纳雄耐尔主义者想必都深刻领悟了「敌人有的我们也要有否则敌人可以嘿嘿嘿我们只能啊啊啊」的道理。

接下来讨论关于摸微软的真理

开头「缘起」当中已经提到了,WineReactOS就是境外赛博朋克英特纳雄耐尔主义者的「实践」,迄今为止成果充沛,可不是在高音喇叭里面循环播放各种「大力」这个那个的夯头文件之嘴炮哟。

之所以赛博朋克英特纳雄耐尔主义者对于微软之作风深恶痛绝还坚持(在活跃色目帐号话语体系当中)「腆着脸」「抱大腿」「嘴上说不要身体却很老实」「真香」什么的,是为了高举全人类文明进步的伟大旗帜为了保护全人类积累的赛博朋克资产的光荣目标而进行正确奋斗。相关内容在龙空谈笑风生过,收集到了知乎的这个回答当中:

知乎问答〔№148〕开源硬件的前景如何?

前一篇已经提到了兲朝新时代中国特色社会主义大好形势下繁荣的中文互联网上河清海晏歌舞升平之盛况,所有「为人民服务」的领域差不多都是人缘好情商高的前三排民族企业家提供的Win7/IE8之类识大体顾大局懂政治讲规矩守纪律配合主席台夯头文件出台的方案。就看活跃色目帐号得意忘形肆无忌惮不打自招也知道,「信息化工作」中但凡出现什么技术问题,「改用IE」就可以了,如果还解决不了,把「窗子」关上再打开,就自动搞定了。

而对于普通人民群众来说,可能体会最深的是「网络支付」相关部分,除了用大拇指搓手机之外有时候还需要「微机」操作的场合,尤其是在银联网联收编了一堆第三方支持机构的情况下。早期各家「网络银行」只提供IE下的ActiveX插件,只能用IE转账,后来才有ChromeFireFox的插件。而我亲身经历当中,知道(十几年前)招商银行专业版是用Borland Delphi开发的,那界面风格明显一眼就能认出来,现在的情况不知道。

而反面典型Borland的情况如今已经众所周知了,在知乎首页推荐当中极大充沛的信息技术从业人员也指出,经常能接到旧项目「转型升级」相关询问,通常客户就给个Delphi的源码包,结果从新往旧找了好几个版本都打不开,还经常依赖一堆第三方商业组件,其开发商也都退出历史舞台了,根本没法改。于是,一般这种情况「转型升级」都无疾而终,不是再次捋顺需求换微软技术栈重新开发一套,就是建议客户用虚拟机装旧系统凑活着用。

曾经Borland也武德充沛险些兲命昭昭,过程可详见记载其悲壮一生的《Borland传奇》纪实文学。而Delphi已经是吸取历史教训之后的产品了,之前的Borland C++就是因为微软卡住MFC授权给Borland提供「1.0」版而自己用「2.0」版才失败。而Borland自力更生艰苦奋斗的OWL设计更出色,现在都有「OWL Next」也是活跃开源项目,但受制于版权。

所以才反复强调「形而上者谓之道」,当时「对力量一无所知」的贱种屁民如果看Borland在「形而下者谓之器」领域技术出众就「站队」,最终「追随者」会发现被「政治和意识形态斗争」玩死于是只能发出「做鬼也不放过你」之类「败犬の哀嚎」,还会被活跃色目帐号谆谆教导「礼不下庶人」之类兲朝特色「依法治国」条款。

在「千禧年」前后的那个政治和意识形态大背景之下,即便境外发达国家尤其美帝灯塔国,即便是对微软做派嗤之以鼻的信息技术从业人员,通常也会捏着鼻子高举紧跟,无论活跃色目帐号怎么侮辱嘲笑都唾面自干。一般表现都是微软用啥我用啥,微软吹啥我先等等

比方说Windows本身就是用C写的,各种API都是C接口,那么用「Microsoft Visual C++」比较保险。而Basic虽然是微软龙兴之地,但是商界奇才都是「候鸟」,以转进如风为荣以坚守阵地为耻,不定啥时候估摸着剩余价值已经榨干就杀伐果断的抛弃了。果然VB6是最后一版,迄今为止都有制造业相关「信息化」项目还在用「Win98」坚决不升级,就是因为当年蹭热点以「VB6 + OCX」开发了一堆直接读端口的应用并且运行良好。

生长在兲朝境内孤陋寡闻并且被贫穷限制了想象力的我,当时倒没有想这么多,只是出于数学渣「职业习惯」相信什么「磨刀不误砍柴工」决定从基础开始「一步一个脚印」而不是向着锻炼人缘及情商企图「火箭般蹿升」方向努力,所以就从当前环境「Microsoft Windows」最根本的立足点开始「刷题」。内容详见这个回答:

知乎问答〔№079〕如何看待中国学生为了进Google、微软等企业疯狂地刷题?

所以,从这个角度观察,WineReactOS就是咬紧牙关断微软后路的绝户工程。目前就看进展,虽然界面「土得掉渣」但支持amd64架构啊,DirectX支持到「9.0c」,.Net Framework支持到「4.0」,其它细节各位自己搜索。总之,截至到「史上最成功操作系统」的Microsoft Windows XP的大部分经典场景都可以运行,无论来自全球什么组织和个人的无论是否出于商业目的而积累的相关赛博朋克资产基本上都有了保证。

另外,之前也说过了,微软自己在.Net Core当中也没把WinFormWPF跨平台,前者依赖GDI+没有硬件加速,后者依赖「DirectX」有硬件加速。提到这点的时候就看活跃色目帐号到处转发电子游戏相关动图短视频,所以轮到我嘲笑它们「孤陋寡闻」「也就这点素质了」。不惮以最大的恶意揣测,这是微软企图在「云」端使用Linux之类久经考验的也在「大手会社」之间达成共识的服务器操作系统,与此同时还要继续垄断「桌面」客户端。

不过呢,这种事微软自己不干有别人干,「不就是接口么」,内部怎么实现另说,哪怕用Vulkan或「Apple Metal」。

后记

最后补充说明,前面提到的GNU「计划」是狭义的「Unix-Like」环境,而使用GPL「协议」的其它开源项目并没有计算在内。如果采用广义解读,赛博朋克英特纳雄耐尔主义阵营还要壮大许多。而若是「团结一切可以团结的力量」,联合其它开源协议组成「统一战线」,那么就该「试看将来的寰球,必是啥旗的世界」了也。

2018-10-05