编程语言排名
JavaScript 在 GitHub 和 StackOverflow 上仍然占据着主导地位。提示
- 大家应该学习 JavaScript,尤其是学习 JavaScript 中的函数式编程。
- JavaScript 的大多数顶级框架(包括 React、Redux、Lodash 和 Ramda)都基于函数式编程理念。
TypeScript 超越 PHP 和 C# 跃居第四位,仅次于 Java、Python 和 JavaScript。Python 超越 Java 排名第二,这也许是因为人们对 AI 的兴趣迅速增长,以及用于 GPU 加速的动态深度神经网络的 PyTorch 库带来的推动作用——这种库使人们可以更加轻松便捷地完成针对网络结构的实验。
来源:GitHub 2020 年度 Octoverse 报告
JavaScript 在 StackOverflow 上已经连续 8 年排名第一了。Python、Java、C#、PHP 和 TypeScript 则击败了 C++、C、Go、Kotlin 和 Ruby 等语言。
框架
前端框架这边,大多数 JavaScript 开发人员都在使用 React、Vue.js 或 Angular。jQuery 仍然有着令人惊讶的份额,几乎是 Vue.js 的两倍,但是我猜测 jQuery 在应用程序中用的少一些,而在内容网站和 WordPress 模板中用的更多,因此我们今年将排除掉它。
搜索量
React 以 57.5%的搜索量份额占据统治地位,而 Angular 拿下了 31.5%,Vue.js 是剩下的 11%。
来源:Google 趋势
调查方法:所有搜索趋势均按主题而非关键字挑选,以排除误报。
就业机会
如果你想选出能让你在 2021 年最容易找到工作的框架,那么最好的选项仍然是 React,自 2017 年以来就一直没变。在提到常见前端框架的职位列表中,有 47.6% 提到了 React,提到 Angular 的有 41.2%,而 Vue.js 位居末位,是 11.2%。
值得一提的是,大多数职位需求列表都说他们要求应聘者具备几大框架之一的工作经验,但如果你仔细检查他们列出的技术栈,会发现其中的很大一部分实际上是 React 开发岗位,并且会优先考虑资深 React 开发人员。下面的下载趋势中也有一些证据可以支持这个结论。
调查方法:在 Indeed.com 上搜索招聘信息。为了消除误报,我在搜索内容中加入关键字“软件”,以提高相关性。我还从“Vue.js”中省略了“.js”,因为许多结果中都不包含“.js”。所有 SERPS 均按日期排序,并抽查相关性。
下载量
npm 的下载量排名看起来和搜索趋势非常接近,但这里还能看出一些有趣的结果:Angular 2+ 和 Vue.js 的下载量几乎是并驾齐驱的,但如果你加上使用旧版 Angular 框架的数据,Angular 的下载总量就会显著超越 Vue.js。
来源:npmtrends.com
如果我们用饼图观察最近的下载份额,可以看出 React 占 66%,Angular(所有版本)约 20%,Vue 约 15%。
TypeScript vs JavaScript
6%的雇主在职位需求中特别提到了 TypeScript,高于去年的 7.4%。
来源:Indeed.com
毫无疑问,开发人员对 TypeScript 的兴趣浓厚且增长迅速。我预计这种趋势将在 2021 年继续下去,并且用户会学着应对使用 TypeScript 的一些成本(例如更多使用接口来替代内联类型注释)。
专门提到 TypeScript 的职位数量仍然相对较少,但在 2021 年,拥有 TypeScript 的工作经验会稍微增加你找到工作的几率。到 2022 年,拥有 TypeScript 的某些经验可能会给你在就业市场上带来优势。但是,由于 JavaScript 开发人员学习 TypeScript 比学习全新的语言要容易得多,因此 TypeScript 团队往往愿意雇用和培训优秀的 JavaScript 开发人员。
服务端框架
在服务端,Express 在下载量指标上仍然占据统治地位,以至于我们很难对比其他竞品之间的流行程度。
来源:npmtrends.com
正如我去年预测的那样,排除掉 express 后,我们会看到 Next.js 成为了最有力的竞争者。这并不奇怪,因为 Next.js 是一个灵活、全栈、基于 React 的框架,可以帮助你交付静态优化的内容,而且当你需要动态生成内容时也可以回退到 API路由和 SSR 的无服务器函数。你甚至可以在首次请求时按需静态生成内容,然后提供来自 CDN 缓存的静态内容——如果应用主要包含用户生成的内容,这个功能会很好用。
Next 还有其他许多优点,包括页面包的自动优化、新 Image 标签提供的自动图像优化以及内置的性能分析工具,可帮助你改善用户的页面加载体验。
如果你使用 GitHub 并部署在 Vercel 上,那么你还会获得针对每个 PR 的自动部署以及流畅顺滑的 CI/CD 管道。基本上,这就像是有了一支最出色的全职 DevOps 团队,但却用不着给他们开工资,反而还可以节省大量的托管费用。
可以预计 Next.js 会在 2021 年继续爆发。
远程工作趋势
在 2020 年,全球性的疫情迫使团队开始学习远程协作。进入 2021 年,远程工作依旧会是一个重要主题。首先,各国可能要到六月才开始大规模接种 COVID-19 疫苗;其次,由于许多团队在隔离期间提高了生产率并降低了成本,因此许多员工并不会在 2021 年返回办公室。
远程工作还带来了更大的地理自由度,使开发人员倾向于搬到离家人更近,或者房价更低的区域。此外,毕马威会计事务所调查的雇主中有 72% 表示,远程工作扩大了他们的潜在人才库。
远程优先和混合远程团队将成为新十年的新常态。
根据 Indeed 的数据,2020 年 JavaScript 开发人员的平均工资略有下降,从每年 11.4 万美元降至每年 11.3 万美元,这可能部分是由于远程工作趋势带来了更多居住在旧金山和纽约等技术中心之外的员工,这些员工的生活成本没那么高,要求的薪水也低一些。在旧金山,JavaScript 开发人员的平均薪资为 13 万美元。
尽管如此,许多位于旧金山等技术中心的公司仍在向位于偏远地区的员工支付介于美国全国平均水平和旧金山水平之间的报酬,从而以较高的市场价格吸引更优秀的员工,同时依旧能节约不少本地雇佣和办公室租赁的成本。
在这种趋势推动下,许多远程岗位的报酬落在了 11.5 万美元左右——中级开发人员为 13 万美元。无论住在哪里,高级开发人员一般都能找到年薪 12 万美元至 15 万美元之间的工作。
来源:ZipRecruiter
GitHub 数据表明,团队并没有因为远程工作而放慢脚步,反而在 2020 年实现了更高的生产率。当隔离开始时,GitHub 活跃度也同步暴涨。
来源:GitHub 2020 年度 Octoverse 报告
GitHub 上的工作量大大增加,拉取请求的平均合并时间减少了 7.5 小时。
越来越多的证据表明,远程工作是行之有效的。
密码已过时
密码是过时的、不安全的技术,在 2021 年,绝对不应该使用密码来保护你的用户或应用程序。
这个问题的症结在于,大约一半用户会在多个应用程序和网站上重复使用密码,并且攻击者有足够的利益动机来获取强大的计算能力破解用户密码,并在银行帐户和亚马逊等网站上尝试破解出来的密码。
如果你不是谷歌、微软或亚马逊这样的巨头,那么你可能就无法负担对抗现代密码破解者所需的计算能力成本。不信的话可以看看 HaveIBeenPwned 这个网站。剧透:只要你连过网,你的密码肯定就被偷了。
https://haveibeenpwned.com/
多年来,我一直在警告大家密码机制的危险性,但是在 2020 年我们有了很多新的选项来彻底取代密码。到了 2021 年,任何新应用都不应该再用密码了。
当你放弃密码,转而使用加密密钥后,你的应用还会获得 Web3 的强大能力。这就引出了下一个主题:加密货币。
加密货币
在 2021 年,加密货币仍然会是最重要的全球性革命技术之一。以下是这项技术在 2020 年的一些亮点:
- 比特币创下历史新高,这在一定程度上要归功于 PayPal 等公司的大力支持。预计 2021 年还会继续刷新纪录。
- 以太坊 2.0 信标链发布,为更具扩展性的以太坊平台奠定了基础。此外,可扩展性解决方案(如侧链和 zkRollups)在 2020 年取得了明显进展。预计到 2021 年将有更多 DApp(去中心化应用)集成这些可扩展解决方案。
- DeFi(去中心化金融)如今的市场规模已达 150 亿美元(我去年写总结时只有 6.5 亿美元),大部分业务运行在以太坊区块链上。2020 年,有很多价值数百万美元的漏洞给 DeFi 生态系统带来了困扰。智能合约安全性仍然会是热门主题,并在 2021 年带来巨大的机遇。
- 非同质化代币(NFT)在 2020 年得到了显著发展,一些代币以数万美元的单价成功销售。Rarible 引入了他们自己的社区代币,并开始空投给市场用户,从而增加了交易量。现在每天都会有价值数百万美元的 NFT 交易,但这仅仅是个开始。因为它们几乎可以代表任何有价值的事物,所以整个市场的潜在规模可达数万亿美元。
- Flow 区块链发布,并为区块链的大规模应用带来了许多希望。NBA Top Shot 已售出总额超过 600 万美元的 NBA 授权 NFT,商品内容是 NBA 赛场上的精彩时刻短片。
- Theta Network 推出了智能合约和 NFT。此外,NFT 将用于 Theta.tv 上的贴纸和徽章,Theta.tv 是 Twitch 的一种去中心化替代方案,每月有数百万活跃用户。
人工智能(AI)
2020 年对于 AI 来说是开创性的一年。通过 GPT-3 的发布,我们了解到语言模型和转换器可能是通向通用人工智能(AGI)的一条可行之路。
人脑将新事物与我们已知的事物关联起来以解决各种问题的能力,在 AI 界被称为零样本和少样本学习。我们不需要大量的指导或示例就可以完成全新的任务。我们经常只用几个(或没有)示例(样本)就能找出新问题的关键。
人类认知技能的普遍适用性被称为通用智能。在 AI 中,通用人工智能(AGI)指的是“机器具有理解或学习人类能做到的任何智力任务的能力。”
GPT-3 展示了它可以通过巨大的训练集(包括来自整个公共网络的内容,如 Common Crawl、WebText2、Books1、Books2 和 Wikipedia),再加上巨大的模型来自主学习数学、编程、翻译乃至其他任何技能。GPT-3 使用了 1,750 亿个参数。作为参考,这比原有技术水平高出一个数量级(10 倍),但仍比人脑小几个数量级。
在 GPT-3 的规模基础上继续扩大可能会带来更多突破性成果。
https://youtu.be/PqbB07n_uQ4
自动驾驶
2020 年 10 月,Waymo 开始提供 100%的无人驾驶能力(车上没有司机)。在发布时,平台有 1500 月活用户,共数百辆汽车在凤凰市区提供服务。
2020 年 12 月,通用汽车的 Cruise 在旧金山的街道上推出了完全无人驾驶的路线。
无人机快递
UPS在 2020 年启动了两个无人机试验。其中一项为佛罗里达州的退休社区快递处方药,另一项在北卡罗来纳州的医疗机构之间运送包括个人防护设备(PPE)在内的医疗用品。
法规、安全性、噪声和技术挑战在 2021 年可能仍然会阻碍无人机快递的高速发展,但由于疫情造成的困境起码在 6 月前都不会变化,因此现在是无人机快递的绝佳突破机会。可以期望这一技术在高效无接触快递领域取得更快的进步。
量子计算
中国研究人员报告说他们实现了量子霸权,比谷歌去年实现的量子霸权快了 100 亿倍。研究人员正在快速向前推进,但是量子计算仍然需要极其昂贵的硬件,并且世界上只有少数的量子计算机能够实现所有类型的量子优势。
抗量子加密、量子辅助加密和用于机器学习的量子计算是潜在的重点研究领域,这些领域的突破将对整个行业产生重大的全球性影响。我相信有一天,量子计算在 AI 领域的应用将推动这一技术前进许多个数量级——这一壮举将对人类产生深远影响。
在我看来,这不太可能会在 2020 年代发生,但我希望在 2021 年听到更多量子霸权的发布,也许量子计算机还会在各种算法上都获得突破。我们可能还会看到更多实用的量子计算 API 服务和用例。
https://youtu.be/-ZNEzzDcllU