混沌周刊 #26 | 融合,都可以融合

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


Swift是苹果在2014年推出的编程语言。此前,苹果在自家平台最主要的开发语言是Objective-C——兼容C语言代码的面向对象语言。显然,Swift要在苹果平台发挥作用,和Objective-C的互操作性是必需的。所以Swift自诞生始,即支持调用C语言和Objective-C写的函数。通常来说,因为C语言ABI稳定、语言内容精简、在几乎所有平台上广泛支持等特点,大部分语言的外部语言借口(FFI)都支持C语言。但Swift团队并不满足于此,它们还想要让Swift能和C++相互操作!(在此前,要在Swift中调用C++代码,只能用C再封装一层)

Swift核心团队成立了Swift-C++ interop workgroup,并且通报了目前一部分进展。显然这不是件容易的事:即使不考虑ABI,要将C++标准库中丰富的类型(如 std::stringstd::unordered_set)和Swift中类型对应起来,也需要不少工作。在此之前,Swift团队已经有一篇相当长的文档描述Swift/C++互操作的目标。我们当然乐于看到这件事成功,因为C++是软件开发里绕不开的部分,Swift团队的工作也许会给其他语言以启发。

去年下半年,Ruby社区引入了一个巨大改动:由Shopify主推的YJIT作为新的JIT实现进入Ruby主线代码(目前只支持x86)。然后他们提出了一个更大胆的提案:用Rust实现YJIT,这也意味着Rust代码会进入Ruby代码库。目前,松本行宏已经接受了这个提案。注意,这并不意味着CRuby的解释器部分会包含Rust代码。社区倒是确实有一个用Rust实现的Ruby——Artichoke.


欢迎来到2005!北京奥运会还没有开幕,最酷的手机还是诺基亚,升级Mac的操作系统还得支付129美元。让我们试着在最新的Tiger系统上,用崭新的Xcode 2.0给Mac OS X开发点软件玩玩?

有一种说法是,在C++里,参数和返回值的类型能加上 const 就加上。这是个简单明了的建议,不过它不一定是对的

今天,如果要开发一个Web App,JavaScript似乎是不可避免的。但既然HTML(或者类XML)可以标记界面,甚至标记路由,那么是否也可以用来标记项目的逻辑呢?一个新的框架hibiki试着给出了一个答案。你可以用HTML发送请求,然后装填组件数据。这个思路其实和Tailwind CSS有异曲同工之妙,只不过(部分)取代的不是CSS而是JavaScript.

我们之前也提到过,常常稍后读软件里存有一些文章,一段时间后就发现原链接失效了。每年有多少中文博客正在消失,有人也尝试做了统计。


API调试工具Postman开始支持调试gRPC了。

Visual Studio for Mac 2022发布了第五个Beta版本,终于原生支持了M1芯片。要注意的是,Visual Studio for Mac不是Visual Studio的完整移植,它只是Xamarin Studio改了个名字而已,在Mac上也不支持开发C++程序。

在对性能要求不高时,让数据库直接承担消息队列的职责是个好主意,Procrastinate就是这样一个Python库,利用PostgreSQL实现事件队列功能。

《数据密集型系统设计》这本书的封面是只野猪,有网友发现有酒瓶上的插画和它撞车了。


本期的《混沌周刊》就到这里。祝大家虎年开工大吉!


4 comments

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注