4.1 一次失败的“叛逃”经历——使用macOS和Windows双平台办公
4.1.1 两个契机
在2019年以前,使用Windows平台已经是我的一段渐行渐远的记忆。和很多同龄人一样,我也是在Windows平台上完成了对电脑的启蒙,但自从带着MacBook上大学以后,很久没有使用Windows平台作为主力平台了。
不过,2019年的两次契机让我在多年后重新开始了自己对Windows平台的学习。
先是在2019年4月我筹划为自己的房间添置一台小主机,拿它当软路由(如图4-1所示)及自己在外面时iPad可以远程控制的主机。最初的计划是继续选择熟悉的Mac,买一台刚获得重大更新的Mac mini。但在调研过程中体积更小、成本更低、配置更灵活的英特尔第八代NUC意外进入了我的视野,就这样,我迎来了自己阔别许久的一台新的Windows设备。
图4-1 英特尔NUC
随后,更重要的契机发生在2019年9月。参加工作以后,单位为我配发了一台ThinkPad X390作为办公电脑。本来,我并不介意背着MacBook Pro上下班,对使用Windows设备进行办公的效率也没有信心。但国内办公环境毕竟还是以Windows配合Office为主流,考虑到多储备一些相关经验没有坏处。于是,我便把这台ThinkPad当作主力设备,希望通过类似“断奶”的方式驱使自己再次熟悉Windows平台。
4.1.2 刮目相看
尽管与Windows平台的重逢多少有些不情愿的因素——一次是迫于贫穷,一次是迫于“饭碗”,但实际尝试的感受却让我颇感意外。
我承认自己曾经对Windows平台存在一些刻板的印象,这或许与我上一次主力使用的版本(Windows 8)有关。在Windows 8中,微软试图将针对移动设备的Metro UI推广到桌面端,但不仅让系统显得不伦不类,也让本就平庸的界面更加混乱、割裂。我还记得每次安装系统后都要立即安装第三方主题和MacType来改善视觉效果。此外,我当时刚开始对命令行和代码产生兴趣,但Windows平台对于开发环境的支持很不好,连使用SSH这种基本功能都要另外安装软件,这给新手学习带来了很大不便。因此,在遇到macOS(旧称Mac OS X)时,其美观的界面和与UNIX的亲缘关系让我如沐春风。
但2019年重新上手Windows平台时,它的进步却让我刮目相看。
外观方面,Windows 10已经拥有了一套完整的设计系统,如图4-2所示,系统的美观度和界面统一性因此都获得了显著进步。
图4-2 Windows 10操作系统
Windows 10也摘掉了“对命令行不友好”的“帽子”。例如,WSL(Windows Subsystem for Linux)的加入让使用Linux命令管理、编辑Windows下的文件变得非常简单。我在工作中经常需要整理大批层级很深的文件夹,并对其批量重命名、比较差异等。通过使用WSL,我可以继续使用熟悉的find、grep和diff等命令完成任务。这大大减少了我从macOS平台迁移过来的陌生感。
系统自带的新一代命令行工具PowerShell也让我感到耳目一新,如图4-3所示。与基于文本流的UNIX Shell不同,PowerShell将一切输入输出当作对象。因此,即使一句简单的echo "hello world"打印出的字符串也可以通过.Length方法获得其长度,或通过.CompareTo方法与另一个字符串比较。这在运行单条命令时或许体现不出什么差别,但在需要多条命令协作时能节约不少时间。
图4-3 运行在Windows Terminal中的PowerShell
软件的迁移也远比想象中顺利。在换用Windows平台进行办公之前,我并不担心会在应用软件的迁移上遇到困难。毕竟,浏览器、聊天软件这些常用软件基本都是跨平台的,而每天使用的Office“全家桶”则更是只有在Windows平台上才能发挥全部实力。我担心的是自己熟悉的macOS平台的效率和自动化工具没有对应的Windows版本,但事实表明这种担心是多余的。Windows平台不仅不缺自动化软件,而且很多软件功能更强、成本更低。例如,快捷启动工具Listary(如图4-4所示)不仅能与LaunchBar和Alfred匹敌,还附赠了类似Default Folder X的增强保存对话框的功能;QTTabBar支持下的资源管理器几乎能让Finder相形见绌;最令人印象深刻的要数AutoHotKey,它的脚本能力让用户能轻松实现键位修改(代替Karabiner)、文件监控(代替Hazel)等功能,而且还免费。
最后,Windows平台在NUC上做服务器系统也有模有样,如图4-5所示。虽然这个组合可能入不了资深运维人员的“法眼”,但Windows自带的IIS、活动目录等管理工具可以让我零基础完成内网WebDAV、FTP等服务的搭建及权限管理,使用OpenWRT软路由完成组网的需求也可以通过内置的虚拟机——Hyper-V得到满足。反观macOS,在苹果大幅削减macOS Server的功能后,这些任务反倒都要求助于第三方软件了。此外,Windows的远程桌面功能基于的RDP协议虽然不如macOS和Linux上的VNC协议的适用面广,但功能和性能表现却更好,如无须额外配置就能串流声音、自适应客户端的分辨率等。这为我用iPad远程访问桌面软件提供了很大的便利。
图4-4 Listary
图4-5 通过Jump Desktop远程访问NUC
4.1.3 功亏一篑
本以为从此可以舒服地用Windows平台办公,但没过两个月,Windows平台的各种“痛点”却又把我赶回了macOS平台。
在这些“痛点”中,有的是Windows平台自身的“老毛病”,但让我最头疼的是对高分辨率显示器和多显示器的支持不足。由于经常需要打开多个浏览器窗口并同时编辑多个文档,外接显示器是我工作中不可或缺的。我使用的是21.5英寸的旧款LG UltraFine 4K显示器,物理分辨率为4096像素×2304像素。在Windows平台上,如果按整数倍(如200%)的比例缩放,屏幕元素就显得过大;如果设置为按175%等非整数比例缩放,实际效果就很“考验运气”,经常是窗口边框正确缩放,内容却尺寸如旧或显示模糊。在显示器之间拖动窗口时,还会明显观察到比例切换带来的延迟,甚至打乱窗口的布局。加上Windows平台的字体渲染不佳问题,在Windows环境下使用高分辨率显示器在很多时候会给使用体验“减分”。
此外,尽管Windows 10加入了类似macOS的多桌面(或称工作区)功能,但在操作逻辑上却明显不同,让我感到困惑而难以适应。在macOS中,工作区是依附于显示器的,其范围就是显示器的四边。因此,可以在主显示器和外接显示器间拖动工作区。将一个窗口拖到外接显示器上,也就必然把它拖到了另一工作区。但Windows却采取了一种完全相反的逻辑,如图4-6所示。显示器是依附于工作区的,一个工作区同时包含了主显示器和外接显示器的空间。因此,无法将工作区单独指定给主显示器或外接显示器,也不能将其在两者之间移动。将窗口跨越屏幕拖动并不会改变它所处的工作区;如果此后切换工作区,这个窗口仍然会消失,因为两台显示器都在显示另一个工作区了。
图4-6 macOS平台和Windows平台的工作区功能的区别
我并不否认Windows平台的设计可能有其合理性,但非常不符合我的需求。我用外接显示器主要就是为了将一些不需要经常操作、但需要保持关注的窗口(如邮件、微信、参考文档)“钉”在固定位置,“解放”出另一台显示器用于写作、检索等主要任务。Windows平台的设计在很大程度上排斥了这种使用场景(我知道可以设置某窗口“在所有桌面上显示”,但这毕竟还是一种妥协,也缺少灵活性)。
另一些“痛点”则来自第三方软件的支持不足。在软件方面,之前提及的进步基本只限于系统本身和微软开发的软件。一旦将目光转向第三方软件,时光似乎就又回了上一个十年。Windows平台固然不缺软件可用,但它们的设计感和易用性却仍然普遍低于macOS平台的软件。很多软件就像是一个厌倦了工作的窗口接待员:我可以帮你办成事,但也别指望给你什么好脸色。
不同的软件风格和很低的操作一致性也让人痛苦。随手打开几个软件,你的桌面很可能就变成了一张各个版本的Windows风格“几代同堂”的“全家福”,如图4-7所示。有的是崭新的UWP风格的应用,带着时髦的亚克力质感的侧边菜单;有的则依旧保留着早年的Aero风格和Ribbon工具栏,闪亮的水晶图标掩饰不住与时代的脱节;更有“披着Windows 9x时代灰色素装的长者”,浑身上下透露出历史的沧桑感。
图4-7 风格各异的Windows软件
在硬件方面,公司配发的ThinkPad在工作中的表现也令我大跌眼镜。平心而论,电脑的硬件配置算是很优秀的:X390的定位虽然低于作为旗舰的X1,但仍然属于高端的X系列,配备的i7处理器、16GB内存和512GB NVMe SSD基本也都是可选配置中的高档硬件。但这台机器完全没有体现出与其定位相称的“素质”。首先,X390的屏幕显示效果十分堪忧。标配的1080P雾面屏亮度不足且色彩暗淡,仿佛刚从漂白液里捞出来。在打开几个浏览器窗口和Word文档的负载下,它的电池可以在两个小时内从100%降到20%以下,“轻薄便携”和“商用”的标签因此也只能是说说而已了。
更大的问题在于性能表现。无论我如何调整节能和功耗配置,只要连接外接显示器,如图4-8所示,X390几乎必然会在几十分钟后开始降频,最终挣扎在600MHz到800MHz的区间内,并且除了重启不能恢复。在这样的极端低频下,即使打开资源管理器这样的简单操作都会变得极其缓慢,更不用提使用浏览器和Office这类资源占用率高的应用了。
图4-8 X390连接外接显示器
ThinkPad的性能优化存在问题成了我离开Windows平台的最后一个理由。如果说操作逻辑的不同还可以适应、软件质量的平庸可以忍耐,但在老板要求发文件时突然死机,或者因为软件崩溃让数小时的工作功亏一篑,就让人无法忍受了。
表面上看,这些软硬件问题并不是Windows的责任。但一个平台的软硬件质量在很大程度上取决于平台给开发者和厂商提供了什么样的资源。Ars Technica的资深Windows撰稿人彼得·布赖特(Peter Bright)就曾在比较Windows平台和macOS平台的软件开发生态时指出微软没有给软件开发者提供足够的工具。例如,如果macOS开发者需要给软件加一个文本框,那么,NSTextView不仅提供了统一的文本框样式,还附带了拼写检查、撤销、设置文本格式、自动折行等一系列相关功能。而开发Windows软件时,很多类似效果的实现需要开发者自力更生,功能缺失和不一致性因此随之而来。此外,微软为了维持Windows的兼容性,让系统背上了沉重的历史包袱,也削弱了开发者采用新技术、迁移到新架构的动力。
类似的道理,微软虽然不能手把手帮厂商优化Windows硬件,但至少应该为厂商提供更多的标准和指导。微软并非没有做过类似尝试,如与厂商合作推出“Signature Edition”特别机型,或通过Windows Hardware Lab Kit认证指导硬件设计等,但似乎都沦为口号,成效十分有限。
显然,要真正改善Windows平台发展不均衡的现状,避免让大力投入成为一种“自娱自乐”,微软还需要更大的决心和毅力。
4.1.4 功不唐捐
尽管我重新拥抱Windows平台的尝试以失败告终,但这段经历也没有让我空手而归。
首先,最明显的收获是我复习了不少Windows和Office技能,了解了一批Windows平台的优秀软件,并积累了常用的自动化流程在macOS平台之外的实现方法。
其次,从一个软件爱好者的角度看,深度使用Windows平台让我抛弃了对它的刻板印象和有色眼镜,在回过头来评价macOS平台时,也有了新的参照系。macOS平台并不处处都比Windows平台更好,相反,制约Windows平台软件质量的很多因素如今在macOS平台上也有抬头之势。例如,Catalyst让开发者和用户都感到困惑,macOS Catalina激进的安全策略严重影响了第三方软件的正常运行,开发文档的质量出现明显下滑等。
最后,在两个系统上使用跨平台软件的体验也让我感到跨平台的趋势并不会像很多评论者认为的那样,让操作系统的区别变得无关紧要。Electron等开发框架只是为软件运行提供了一个移动舞台,但最终的“演出效果”仍然取决于操作系统的保障服务(如性能优化、字体渲染等)的水平和开发者的用心程度。用户可能不关心或不了解自己用的是什么平台,但并不代表他们对于软件的差异和优劣就没有感知。正如Twitterrific的开发者在评价Catalyst时说的:框架给跨平台开发带来的简便只是假象;没有为不同平台进行有针对性的优化,没有对交互和设计的认真思考,就不可能做出真正优秀的跨平台软件。