# 科技爱好者周刊(第 224 期):Figma 为什么赢了 Sketch 这里记录每周值得分享的科技内容,周五发布。 本杂志开源(GitHub: [ruanyf/weekly](https://github.com/ruanyf/weekly)),欢迎提交 issue,投稿或推荐科技内容。 周刊讨论区的帖子[《谁在招人?》](https://github.com/ruanyf/weekly/issues/2599),提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。 ## 封面图 ![](https://cdn.beekka.com/blogimg/asset/202208/bg2022081107.webp) 怎样回收火箭?SpaceX 公司造了两艘船,每艘船的上方架设一张超级大网,等着落向大海的火箭掉入网中。([via](https://www.nasaspaceflight.com/2022/08/spacex-fairing-recovery/)) ## 本周话题:Figma 为什么赢了 Sketch 上周,Adobe 公司[宣布](https://36kr.com/p/1917326805803014),200亿美元收购设计软件 Figma。 ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092001.webp) 这个收购价高得吓人。Figma 去年的[收入](https://www.cbinsights.com/company/figma/financials)是5000万美元,今年据说可以到4亿美元。就算这个预测是可靠的,收购价也达到了收入的50倍! 作为比较,微软2018年收购 GitHub 的价格是75亿美元,那一年 GitHub 的收入约为3亿美元。 **为什么一个面向专业用户、2016年才问世的设计软件,能值这么多钱?** ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092002.webp) Figma 有一个竞争对手 [Sketch](https://www.sketch.com/),功能差不多。直到2019年,Sketch 的估值还超过 Figma。当时,网上还有猜测,Sketch 什么时候会收购 Figma,但是没想到后来就被 Figma 甩开差距了。 今天就想谈谈 Figma 的高估值,以及为什么 Sketch 输给了它? 我不是设计师用户,无法全面分析,只想指出在技术上,它们有一个重大差异。 Sketch 是一个原生 macOS 应用,只能在苹果电脑上安装运行,没有免费版。**Figma 则是一个 Web 应用,只要有浏览器就能用,而且有免费版。** 下图是浏览器打开 Figma 的样子。 ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092004.webp) 你想想看,一个要用 Mac 电脑下载安装,付费才能用,另一个只要打开浏览器就能用,谁占优势不言而喻。 但是,事情没这么简单。原生应用则可以调用底层的系统 API,网页应用受限于浏览器,很多功能实现不了。所以,Sketch 功能和性能肯定强于 Figma。 Figma 怎么解决这个问题呢?答案就是 [Rust 语言](https://www.figma.com/blog/rust-in-production-at-figma/)。虽然 Figma 是网页应用,但它不是用 JavaScript 写的,而是用 Rust 写的,再编译成浏览器能理解的 WebAssembly 字节码格式,从而达到接近原生应用的性能。 ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092006.webp) 事实上,**Figma 是业内 WebAssembly 最强的公司之一。** 它的 CTO 埃文·华莱士(Evan Wallace)实在忍受不了 JavaScript 的慢速度,就动手写了新一代的 JavaScript 打包器 [ESbuild](https://esbuild.github.io/faq/#benchmark-details),结果竟比传统的打包器 Webpack 快了100多倍(0.33s vs 41.53s)! ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092007.webp) (图片说明:Figma 的两位创始人,左为 CTO 埃文·华莱士。) 一旦解决了浏览器的性能瓶颈,能够接近原生应用的体验,Figma 赢出就毫无悬念了。 **近年来,大家好像有一个观念:原生应用是标配,Web 应用是选配。** 很多软件明明有非常好用的 Web 版,还一定要用 Electron 去包一个桌面版,让用户下载安装。仿佛只有存在一个可以安装的桌面客户端,才感到安心。 这一次,Figma 以200亿美元被收购,证明 Web 应用并没有过时。**即使不走原生应用那条路,依然有机会成功。** 另一方面,**Adobe 是一家靠原生应用起家的公司,这几年一直在转向云端**,推出了 [Adobe Creative Cloud](https://creativecloud.adobe.com/zh-Hans),把自家的软件向浏览器迁移,希望用户打开浏览器就能用,收费方式也从买断变成了订阅制。 ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092201.webp) 今年6月,Adobe 将王牌产品 PhotoShop 的网页版向所有人[免费提供](https://finance.sina.com.cn/tech/2022-06-15/doc-imizmscu6902624.shtml)。我觉得,这跟收购 Figma 是有关系的。Adobe 愿意花这么大的代价买下 Figma,不仅仅是为了产品本身,也是为了获得背后的技术,帮助开发自己的 Web 应用,彻底走向云端化。 ## 科技动态 1、[加速器打洞](https://news.mit.edu/2022/quaise-energy-geothermal-0628) 麻省理工学院的一个物理学家,一直研究粒子加速器。有一天,他突发奇想,能不能把加速的粒子用来在石头上打洞? ![](https://cdn.beekka.com/blogimg/asset/202208/bg2022080502.webp) 他做了多次实验,认为可行(上图)。麻省理工学院现在资助他,尝试用加速的粒子撞击岩石,向地下打洞。目标是打到深度20公里,将500摄氏度的地热引到地面,用来地热发电。 他还有一个难题没有解决,就是打洞产生的岩石蒸气如何处理。如果能够解决这个问题,地热发电也许就可以推广了,用地球内部的热量取代煤炭,加热产生水蒸汽发电。 2、[手机唱片机](https://www.musicradar.com/news/yamaha-smartphone-turntable) 日本雅马哈公司推出了一款手机唱片机,让手机用户感受播放黑胶唱片的感觉。 ![](https://cdn.beekka.com/blogimg/asset/202208/bg2022080604.webp) 你把手机放到唱片机上,然后打开一个配套的手机 App,它会把你的歌曲列表显示成一张黑胶唱片。 这时,你把探头(它相当于触摸笔)放到手机屏幕上,音乐就会开始播放。拿走探头,音乐就会停止;移动探头,甚至还有打碟的效果。 3、[无人农场](http://www.gz.chinanews.com.cn/dcsj/2022-09-16/doc-ihcearke9348308.shtml) 贵州省首个“水稻无人农场”,迎来了稻谷丰收。 ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092105.webp) 该农场从播种到丰收,全部使用无人机械。下图是今年春天使用的无人播种机和无人插秧机,都是无人驾驶。 ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092103.webp) ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092104.webp) 无人机洒农药和化肥。 ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092106.webp) 丰收时使用的无人收割机。 ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092102.webp) 所有的无人机械都在手机上监控和操作。以后完全可以实现,坐在屋里用手机种地。 ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092107.webp) 4、[人工智能政党](https://www.thelocal.dk/20220804/danish-ai-driven-political-party-eyes-parliament/) 丹麦成立了一个新政党,政策完全来自人工智能(AI)模型。模型算出来什么政策,他们就执行什么政策。模型的目标是,实现联合国可持续发展指标的最大化。 ![](https://cdn.beekka.com/blogimg/asset/202208/bg2022080801.webp) 这个政党希望成立以后,可以参加2023年6月丹麦的选举。要是能够进入议会,就会让模型参政。 这其实是一个不错的主意,政策由计算机决定,大大增加了可预测性和稳定性,政府运作的成本也比较低。如果能够推广,将来的议会选举很可能就会变成各种人工智能政策模型的比较。 ## 文章 1、[卫星通话的消费级国产手机何时诞生](https://finance.sina.com.cn/tech/tele/2022-09-19/doc-imqmmtha7923057.shtml)(中文) ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092012.webp) 本文介绍中国卫星电话的发展现状,透露有一家叫做“银河航天”的创业公司,正在发射自己的卫星,试验组建一个低轨宽带通信网。 2、[如何选择家用 3D 打印机](https://sspai.com/post/75665)(中文) ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022091506.webp) 作者介绍他怎么选择购买自己的第一台 3D 打印机。 3、[软件内部信息的7个可视化工具](https://lmy.medium.com/7-tools-for-visualizing-a-codebase-41b7cddb1a14)(英文) ![](https://cdn.beekka.com/blogimg/asset/220204/bg2022040301.webp) 本文介绍7个工具,可以将软件内部信息(比如目录结构、依赖关系等)以可视化的形式展现。 4、[音乐数据库的难点](https://dustri.org/b/horrible-edge-cases-to-consider-when-dealing-with-music.html)(英文) 这篇文章列举了维护音乐数据库的难点,比如不同的乐队有相同的名字,有的乐队改过多次名字。再比如,有的曲目是多人合作的,最多的一首居然有191个人参与。 5、[如何为 sudo 命令开启 Touch ID](https://sixcolors.com/post/2020/11/quick-tip-enable-touch-id-for-sudo/)(英文) ![](https://cdn.beekka.com/blogimg/asset/202206/bg2022061608.webp) 命令行的`sudo`命令需要认证用户身份,这需要输入密码。作者突发奇想,能不能用 MacBook 的 Touch ID 代替密码,需要验证时,提示用户按一下指纹。 6、[Python 的`is`运算符和`==`运算符](https://anvil.works/articles/pointers-in-my-python-2)(英文) Python 比较两个对象是否相同有两个运算符,本文介绍它们的异同。简单说,`is`比较的是内存地址是否相同,`==`比较值是否相同,并可以自定义。 7、[空气监测仪如何测量灰尘?](https://woodgears.ca/dust/dylos.html)(英文) ![](https://cdn.beekka.com/blogimg/asset/202208/bg2022080602.webp) 作者买了一个空气监测仪,测量 PM 2.5 指数。他把监测仪拆开了,分析测量原理。 ![](https://cdn.beekka.com/blogimg/asset/202208/bg2022080603.webp) 原理就是用一个激光探头照射空气,尘埃越多、颗粒越大,被反射的光就越多,然后检测器根据接收到反射光脉冲数量和强度,来衡量空气质量。 8、[你应该关闭 git 的自动垃圾收集](https://donatstudios.com/yagni-git-gc)(英文) Git 默认会定期清除用不到的提交对象(孤儿对象),作者认为你应该关掉这个功能。 ## 工具 1、[kvass](https://github.com/maxmunzel/kvass) 一个轻便的键值对存储工具,将数据存在本机。可以命令行使用,也可以对外提供 HTTP 接口,分享网址给其他人。 2、[ERNIE-ViLG 文生图](https://wenxin.baidu.com/moduleApi/ernieVilg) ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092108.webp) 百度 AI 引擎“文心大模型”的文生图功能,输入中文句子,输出相应的图片,类似于 DALL-E 和 Stable Diffusion。 另外,还可以看看一个同样功能的英文服务 [Elbo](https://art.elbo.ai/)。 ![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072504.webp) 3、[Simple Admin](https://github.com/suyuan32/simple-admin-core) ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092109.webp) 一个 Go 语言写的微服务后端管理系统。([@suyuan32](https://github.com/ruanyf/weekly/issues/2632) 投稿) 4、[text-watermark](https://github.com/zengkan0703/text-watermark) 一个 npm 模块,借助零宽度字符,在文本里面插入(或解码)不可见的文字水印。([@zengkan0703](https://github.com/ruanyf/weekly/issues/2634) 投稿) 5、[proxy-web-storage](https://github.com/KID-joker/proxy-web-storage) 一个 JS 库,用 proxy 封装了 localStorage 和 sessionStorage。除了常规的数据存储,可支持事件监听和设置过期时间。([@KID-joker](https://github.com/ruanyf/weekly/issues/2643) 投稿) 6、[TinyTeX](https://yihui.org/tinytex/) ![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072607.webp) 学术排版系统 Tex Live 的简化版本,只有100多兆,支持中文。 7、[Keet](https://keet.io/) ![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072615.webp) 一个点对点聊天的软件,不需要服务器,可以进行多人的视频和文字的加密对话。 8、[Phoenix](https://phcode.dev/) ![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072701.webp) Adobe 公司开发过一个代码编辑器 Bracket,现在将其做成了 Web 版,重新命名为 Phoenix,可以当作线上 IDE 使用,[源码](https://github.com/phcode-dev/phoenix)开源。 9、[HypeScript](https://github.com/ronami/HypeScript) 一个 TypeScript 库,用来获取 TypeScript 编译器对一段代码的报错。看上去很有意思,还能写出这样的库,但想不出有什么用途。 10、[Dragonfly](https://github.com/dragonflydb/dragonfly) ![](https://cdn.beekka.com/blogimg/asset/202205/bg2022053105.webp) Redis 和 Memcached 的替代品,内存里面的键值对数据库,号称性能更快。 ## 活动 1、[ClickHouse 的企业应用实践:ByteHouse](https://www.bagevent.com/event/8303002?bag_track=001) ClickHouse 是一种基于列(而不是行)的数据库,由俄罗斯的 Yandex 公司开源,目前是大数据处理和数据仓库的首选工具。 ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092203.webp) 下个月有一个活动,字节跳动工程师分享:为什么他们选择 ClickHouse 作为核心数据分析技术,如何部署和应用了18000多个节点;如何对其进行增强和重构,推出了更适合国内用户的产品 ByteHouse,企业用户如何从中获益。 具体时间是10月15日下午2点,感兴趣的同学可以点击标题链接,或扫描二维码报名,参加线上直播。 ## 资源 1、[人生统计](https://neal.fun/life-stats/) ![](https://cdn.beekka.com/blogimg/asset/202207/bg2022070905.webp) 输入生日,这个网站会告诉你一些统计数字,比如你活了多少天、心跳了多少次、地球多了多少人口。 2、[中文播客榜](https://xyzrank.com/) ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092111.webp) 查看中文播客的排名和热门节目,数据取自小宇宙和 Apple Podcast,每日更新。([@alaskasquirrel](https://github.com/ruanyf/weekly/issues/2641) 供稿) 3、[云安全资源汇总](https://wiki.teamssix.com/cloudsecurityresources/) ![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092110.webp) 这个项目收集云安全领域的博客、公众号、文章、工具、书籍、视频等资源。([@teamssix](https://github.com/ruanyf/weekly/issues/2635) 投稿) 4、[程序员音乐](https://musicforprogramming.net/latest/) ![](https://cdn.beekka.com/blogimg/asset/202207/bg2022070912.webp) 一个另类的背景音乐网站,精选了一些歌曲和专辑,适合编程时当作背景音乐。它的界面完全采用字符终端样式。 5、[编程字体](https://www.programmingfonts.org/) ![](https://cdn.beekka.com/blogimg/asset/202207/bg2022071013.webp) 这个网站提供了近百种编程字体,可以切换查看效果,以供选择。 ## 图片 1、[第一张地球照片](https://www.vintag.es/2022/02/first-photo-from-space.html) 你知道吗,人类拍摄的第一张地球照片是什么时候? 答案是1946年10月24日,就是下面这张照片。 ![](https://cdn.beekka.com/blogimg/asset/202205/bg2022051506.webp) 当时第二次世界大战刚刚结束,美国看到了德国 V2 火箭的巨大潜力,就把德国科学家都运到美国,继续研究。 那一天,研究人员在火箭上第一次安装了一架35毫米的电影摄影机,然后在新墨西哥沙漠里面发射上天。火箭到达了105公里的高空,摄影机开始拍摄,每隔一秒半拍摄一帧。几分钟后,火箭掉回地球,相机本身砸坏了,但放在钢盒里面的胶卷没有受到伤害。 人们就这样得到了有史以来第一张地球照片。它完全是黑白的,分辨率很低,充满了斑点,但是预示着一个全新摄影领域开创出来了。 2、[世界最大洞穴](https://mossandfog.com/earths-biggest-cave-will-blow-your-mind/) ![](https://cdn.beekka.com/blogimg/asset/202205/bg2022051008.webp) 越南的山水洞(Son Doong Cave)是世界最大洞穴。2009年,一个农民在越南中部的丛林深处,偶然发现了这个洞。 ![](https://cdn.beekka.com/blogimg/asset/202205/bg2022051006.webp) ![](https://cdn.beekka.com/blogimg/asset/202205/bg2022051009.webp) 这个洞大约长9公里,高200米,宽150米,里面有瀑布、丛林、地下河流,还有世界最高的70米石笋(上图)。波音747飞机可以在洞内大部分区域通过。 ![](https://cdn.beekka.com/blogimg/asset/202205/bg2022051007.webp) 3、[SmartFlower](https://smartflower.com/) 国外推出的家用太阳能发电装置,概念上简直完美,无需安装,自动跟随阳光,日出自动打开,日落自动关闭。 就是体积太大,导致实用性不高。但是如果体积小一点,发电量就太少了。 ## 文摘 1、[崩溃更快](https://lwn.net/Articles/191059/) 2003年的一项研究发现,许多软件崩溃后重启的速度,要比正常退出后重启更快。 > - Redhat 8:退出后重启104秒,崩溃后重启75秒。 > - JBoss 3.0:退出后重启47秒,崩溃后重启39秒。 > - Windows:退出后重启61秒,崩溃后重启48秒。 而且,研究人员发现崩溃也没有导致丢失任何重要数据,毕竟软件现在都做得很完善,能够安全地处理崩溃,防止数据丢失。 有些人就开玩笑,既然如此,开发时就不要写正常退出的代码了,要退出了就抛出一个错误,让软件直接崩溃,这样速度更快。 举例来说,如果要退出 Windows,不必按“退出”按钮,直接关掉电源会更快。 如果处理错误的代码非常可靠,软件的所有部分都能够在崩溃中保证安全并快速恢复,那么确实不需要写显式关闭的代码,直接用`abort()`代替。 这样的软件就称为“只会崩溃的软件”(crash-only software),谷歌的分布式文件系统 GoogleFS 就被认为是这种软件,它不会正常退出,只会在发生错误时崩溃。 2、[宜家肉丸](https://edition.cnn.com/2022/04/30/business/why-ikea-sells-meatballs/index.html) 宜家是家具公司,但是它也是世界最大的瑞典肉丸公司。每年,这家公司在全球的宜家餐厅总共销售超过10亿颗肉丸。 ![](https://cdn.beekka.com/blogimg/asset/202205/bg2022050909.webp) 最早的时候,宜家根本没有餐厅,最多就是店内咖啡馆,只提供咖啡和蛋糕。 后来,商店越开越大,公司担心人们在逛迷宫般的宜家商场时,会感到肚子饿而提早离开。为了留住顾客,有必要在商场里开设餐厅。 那么,餐厅应该提供什么食物呢? 当时,一家典型的宜家商店每天有多达5,000名顾客。为了简化操作并降低成本,必须提供简单的标准化食品,而且必须保证不同国家的顾客都爱吃。 想来想去,他们发现瑞典肉丸符合要求。肉丸简单易做,世界各国的饮食文化里面都有肉丸,并且可以方便的冷冻和运输。 1985年,宜家餐厅开幕了,主要食品就是肉丸,还有鲑鱼、烤牛肉、沙拉、三明治等常见食物。 一开始,肉丸主要成分是牛肉,而不是猪肉,因为出口牛肉要比出口猪肉容易。现在,宜家提供各种肉丸,包括鸡肉、鲑鱼、素食、以及较新的植物肉丸,同时配上土豆泥、奶油酱、橘子酱和蔬菜。宜家还出售顾客可以带回家的冷冻肉丸。 宜家的餐厅总是位于出口旁边,这也是精心安排的。宜家不想在你饿的时候,马上让你获得食物,宁愿让顾客在购物时饿着,增加食欲,等到购物完了再去餐厅进食。 有一项研究发现,同一家商场,饥饿的购物者比已经吃饱的购物者多花64%的钱。 ## 言论 1、 我的一个朋友说,他的生活被尖锐地分成了两个部分。上半场,他始终是小组中最年轻的人;下半场,他突然就成了小组中年纪最大的,中间没有过渡期。 我现在意识到,人生就是这样。到了一定年龄后,你就不再被视为一个人,而是被当成一个机构,别人看你就像看一件仿古家具、一个地标建筑或一个古墓。 -- [《我希望我被教导的十个教训》](https://alumni.media.mit.edu/~cahn/life/gian-carlo-rota-10-lessons.html) 2、 我那些开发者兄弟,不要为这次代码泄漏垂头丧气,它会过去的。将来有一天,人们玩你们的游戏,欣赏你们的手艺,而这次的泄漏事件只会成为维基百科的一个脚注。向前看,继续创造吧。 -- 顽皮狗公司总裁 [Neil Druckmann](https://twitter.com/Neil_Druckmann/status/1571525058946035713),评论本周发生的 R 星公司《GTA6》游戏源码大量泄漏事件 3、 人们沉迷的其实并不是智能手机,而是智能手机提供的一个活跃的社交环境。 无论你走到哪里,通过手机,都可以跟数十亿人连结在一起。过去,人们最多跟一百多人一起工作,现在我们可以无限制地访问每个人的页面。当然,这不一定是好事。 -- [《为什么我们沉迷于手机?》](https://www.factinate.com/editorial/editorial-why-are-you-addicted-to-your-phone/) 4、 梵高的一生是不可思议的。他艺术创作只有大约10年时间,一刻不停地疯狂画画,平均每36个小时创作一件作品,现在留下来有2000多件作品,其中900件是油画。 他没有受过艺术训练,只是一个人不断地练习,生前很少人知道他,更没人承认他。终身贫困,作为画家,在世时只卖出过一幅画。但是,现在他被公认是人类最伟大的艺术家之一。 -- [Hacker News 读者](https://news.ycombinator.com/item?id=32101044) 5、 不要浪费你的无知。当你对一门知识毫无所知时,最容易问出简单而重要的问题。 一旦你习惯了某种现象或事物,认为它是理所当然时,思维就不知不觉受到了限制。 -- [David Kohn](https://www.timescale.com/blog/how-postgresql-views-and-materialized-views-work-and-how-they-influenced-timescaledb-continuous-aggregates/) ## 历史上的本周 2021年(第 176 期):[中国法院承认 GPL 吗?](https://www.ruanyifeng.com/blog/2021/09/weekly-issue-176.html) 2020年(第 125 期):[数字人民币要取代谁](https://www.ruanyifeng.com/blog/2020/09/weekly-issue-125.html) 2019年(第 74 期):[信息的商业模式为什么不是收费](https://www.ruanyifeng.com/blog/2019/09/weekly-issue-74.html) 2018年(第 23 期):[统计学上的人生最大决定因素](https://www.ruanyifeng.com/blog/2018/09/weekly-issue-23.html) ## 鸣谢 国产软件 [FlowUs](https://flowus.cn?promotionChannel=GW_RYF_01) 提供个人专栏服务(查看[周刊专栏](https://ruanyf-weekly.flowus.cn/?code=FLOWUS&promotionChannel=WX_RYF_00)),集成了“文档+表格+网盘”,适合知识库、数据管理、文件存储多种用途。 ![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072108.webp) (完)