阮一峰 科技爱好者周刊(第 127 期):未来人人开发软件,几乎没人编码

这里记录每周值得分享的科技内容,周五发布。(本周五是十一假期,周刊提前到周三发布。)

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。

周刊讨论区的帖子《谁在招人?》,提供大量就业信息,欢迎访问或发布工作 / 实习岗位。

封面图

西班牙艺术家胡安•盖瑞扎博(Juan Garaizabal)的作品《永恒之门》,正在上海静安雕塑公园展出,18 级台阶通向一个空中之门。(出处

本周话题:未来人人开发软件,几乎没人编码

现在,少儿编程培训班很流行,一到周末,家长们就送孩子去学计算机。

虽然我很赞成从小学习计算机,但总感到有点疑惑:编程正变得越来越容易,门槛越来越低,小朋友们真有必要牺牲周末的睡眠和体育时间,专门去学编程语言(比如 Python)吗?

上个世纪要当程序员,你必须懂汇编语言。到了如今,编程几乎已经没有门槛了,大多数人一天内就能学会,怎么写一个简单的网页 JavaScript 脚本。那么,你告诉我,未来会怎样?

再过 15 年或 20 年,等到现在的小孩进入就业市场,编程可能已经变得极其傻瓜化、智能化,也许只需要动动嘴,说出你想要什么程序,人工智能就自动生成了代码。

那时还会有程序员,但是人数应该很少,而且只负责编写底层代码,就像今天的汇编语言程序员非常少一样。因此我怀疑,孩子们没必要专门去学编程,因为未来可能根本不是今天这样编程。

大家知道吗,世界上用户最多的编程工具是什么软件?

答案是 Excel。无数财务人员、管理人员、销售人员都在用它,解决各种问题,尽管他们根本不懂编程。

我觉得,这就是未来编程工具的趋势,你不需要或者只需要懂一点点代码,就能做出软件,解决你的问题。最近正在兴起的“低代码”(low code)和“无代码”(no code)工具,正好呼应了这种趋势。未来人人都是软件工程师,都能够做出自己需要的软件,但是几乎没人知道如何编程。

JavaScript 学习视频

本周的课程资料是 开课吧 提供的《JavaScript 学习视频》。

在可见的时间里,JavaScript 语言都会是前端最重要、最基础的技能。不管你打算开发什么(Web、Node.js、还是小程序),JavaScript 都是绕不过去的,属于必须掌握的基本技能,就像物理研究绕不过去数学一样。只要你面试前端岗位,JavaScript 技能是必考的。

JavaScript 的难度并不低,有着各种怪异的语法点,而且语法还在快速发展中,TC39 委员会每年都发布一个语言的新版本。只有掌握了基础语法,才跟得上顶层框架的各种变化,以不变应万变。

下面的视频课程,就是讲解几个特别重要的语法点和开发技巧,帮助你更好地理解这门语言。课程内容涵盖四大模块,课程时长达到 300 分钟!

  1. this 关键字的指向
  2. 基于防抖(debounce)和节流(throttle)的性能优化
  3. 响应式数据双向绑定的原理剖析
  4. 基于 Web Component 的组件化开发

手机扫描下面的二维码,就可以 0 元领取 这套视频了。只有 100 个 名额,先到先得。

资讯

1、眼神校正功能

苹果的视频通话服务 Facetime,将正式启用眼神校正功能。视频通话时,对话者的眼神往往不是看着摄像头,而是看着屏幕或其他地方。这项功能可以自动修改眼神,让它看上去直接注视着前置摄像头,好像正在与另一方发生眼神交流。

这项功能在 iOS 13 的 Beta 版本开始测试,当时称为“注意力校正”,但没有包括在 正式版本中。iOS 14 重新将其引入,并在页面上列为正式功能。

2、根据 DNA 生成画像

美国弗吉尼亚州的一家遗传学公司,正在开展根据 DNA 画出犯罪嫌疑人画像的服务(上图)。他们根据犯罪现场得到的 DNA,进行数据库查询,找到相似的 DNA。理论上,DNA 相似的人应该具有血缘关系,长相很可能接近,就可以根据亲戚的长相画出嫌犯的长相。

该技术已经帮助警察侦破了一些久远的悬案,比如 1987 年一对加拿大夫妇被谋杀。但是,这已经在美国引起了巨大的争议,很多人认为这会侵犯隐私,不应该允许警方用 DNA 查找你的血缘关系。

3、推特的图像预览 Bug

一个推特用户发现,如果上传的图片中同时包括黑人和白人,推特的图像预览总是向用户呈现白人。下图是上传的原图,无论奥巴马的头像在上方或下方,最后的预览总是上图的样子。

推特官方表示,将调查使用的人脸识别模型。

4、大象死亡之谜

今年五六月间,博茨瓦纳西北部的国家公园内,约 330 头大象突然死亡,一直找不到原因。最近,政府宣布这些大象死于一种神经系统疾病,可能由于饮用了被有毒的蓝藻污染过的水。

官方解释由于降雨,国家公园内会有一些季节性水塘,大量繁殖的蓝藻使得水塘充满细菌。当水塘干涸以后,大象死亡就停止了,所以这可能就是死因。博茨瓦纳估计拥有 13 万头大象,是世界上最大的大象种群,每年吸引着大量游客。

5、人脸识别垃圾桶

北京市西城区德胜街道新风街一号院上线了人脸识别垃圾桶。居民预先提交一张个人脸部的照片,就能完成注册。以后扔垃圾时,垃圾桶将用数秒的时间自动“刷脸”。在识别出居民身份后,垃圾桶盖打开,还能根据垃圾重量为居民返还一定积分。

对于没有注册的居民,可以手动按下按钮或刷卡,打开垃圾桶盖。

6、一句话消息

  • 中国 发行首枚内嵌 NFC 芯片的邮票。集邮者可通过中国邮政 App 读取邮票序列码、荧光暗码、芯片 ID 等等。
  • 小米 申请了三折式折叠手机专利,完全展开后,萤幕可以变成三倍大。只是手机厚度惊人,更像充电宝。
  • 亚马逊 推出了云游戏服务 Luna,跟谷歌的 Stadia 很像,就是在机房运行游戏,用户不需要买主机,只要有上网设备就能玩。这个服务有可能进中国。
  • 中国 宣布,2060 年实现碳中和,即二氧化碳的排放量和吸收量相等。由于中国是世界最大碳排放国,这个承诺的难度很大。此前,拜登说当选后,美国会在 2050 年实现碳中和,特朗普则根本不在乎这件事。
  • 美国人 由于疫情在家办公,每天全国可以节省 6000 万小时。这些时间本来都是浪费在路上,现在可以用来干其他事。

  • 芝加哥商品交易所 开设水期货合约,可以对水价下注。由于气候变暖和水资源短缺,未来的淡水价格可能出现剧烈波动。

文章

1、如何提高 Node.js 的 libuv 性能(英文)

Node.js 的底层 JS 引擎是 v8,异步库 是 libuv。本文介绍一个小技巧,通过设置 UV_THREADPOOL_SIZE 参数,提高 libuv 性能。

2、俄罗斯的图 -160 用 25 小时飞了 2 万公里,这是不是一项假纪录?(中文)

2020 年 9 月 19 日,俄罗斯的两架 Tu-160 战略轰炸机进行了一次携弹训练飞行:历时 25 小时,飞行超过 2 万公里。俄罗斯航空航天部队远程航空兵指挥官谢尔盖·科比拉什中将说:这次飞行打破了此类飞机“最远航程”和“不间断飞行”的世界纪录。果真如此吗?

3、前端开发的 VS Code 插件推荐(英文)

作者推荐他每天使用的 VS Code 插件,专门用于前端开发。

4、别在网页上显示“注册”(英文)

很多网站在页面上有注册按钮或注册链接(上图),作者认为,“注册”这个词大大降低了用户进一步使用的欲望,因为这要求用户付出操作成本,但没有给出足够的诱因。

经过他的实验,只要将“注册”改成“开始使用”或“免费试用”,就能将转化率提高三倍。

5、11 种 Node.js ORM 库的简介(英文)

作者介绍了 11 种常用的用于连接数据库的 Node.js ORM 库。

6、如何通过 new Function 创建 async 函数(英文)

JavaScript 语言允许通过 Funtion() 生成函数,async 函数能通过这种方式生成吗?

7、Intl.RelativeTimeFormat():相对时间格式化(中文)

有时需要显示相对时间,比如“5 分钟前”、“2 天前”等等。一般使用外部库来实现,其实浏览器原生的 Intl.RelativeTimeFormat API 就可以做到。(@232650413 投稿)

8、如何写一个 Node.js 命令行程序,获取 Slack 的 OAuth 授权?(英文)

本文是一个 OAuth 授权示例,演示如何用 Node.js 在命令行获得 Slack 的授权,从而可以操作 Slack 的 API。

9、交互式《蒙娜丽莎》画像(英文)

传说中,不管你从哪个角度看《蒙娜丽莎》画像,都会感到画像中的女子在看着你。TensorFlow 的官方博客,演示怎么用 TensorFlow.js,制作一个交互式的《蒙娜丽莎》画像,摄像头捕捉观看者的角度,然后自动改变画像的眼神。

工具

1、Tables

谷歌发布的新产品,主要用于项目管理。跟 Trello 有点类似。

2、photoflare

跨平台的图像编辑桌面软件,相对小巧简单。

3、visx

Airbnb 推出的一套数据可视化组件库,基于 D3 和 React。

4、Release

一个 Node.js 库,一键生成软件包的 changelog。

5、Blacklight

一个在线工具,可以检查某个网站使用了哪些追踪技术。

6、Wewatermark

一个在线工具,可以为图片加上各种各样的水印。

7、Headless recorder

一个 Chrome 浏览器插件,自动记录你的操作,转成 Puppeteer 或 Playwright 脚本,从而实现浏览器操作自动化。

8、wave-share

一个概念性项目,两台计算机通过声波通信!A 计算机把数据转成音频,通过喇叭发声;B 计算机听到后,对声波解码,从而与 A 建立 WebRTC 的点对点连接。要不是这种通信速率太慢,通过声波分享文件也未尝不可。

9、Pixelixe Photo Editor

一个 Chrome 浏览器插件,在浏览器里面打开一个图片编辑器。

10、Taskwarrior

一个命令行的待办事项(todo)管理软件,功能相当强。(@nosarthur 投稿)

资源

1、Malware Bazaar

恶意软件数据库,提供恶意软件样本下载。

2、CurrentlyDown.com

该网站可以查询,哪些服务现在正在宕机,以及宕机的历史记录。

3、Flexbox Defense

一个在线的塔防小游戏,通过 CSS Flexbox 的练习,击退一波波进攻的敌人。

4、WebRTC 教程

一本英文的免费电子书,介绍 WebRTC 的基础知识。

图片

1、一天的毫秒数

下面计算式的结果,就是一天的毫秒数。

这个式子的来历如下。

2、劳拉的变化

电子游戏《古墓丽影》主人公劳拉,从 1996 年第一代到 2018 年最新一代的变化。

文摘

1、个人护城河

我最喜欢的职业建议是发展“个人护城河”。

你的个人护城河是一组独特的且不断累积的竞争优势,别人很难学习,或者很难做到。如果你有了它,你会让自己变得无法取代。

你必须找到属于你的特殊东西,而且这些东西会随着时间的流逝而增加价值。

如何找到自己的护城河?

你可以问自己:对我来说,什么事情容易做,而对别人却很难?我所拥有的技能中,哪些是其他人模仿会非常困难的?或者,你所爱的、擅长的事物,跟社会需要的事物有什么交汇点?

护城河会随着条件的变化而变化。比如,录音技术诞生之前,稀缺的是音乐本身,你想听音乐,就需要有一个艺术家给你现场表演。现在,音乐录音到处都是,稀缺的是策划、发行和个性的展示。

同样地,在社会中,以前的稀缺资源是金钱和特殊关系。而在互联网时代,稀缺的是特定知识和某些稀有技能。

漫画家斯科特·亚当斯(Scott Adams)曾经提过一种建立个人护城河的方法,就是找到自己最擅长的 2 个~3 个事物的交集。比如,他既不是最好的漫画家,也不是最好的作家,也不是最好的企业家,但他可以是最好的商业类漫画短文作者,这就是他的护城河。

总之,你要发现对你来说容易而对他人却很难的事物,并在这些事物上变得出色,然后利用它来积累社会和金融资本。

2、《国家地理》杂志:石峁遗址之谜

几十年来,黄土高原北部石峁村的村民,一直认为村里尘土飞扬的山丘上,那些摇摇欲坠的石墙,不过是古代长城的一部分,并没有什么特别。

但是,2012 年开始的系统挖掘,证实这里曾经有过一座皇城,距今约 4000 年,史书没有任何记载,是目前已知的中国史前文明最大的遗址,为中华文明的起源带来了许多未解之谜。

石峁遗址出土了大量玉器,做成圆盘、剑刃和节杖的形状。当地并不产玉,这些玉器要么来自贸易,要么来自战争的掠夺。如此大的数量,证明这个城池地位非凡。

最奇妙的东西就是 4000 年前遗留下来的宏伟城墙,总长将近 10 公里,城墙内有一个高达 70 米金字塔形建筑,大约是埃及大金字塔一半的高度。金字塔平台上方是庞大的宫殿建筑群,宫殿建筑内有壁画、玉器、彩绘,以及人类遗骸,表明这里进行过祭祀。

城墙上还发现了 70 幅令人惊叹的浮雕雕塑,形状是野兽的兽头。

碳 14 法判定这个遗址可以追溯到 4300 年前,跟埃及金字塔是同一时间,比长城最古老的遗迹要早 2000 年,比现在已知最早的中原文明遗址(夏朝遗址)要早 500 年。而且,它的位置在那些夏朝遗址以北几百公里,表明中原文明来自北方。

遗址的建筑规模如此庞大,仅仅城墙就需要 125,000 立方米的石材。这意味着,这个城市的人口很多,大概在 10,000 至 20,000 之间。

这个遗址的繁荣期是从大约公元前 2300 年到公元前 1800 年,将近 500 年。然后,它突然被神秘地废弃了,原因很可能是气候。公元前 3000 年,石峁遗址成立时,黄土高原还是相对温暖潮湿的气候。历史记录表明,从公元前 2000 年到公元前 1700 年,气候迅速转变为更加干燥和凉爽。湖泊干枯、森林消失、沙漠侵袭,迫使人们离开石峁南迁。

如今,石峁遗址静静地躺在鄂尔多斯沙漠的边缘,被灰尘、土石和寂静所笼罩。但是,这座世界上最古老的城市之一,正在被慢慢揭开面纱,将让我们对中华文明的起源有更多的了解,颠覆现在的许多观点。

言论

1、

如果你无法将产品的价格翻倍,那么你的产品就不占有市场优势。

-- 《创业公司的功夫》

2、

苹果公司在发布新的操作系统(iOS、iPadOS、watchOS)之前,都公开了测试版,但是等到正式版上市,并没有多少改进,依然有很多 Bug。

那么,公开测试版的意义何在?真的是为了提高正式版的质量吗?……无论最初的目的是什么,公共测试版现在都是一种营销工具,一种大肆宣传新版本、并让苹果爱好者购买与新版本一起发布的新产品的方式。

-- 《苹果软件的测试版》

3、

关系数据库有两个优势,一个是节省存储空间,另一个是可以跟踪复杂的数据关系。

但是,现在的存储设备很便宜,反而是 CPU 的处理时间更贵。所以,我建议客户,如果不需要处理复杂的数据关系,那就避免使用关系型数据库,而使用 NoSQL 数据库。

-- Hacker News 读者

4、

有一种说法,年龄在 35 岁以上的人,建立学术影响力的唯一机会是编写一本教科书。

-- Mark Seemann

5、

理性的人使自己适应世界,不理性的人不愿意妥协,坚持要求世界适应他的方式。因此,一切进步都取决于不理性的人。

-- 萧伯纳

6、

Zoom 之类的远程会议软件已经成为标准,疫情结束后,很多商务旅行永远不会回来了。

-- Hacker News 读者

回顾

2019 年的本周(第 76 期):任何爱好都能变成职业,只要你会拍视频

2018 年的本周(第 24 期):新人进入软件行业的建议

订阅

这个周刊每周五发布,同步更新在 阮一峰的网络日志 微信公众号

微信搜索“阮一峰的网络日志”或者扫描二维码,即可订阅。

(完)

评论(没有评论)