小白 发布的文章

Windows Terminal 发布以后,立刻引爆了整个技术圈,各种社交媒体上纷纷传播着它的消息,它开源的 GitHub 仓库的星标数一路飙升,迅速成为当日 GitHub 趋势榜的首名,甚至连它 issue 区都挤满了人——以至于项目运营团队紧急出场管理。不过,在我观看了相关的资料和视频以后,感觉并没有那么令人兴奋。

在我看到一时间出现的很多文章,都视 Windows Terminal 为 Windows 下命令行体验的救世主之后,我觉得,是时候泼一盆冷水降降温了。

Windows Terminal 项目下的讨论

Windows Terminal 是什么?

在泼冷水之前,我想先来介绍一下 Windows Terminal 是什么,以方便你理解我的观点:Windows Terminal 是一个套在 Windows 操作系统原本的 CMD、Powershell、Windows Subsystem for Linux(WSL)之上的一个界面更加漂亮、功能更加强大的终端工具。严格来说,它是套在 CMD 、Powershell 之上的一个终端。

Windows Terminal 效果图

Powershell on Windows Terminal。图片来源:https://devblogs.microsoft.com/commandline/introducing-windows-terminal/

这里需要了解一下 终端 terminal 和 shell 的区别:

在命令行中,shell 提供了访问操作系统内核功能的途径,比如说我们所熟悉的 bash、zsh,都是不同的 shell;而终端则为 shell 提供视觉界面(窗口),比如我们所熟悉的 iTerm2、Linux 桌面上的终端工具等。甚至于我们在 VSCode 中所使用的命令行,也是某种意义上的终端。

我们在 Windows 下所使用的 CMD、Powershell 既然是一个终端,也是一个 Shell,还是同名的脚本系统。

但是,它也只是一个终端而已,而不是一个更加好用的 Shell

为什么 Windows Terminal 不是救世主?

作为一个终端,Windows Terminal 无疑是合格的,它提供了非常强大的功能,来自微软的强大工程能力也让它能够吸引更多的眼球。

Cmder 效果图。图片来源:Cmder 官网

但是,如果仅仅是一个终端,其实开源社区早已有更多的解决方案,比如 cmderConEmuHyper 等等,这些 Terminal 也足够好看和好用。

 ConEmu 效果图

ConEmu效果图。图片来源:ConEmu 官网

这种第三方就可以做好的事情,微软官方的进入不过是在现有的命令行生态下提供更多的一种选择,而不是真正的问题解决方案。

当我们吐槽 Windows 命令行时,我们在吐槽什么?

那么我们是对什么不满意呢?Windows 用户所吐槽的命令行不好用不在于其表面,而在于其没有一个足够好用的 Shell。 Windows 下的两个命令行界面都各有自己的问题,CMD 因为时间久远,很多功能不齐全。而 Power Shell 虽然功能强大,但不合理的命令语法,大量冗长的、驼峰式命名的命令和参数使得用户的命令操作极为不便,体验极差。如果没有一个足够好用的 Shell ,无论换了多少外面的终端,无非是披了一个闪闪发光的、半透明的漂亮外衣罢了。

对于开发者们来说,真正希望 Windows 做的,不是一个更漂亮的终端。漂亮的终端只能让他们一时新鲜,但是如果希望开发者们真正感觉到 Windows 命令行好用,就需要提供一个更加强大的 Shell,帮助开发者能够用上 Unix 式的命令行工具。

Windows Terminal + Windows Subsystem for Linux ?

在 Microsoft Build 2019 大会上,除了 Windows Terminal 以外,还发布了 Windows Subsystem for Linux 2(WSL2)。新一代的 WSL 相比于上一代,提供了完整的 Linux 内核,将会提供更好的系统支持。看起来,Windows Terminal 和 WSL 的结合,已经非常完美了,但作为一个 Shell 来用的话,又显的过于笨重。

WSL 2 所提供的,不过是一个更加简单、更加易用的 Windows 下的虚拟机,你不再需要安装 Virtual Box、VMWare 而已,一个 Windows Subsystem for Linux 就可以满足开发者的大部分需求。

但是,这并不能解决问题,这治标不治本的选择。WSL 无论做的再怎么好,无法摆脱它只是一个运行于 Windows 系统中附属的子系统。无论 WSL 做的再好,本质上并没有比虚拟机做的更多。

