混沌周刊 #38 | Carbonize

周日晚上好,欢迎来到《混沌周刊》第38期。《混沌周刊》是一个试图从开发者角度为你带来这个世界上发生着什么,发生过什么,以及未来可能会发生什么的栏目,随缘更新。您可以通过首页的RSSTwitterTelegram频道和电子邮件等方式订阅。如果您觉得本周刊对自己有所帮助,请不吝推荐给其他人,多谢。


🦍 碳基生物

Google发布了一门新编程语言Carbon,这个名字对SEO不太友好(不过考虑到是Google的,所以也没问题),因为Carbon既可以指IBM的Design System,也是Mac OS X初期的系统API,还是一款ThinkPad的名字。既然已经有Go和Dart了,还有诞生自JetBrains却和自己关系密切的Kotlin,Google为什么又要造新的编程语言呢?

据Google说,Carbon来自于他们对演进C++代码库的需求(尽管长得一点不像C++),因为他们有非常大的C++代码库1。这么多的C++代码要重写成Rust这类更「安全」的语言自然不现实,所以他们采用了「渐进式」的路子,Carbon因为专门设计过,可以和现有的C++代码更无缝融合。

但是,为什么他们不选择去改变C++本身呢?毕竟本刊第32期已经提到过,Clang也会加入Rust风格的生命周期检查机制。根据Reddit上一些网友的讨论,原因大概是Google C++团队在委员会的一些可能破坏ABI的提案被否决。而Google对Clang的贡献在近一两年也的确减少得很明显。在这种背景下,创造一个更「自主可控」的语言,对这种规模的团队而言也算是有收益的选择。当年Apple也是在类似的情况下,选择脱离GCC,创造Clang的。

很显然,Carbon不是一个「寄予厚望」的新一代编程语言,只是改进版的内部工具。Carbon的GitHub上也说明,如果你有这个条件使用Rust,那就别考虑Carbon了。

C++之父Bjarne Stroustrup表示Carbon太新,以至于没办法提供什么有意义的技术评论。

🗂 你的作品,我的版权?

软件自由保护协会 (Software Freedom Conservancy) 发表文章,劝说开源项目放弃使用GitHub托管,原因主要有:

  • GitHub Copilot使用开源代码训练,但却是一项收费服务,并且对Copyleft许可证(如GPL)的代码处理一直不清不楚(本刊第6期也聊过这个问题)
  • GitHub网站本身就不是开源的,更没有提供社区版自部署的选项。讽刺的是,Git曾经的诞生就是为了抗议封闭的源码管理软件BitKeeper
  • GitHub从CEO到员工,许多人一直「诋毁」GPL类许可证并采取行动阻止GPL许可证的扩张

相比之下,GitLab的行为可能就好许多,因为他们有开源并且任何人都可以部署的社区版本

一直以来,因为GitHub在新一代程序员中的受欢迎程度,许多社区也选择将代码托管、Bug管理、Code Review迁移到GitHub上:如LLVMSwift. 但GitHub是一个微软旗下的商业网站,它有以上的诸多问题,并且严格受美国法律限制,对受制裁国家或地区的开发者有潜在威胁

Git本身的设计可以保证源码记录不受GitHub绑定,但现代社区里的issue和pull requests历史也许才是更有价值的财富。希望在未来可以出现一个类似Mastodon的分布式源码托管服务端。

📰 What’s going on…

从北美地区开始,雪碧将把传统的绿色塑料瓶更换为透明塑料瓶。他们宣称此举是为了环保,自然也有降低成本的考虑。鉴于可口可乐也使用透明饮料瓶,两者是否会混用呢?

飞机上当然可以使用iMac啦。

Vim编辑器正式发布9.0版本第17期我们提到过,Vim 9的重点是引入新的编辑器脚本,提升执行效率。但在越来越多人转向使用Lua的NeoVim的今天,有多少Vim爱好者会接受这个新脚本呢?

Apple发布iOS 15.6.1macOS 12.5.1,解决了一项和WebKit相关的严重安全漏洞。他们没有公开发现者的名字。现代浏览器引擎实现之复杂、应用之广泛都超乎想象,以后也会更加成为攻击者关注的重点。

一个对比主流显示器参数的网站,类似硬件天梯图。

有一些CSS库会尝试模拟旧版操作系统UI的效果:比如模拟旧Macintosh界面的system.css、模拟Windows 7的7.css、模拟Windows XP的xp.css以及模拟Windows 98的98.css.

macOS的系统设置里无法单独设定鼠标和触控板的滚动方向,因此当你同时使用触控板和鼠标时,鼠标的滚动方向就不得不跟随触控板设置为「自然」,大量的人并不习惯这一方向。Scroll Reverser是一个开源的小工具,可以让你单独设置macOS上鼠标的滚动方向。

Say No to Notch‘ 是另一个有用的macOS小工具。在有刘海屏的MacBook上,它可以将分辨率设置为16:10以强制系统不使用刘海所在行的空间,将菜单栏下移。第17期提到过的SwitchResX可以达到和它一样的效,如果你想让刘海所在行变黑以隐藏刘海,可以尝试TopNotch.

今年夏天,世界各地都经历了异常高温,我们甚至不清楚这是偶然现象还是某种开始的预兆。各位注意安全。

如何在最新的macOS上挂载ZFS格式的硬盘

Linux Torvalds使用一台M2 MacBook Air发布了Linux 5.19. 将GNU/Linux带到M系列芯片电脑上的Asahi Linux项目也有了新进展。主导GPU驱动开发的工程师甚至……是一位虚拟主播

印度屏蔽了VLC播放器的网站和下载链接。


本期的《混沌周刊》就到这里。如果对本刊感兴趣或有任何建议,欢迎在评论区里留言,以及分享给更多的朋友,谢谢!

1 正因为他们的代码库规模远大于一般团队,所以他们的构建工具可能也和普通团队的不一样(如Bazelgn),Go语言的某些「奇怪」设计也许也与此有关。


发表回复

您的电子邮箱地址不会被公开。