今天打开Hacker News看了一眼热榜,两个帖子并列排在前面,票数差不多,一个211票,一个247票。
这两个帖子放一起看,特别有意思。一个讲的是最前沿的硬件上跑最古老的技术,一个讲的是最基础的前端知识成了无数人的噩梦。这不就是技术圈的日常么——一边是新东西闪亮登场,一边是老问题阴魂不散。
先说说那个把X11搬到Vision Pro上的活儿。X Window System,1984年的东西,比大多数读者的年纪都大。它在什么年代设计的呢?那时候鼠标都还算新鲜玩意儿,窗口系统还是学术界刚搞出来的概念。四十年后,有人把它塞进了苹果最科幻的设备里。你在Vision Pro里看到的不是苹果引以为傲的空间计算界面,而是老掉牙的twm窗口管理器,灰不溜秋的背景,命令行终端,和一个勉强能用的xclock。这画面放在Vision Pro的沉浸式环境里,荒诞感拉满,但同时也帅得不行。
技术宅们为什么这么兴奋?因为这说明了一件事——只要底层Unix传统还在,Linux生态的软件就能在任何地方跑。Vision Pro本质上是个封闭的生态,苹果掌控一切,你没办法随便装东西。但有人找到了办法,把整个X11环境编译上去了,等于你在苹果的"围墙花园"里开了一扇后门,把自由软件的旗帜插在了最贵的地盘上。这比在Mac上跑Docker爽多了,因为这是在头显里,在空间计算设备里,跑的是1984年的窗口系统——新瓶装旧酒,但酒香得很。
然而翻个页,看看下面那个关于CORS的帖子,425条评论吵得热火朝天,从2018年吵到2026年。CORS,全称"跨域资源共享",听名字挺吓人,其实就是浏览器的一个安全机制——它不让A网站的脚本随便去拿B网站的数据。道理不复杂:你在evil.com上打开的网页,不应该能读取你银行账户里的余额。浏览器会拦住跨域请求,除非服务器明确说"没关系,我允许你访问"。
但为什么这么多人搞不懂?因为这个机制是反直觉的。浏览器报了一个CORS错误,新手的第一反应往往是"我是不是写错了接口地址"或者"是不是后端挂了"。实际上请求发出去了,服务器也响应了,是浏览器截胡了。你压根看不到这个错误到底是请求的问题还是服务器的问题还是浏览器的问题。更糟的是,后端的同学觉得这是前端的事,前端的同学觉得是后端该处理,两边踢皮球,一个CORS报错能卡半天。你查Stack Overflow,找到的方案全是加一堆无脑Header——Access-Control-Allow-Origin: *,管他安不安全,先跑起来再说。
这两个事情放在一起聊,我看到了技术圈一个很深的矛盾:大家都在追求"新"——Vision Pro是最新的消费电子产品,能往上面移植X11那是真本事,推特上转发一下,Hacker News上点个赞,人人都觉得你牛逼。而那些"旧"的问题——CORS规范早就写清楚了,文档也不难找,MDN上一搜就有——却始终有人踩坑,踩了就忘,忘了再踩。四十年后有人在Vision Pro上玩twm,二十年后还有人在问"为什么我调不通这个API,控制台说CORS block"。
当然不是说移植X11没意义,恰恰相反,我觉得这种跨时代的技术嫁接特别酷。它证明了计算机科学里有些东西是永恒的——Unix的哲学,社区的开源精神,以及技术宅那种"我偏要"的倔强。但没有哪个新技术是凭空长出来的,所有炫酷的新玩意儿,都站在一大堆"旧问题"的肩膀上。CORS搞不懂,你在Vision Pro里跑a北斗都调不了接口。开源的底层基础设施不牢固,你在最先进的头显里也只能用原生应用,没法自己造轮子。
所以我的态度很简单:新东西值得玩,但旧东西值得学。不要觉得搞懂CORS很丢人,它是前端面试的钉子户,也是实际开发中最磨人的细节之一。一个能说清楚CORS三种请求方式的人,和一个能在Vision Pro上跑X11的人,我同样佩服。因为前者说明你踏踏实实理解了网络是怎么工作的,后者说明你有能力打破边界。这两种能力,一个是地基,一个是屋顶,缺了哪个房子都盖不起来。
今天是2026年6月21日,周日。如果你手边刚好也有一台Vision Pro,不妨试试把X11跑上去感受一下那种时空错乱的快乐。如果没有?那不如打开浏览器,敲一行fetch,看看控制台会不会给你一个温馨的CORS报错,然后把它搞清楚。毕竟,在技术这件事上,新的刺激和旧的知识,都不白费。
关注「天机星语」· 每天 AI 资讯早知道
觉得有用?点个 在看 分享给朋友 👇