作为一个开发者,我认为什么才是微软真正应该做的?

Windows Love Linux

Windows Love Linux。图片来源:https://cloudblogs.microsoft.com/windowsserver/2015/05/06/microsoft-loves-linux/

作为 Windows 系统的开发者,微软真正的价值显然不是做一个终端那么简单。作为生态的打造者,微软真正可以做好的是,打造一个能够在体验和生态上与 Unix Shell 一致的 Shell,或者是干脆提供 Bash、Zsh 等常用 Shell 的原生支持(WSL 虽然支持 Bash、Zsh等,但依然是需要先进入 WSL 才能使用,但你可以畅想一下,如果 CMD 变成了 Bash,会是什么样的呢?)。这些事情是第三方开发者所无法做的更好的,只有生态的构建者在一开始就将一个体验良好的 Shell 放置在系统的核心,无需开发者自行安装、配置,才能够让开发者真正拥有一个好的命令行体验。如果微软能提供一个足够好用的 Shell,我相信类似于 Windows Terminal 这样的应用,会如雨后春笋一般,从开源社区中源源不断的冒出来。

总结

对于广大使用 Windows 开发的用户来说,一个闪闪发亮的、现代化的、功能强大的终端固然很好,但好的终端只不过是锦上添花之举,而一个强大好用的 Shell 才是真正能够雪中送炭的东西,只有一个足够好用的 Shell,才能成为 Windows 命令行世界的救世主。而这,才是真正值得微软花费大量的时间、精力去做的。

延展阅读

昨天,一名推特用户“EmacsTW”发布了一条新的推文,告诫希望使用 Emacs 的人放弃 Emacs,转用一些现代化的编辑器比如 VSCode。

一时间,技术圈炸了锅,尤其是在 Emacs 用户群体,大家议论纷纷:

  • “中出了个叛徒”
  • “什么鬼?虽然我现在 VSCode 用的也比 Emacs 多,但说 Emacs 害人有点过了”
  • “哼哼哼… VSCode 又不能煮咖啡、不能玩遊戲”
  • “哈哈哈哈太突然了。作为一个 Emacs 使用者觉得他说的很有道理,我也从来不向他人推荐 Emacs,太浪费时间了。”
  • “我司如果只看 Vim vs. Emacs 的话,Vim 完胜,但是大部分还是 VSCode……”

一个 Emacs 忠实粉丝眼中的 Emacs 背刺事件

由于笔者本人并不是 Emacs 的粉丝(Vim 更合我的口味,XD),所以我去采访了 LCTT 翻译组内的 Emacs 铁粉,我们的选题负责人 DarkSun(lujun9972),问一问他的看法。

当我问起这个背刺的事件时,DarkSun 给我的第一个反应是:

欢迎背叛,舒服就成

在我表现出了不解之后,DarkSun 又进一步详细的解释了一下他的意思:

我觉得如果只是把 Emacs 当成写代码的工具,那真的不如用 IDE 了。

我把 Emacs 当成是工具信息交流的平台,类似终端那样的东西。Emacs 插件可以看成是 UNIX 工具,它们之间可以通过文本或 lisp 对象进行交流,只不过 Emacs 可以比普通终端更方便的利用这些文本(谁让它本来就是编辑器呢)。 举个例子说,我可以用 Emacs 看 PDF 文档,然后看到不懂的单词可以用有道词典进行翻译,翻译的结果可以直接存到 Anki 里当做背单词的素材。在这个过程中,Emacs 本身起的是信息交流平台的作用,至于解释 PDF、请求有道翻译,请求 anki 添加卡片都是由第三方程序或第三方的包来实现的。

一百个人有一百零一种使用 Emacs 的方法,我想 Emacs 的这种多样性才是其魅力所在吧。

在看了他对 Emacs 的理解以后,再联想到“Emacs煮咖啡”的梗,我对他的话深以为然。

Emacs 是什么?
目前我们所熟悉和使用的 Emacs 是由自由软件领袖 Richard Matthew Stallman (RMS)于 1984 年开发的,并维护至 2008 年。

Emacs 追求大的哲学,它希望在一个编辑器中去完成所有的功能,希望用户只需要借助快捷键与无处不在的宏,就可以完成任何事情,也正因为如此,Emacs 常常被戏称为“被误以为编辑器的操作系统”,而不是一个编辑器。

