继续记录值得分享的科技内容。本期补记一条 9 月中的旧闻——9 月中旬因中秋国庆假期休刊,这一期是复刊前最后一期值得记录的内容,主题是 Shopify 高调"再见" React Native。

一、主题:再见了,React Native

Shopify 在官方博客宣布:移动端放弃 React Native,回到 Swift 和 Kotlin——也就是老老实实给 iOS 和安卓各写各的原生客户端,不再拿 Web 技术攒出一个中间形态、再编译成两端产物。

最值得玩味的是时间线:2020 年,也就是六年前,Shopify 还高调发文宣布彻底告别原生、全面拥抱 React Native。当年列了三条理由(跨平台不用重复造功能、工程师可以跨技术栈干活、省下的工夫拿去创造价值),但在我看来都是台面上的说辞,底下的账只有一条:省钱——一个团队顶 iOS、安卓两拨人。

这次回原生,算盘还是省钱那本账。AI 时代选语言已经不太要紧:模型能顺畅地在语言之间倒腾代码,那为什么不直接写性能更好的原生版,把中间形态整个跳过?何况 React Native 自身也确实拖后腿,出道十年有余,一些老大难问题迟迟没有像样的答案,上手门槛也不低,被替换不冤。

这件事的结论干脆利落:AI 就是一台无所不能的自动翻译机,这种机器一问世,React Native 这类中间层就被判了死刑,退场只是时间问题。对所有"跨端中间层"技术来说,这是同一个警报。

二、科技动态

1. 世界地图的新投影方法

联合国上周投票,决定不再采用墨卡托投影。投票没有法律约束力,但象征信号足够强:这套投影确实过时了。球面摊成平面必然有折损,而墨卡托的代价是高纬度膨胀——赤道附近的非洲在图上和格陵兰差不多大,真实面积却是它的 14 倍。联合国给出的替代方案是"平等地球投影"(Equal Earth Projection):原则是面积严格按比例,某块地占地球 1%,在图上也占 1%。代价转移到形状上:低纬度纵向拉长、横向收窄,高纬度的东西向大幅撑开、南北向压扁。这样的图量不准角度,导航就别指望它了。

2. 隐藏摄像头检测器

韩国研究者做了一块装了多个 LED 的电路板,接上手机就能用,成本极低。原理是利用镜头和平面镜反射行为的差别:LED 依次点亮时,普通平面镜的反射光位置不动,而隐藏摄像头的凸透镜反射光会随光源移动而偏移。扫一遍谁的反光在"漂移",谁就是偷拍镜头。

3. 一句话新闻

  • 胡塞武装的"音频诈术":伪造对方指挥官"下令撤退"的录音,交给网红在推特上传播,对方军队竟真的阵脚大乱,胡塞趁势以极小代价拿下地盘。
  • 固态散热普及:笔记本开始用石墨烯/铜箔贴片散热、甩掉风扇,机身得以大幅减重:联想一款 14 寸概念本压到 830 克,华为的 MateBook Pro S(14 寸)更是只有 798 克。
  • 成都"词元券":单位可免费申领,Token 消费由政府补贴不超过 30%,另配套"词元贷",可向银行贷款买 Token。

三、工具与文章精选

  • ghostty-web:把 Ghostty 这个终端模拟器转成 WASM,在浏览器里跑起全功能终端。
  • Polycompiler:把 JS 和 Python 脚本打成同一个文件,在两种运行时里都能跑。
  • mailez / CryptPad / Status Trio:Go 写的自托管邮件系统、端到端加密的在线 Office、Wi-Fi/电池/音量三合一的 Mac 状态栏小组件——开源工具生态依旧热闹。
  • 《JavaScript 的怪异之处》《熵的解释》:一篇收集 JS 语法冷知识,一篇借羊群打比方讲透"熵"。

四、文摘与言论

“只要代码是千层面结构,那么单独一层很糟糕,并不影响全局。”

——《糊状千层面》。这比喻我喜欢:一团乱麻、理不出头绪的代码是"意大利面",搅在一起但好歹分成层的是"千层面"——层烂一层不要紧,掀掉重写就是。作者拿 React 说事:组件化的意义不在于单个组件写得多漂亮,而在于数据流向是否清晰、体验有没有硬伤、抽象是否对路。这三条过关,组件随便抽换,程序都垮不了。

还有两条言论,我也用自己的话转述:一条来自《代码就是债务》,大意是——两家体量相当的软件公司,一家代码 100 万行、一家 10 万行,赢的多半是后者;行数少意味着理解快、改得动。另一条出自 Liz Fong-Jones:有了大模型,你的身份会从"写代码的人"变成"管上下文的人"——剔除无关信息、写清楚提示词才是主业。配合本期主题读特别有意思:AI 负责把任意语言翻译成任意语言,程序员的价值则迁移到"喂什么料、怎么喂"上。


内容线索来自阮一峰《科技爱好者周刊》第 413 期(原文),文字为本栏目原创转述。