新旧技术的更迭

不可否认,近年来 VSCode 的良心功能和 Sublime Text 3 的舒适好用,使得越来越多的人开始使用这些现代化的开发工具。而对于一些比较重型的语言(比如 C/C++、Java、Golang 等),会借助 IDE 来完成开发的工作。

对于 Emacs 这样一个似乎是文本编辑器但好像又不是文本编辑器的工具来说,现代化的开发工具显然更能获取年轻人的喜爱。

不过,如果可以,我更希望说 “Emacs 不是一个工具,而是代表了一种生活方式”,在 Emacs 里,你可以完成任何事情,它就好像融入你的生活一般,改变了你的生活。从这个层面来看,Emacs 无人能敌。

被钉在耻辱柱上的社群背叛者 —— azazabc123

抛开 Emacs 和 VScode 的孰优孰劣不谈,就该推特维护者本身的行为来说,这是一种非常不妥的行为,这让 Emacs TW 社群蒙羞于整个技术社群。这种公器私用毫无疑问是背叛了整个社群,作为社群对外窗口的维护者,发布一条与本社群背道而驰的内容难免会让人觉得不妥。而且,这种行为使得对于 Emacs 的背叛行为从个人行为上升到了群体行为,Emacs TW 中的其他人是否同意这样的行为,还不甚明了——但笔者对该社团的管理能力和未来的前途不报什么期望。

笔者非常不支持这种公器私用的行为,固然其可能存在一定的吐槽、任性的想法,但对于整个社群而言,这种无脑行为只会损伤社群整体的信用度,也降低了对其个人的品行评价。

英雄迟暮?

诞生于 1984 年的 Emacs,迄今已经走过了 35 个年头。Emacs 从曾经的风头正劲,到如今已经略显包罗庞杂。不过,虽然经过了这么多年发展,Emacs 已经足够好用,但依然在坚持不断地更新。在刚刚过去的四月份,Emacs 发布了它的 26.2 版本。

Emacs 依然好用,但时代已经变了,对于如今的 Hacker 们,工具不是最重要的,工具所产生的价值要更加重要。在这种观念下,学习成本极高的 Emacs 难免不受欢迎,简单易用易上手的 VSCode、Sublime 就成为了必然的选择。

但无论如何,虽然我们欢迎新技术,也拥抱新变化,但是该推特维护者的这种让社区蒙羞的行为,依然让我们非常遗憾,表以谴责。

Big News

根据 BuzzFeed 报道, Google 开始清除 Play Store 中由 DO Global 公司开发的应用程序。此前一项调查显示,DO Global 曾对用户进行广告欺诈,并向用户隐瞒了应用程序的所有权细节。

Do Global 是一家由百度持股(约 34%)的公司,它是目前在谷歌 Play 商店上线应用程序的最大开发者之一。目前 Do Global 公司官网已经关闭所有功能,仅显示一个 Statement 声明。【BuzzFeed】

总是想着在框架内做一些超出规范的事情,来赚取利润,这似乎成为了百度、百度系的标志了。

Quick News

MIT 许可证的神秘历史

红帽工程师 Gordon Haff 在 OpenSource 上发布了一篇文章,说明了为什么 MIT 协议没有办法很容易的说明何时创建的。【OpenSource】

Google 的新项目 Project Euphonia,可能会让手机替人说话。

今年的 Google I/O 大会上,Google 将会推出一个新的帮助残障人士的服务 Project Euphonia,这个项目将用于为语言障碍者提供声音的支持。【9to5Google】

开源面临的 Working For Free 的问题

自由软件工程师,前红帽工程师,现 Tidelift 联合创始人 Havoc Pennington 说,我们需要放弃开源只是慈善事业的观念,并给出了一些如何让开源项目更好的建议。 
【Tidelift】

Quick News

微软正在考虑放弃其 Windows 密码过期策略

微软考虑在 Windows 废除要求用户定期更改其登录密码的策略,以让用户养成使用更加鲁棒的密码。微软表示,现有的密码更改政策是“非常低价值的古老而过时的缓解”,该公司不“觉得它有用”。

定期密码到期只是针对密码(或散列)在其有效时间内被盗并且被未经授权使用的概率而制定的策略。如果密码永远不会被盗,则无需使密码过期。如果你有证据证明密码被盗,你应该立即采取行动,而不是等待到期以解决问题。【TechCrunch】

Godaddy 关闭了超过了 15000 个 Spam 子域名

Godaddy 和 安全公司 Palo Alto Networks 联合,处理了超过 15000 个子域名,这些子域名过去被用于虚假营销。【Wired】

微软将比我们想象的更快在 macOS 上发布基于 Chrome 内核的 Edge

根据德国媒体 Windows United 报道,在 Windows 2016 上访问新的 Edge 浏览器的官网时,会提醒暂时不支持该系统,并提示目前仅支持 Windows 和 macOS ,由此推断出微软应该很快放出 macOS 下基于 Chrome 内核的 Edge 浏览器。【Windows United】

AWS 进入香港云计算市场

亚马逊在本周四开放了新的 Region —— 香港 ,从今天开始,用户可以使用 AWS 的香港服务。【ZDNet】

除了阿里云的香港、腾讯云的香港,目前我们在香港云服务器上有了新的选择。对于国内开发者来说,是一大利好。

Big News

已经 14 岁的 Scientific Linux 将停止开发

Scientific Linux 是极少数专注于科学的GNU / Linux 发行版之一,是由费米实验室和其他的研究机构基于 Red Hat Enterprise Linux 开发的针对于科学实验场景下的 Linux 发行版本,主要收录了一些上游产品不会收录的软件包,比如 R 语言等。现在,差不多 14 年后,那些努力维护的人们决定是时候休息了,不再发布新版本的 Scientific Linux。【Softpedia】

Scientific Linux 在过去网络、资源不足的情况下,是一个好的解决方案,但如今各方面的资源都很充沛,我们可以有更好的方案来解决这个问题。

Quick News

QEMU 4.0.0 发布 几乎可以模拟任何硬件设备的模拟器

QEMU 是一个纯软件实现的通用模拟器和虚拟机,它有三种模式,几乎可以模拟任何硬件设备:

  • 完整系统模拟:可在任何支持的硬件架构上运行任何操作系统
  • 用户模式模拟:运行另一个 Linux/BSD 程序
  • 虚拟化:接近本机性能运行 KVM 和 Xen 虚拟机。

【cnbeta】

深度学习可以帮助我们解决自杀的问题

纽约大学的一项最新研究表明,借助自然语言处理技术,可以实现通过收听录音来分析退伍军人的创伤后应激障碍,从而解决退伍军人自杀的问题。【The Next Web】

MongoDB 收购了移动端数据库解决方案 Realm

Realm 是一个非常好用的移动端数据库解决方案,开发者可以使用 Realm 来替代 SQLite。 Realm 发布了文章说明了其被 MongoDB 收购的信息。【Realm Blog】

Facebook 的马克·扎克伯格启动了他自己的 Podcast

马克·扎克伯格启动了他自己的 Podcast:Tech & Society with Mark Zuckerberg。 在这个播客中,马克·扎克伯格会分享会他和一些其他的人士的一些讨论。【Engadget】

Deep News

Google 的 Stadia 是否会杀死实体游戏机?

这篇文章中讨论了关于 Stadia 的问题,笔者的结论是 Stadia 不会杀死实体游戏机。理由如下:

  1. Stadia 对网速有极高依赖,然而并不是所有的设备都有足够的网速。
  2. Stadia 需要和游戏厂商合作来开发游戏,但目前盈利等尚不明朗,所以不太可能杀死实体游戏机。

【VentureBeat】

能够杀死现有游戏的,不会是我们所能想到的,一定是基础技术有了大的提升后,新的娱乐形态杀死的。

Quick News

法国推出安全加密聊天应用

法国推出了专属于政府的安全加密聊天应用 Tchap 的测试版,不过近期的测试版显示你只需要将 @elysee.fr (法国总统府的邮件后缀)添加到你的账户中,就可以注册成功。【Engadget】

Apple 希望将更多 iOS 端的应用体验迁移到 macOS 上

根据 9to5Mac 的报道,Apple 可能将一些移动端的应用迁移到 macOS 端。比如 Siri Shortcuts 、 ScreenTime 等。【9To5Mac】