标梵看到针对未来5年的网络发展预测推断
RichardFeldman是《ElminAction》的作者,他在2019年的ReactiveConf上预测了Web开发未来5年的发展,很有趣,分享给大家。
假如你有机会从头开始一项工程,你会如何选择技术基础?
Richard在演讲开始前提出了这个问题,他相信很多人会选择成熟而稳定的主流技术。
标梵看到针对未来5年的网络发展预测推断
假如回到2006年,这一主流技术堆栈称为LAMP:
李:Linux。
阿帕奇先生。
MySQL数据库。
Perl,Python,PHP都有。
理查德在2006年创办公司时,选择了LAMP,也就是Perl。但选择稳定的东西并不能保证安全,Perl很快就走下坡路,慢慢招聘来的Perl程序员也不怎么样。
理查德说:“无论我们选择的技术有多流行、多主流、多有吸引力,我们还是要赌一把。因此,预测当前的技术将走向何方并跟随其发展,比一开始就盲目地接受他人使用的技术更为安全。
基于这样一个前提,他的预言应运而生:
一、TypeScript将接管JS世界。
TypeScript将在2020年前成为新业务项目中最常见的选择。
在2025年底,每天使用TypeScript编程的程序员将会比普通JavaScript更多。
许多人都知道TypeScript,它是JavaScript的一个超集,它增加了对JS的静态类型的检查,这一重要特性深受许多程序员的欢迎,许多错误可以在编译时发现,而不是遗留到运行时,而且静态类型的存在使阅读、修改和重构现有代码变得更容易。
在Google的趋势下,TypeScript正在蓬勃发展,而CoffeScript则在逐渐衰落。
而且,TypeScript已经得到许多框架的支持:
然而,仍有许多人不喜欢TypeScript,他们认为TypeScript代码和Java一样冗长,设计不够合理,在某些情况下会给人一种错误的安全感。
理查德说,预测未来最重要的因素就是观察这种技术对团队的影响,许多团队会说:“我们将尝试TypeScript,我们曾经使用过它,”但从未有团队说:“我们尝试过TypeScript,然后再回到JavaScript。”
值得注意的是,目前微软拥有两个在TypeScript和JavaScript领域深造的大师级人物:TypeScript设计师AndersHejlsberg,他同时也是著名的语言设计师,如TurboPascal,Delphi,C#。另一个则是ErichGamma,他专注于编辑器和IDE,设计模式,Eclipse,VSCode,他对此非常满意。
WebAssembly将扩展WebApp的范围。
WASM在2020年底之前不会对网络构成造成太大影响。
WASM将在2025年底创建一个新的领域:“重量级WebApp”。
什么是网上购物平台?很容易理解,它是一种在浏览器中执行的“汇编语言”,能提供接近本地代码的速度,而且肯定比JavaScript快得多。
编程人员当然不会直接编写“汇编语言”,他们可以使用C/C++/Rust编写程序,然后编译成WebAssembly在浏览器中执行,当然JavaScript也可以调用WebAssembly代码。
也许有人会说,既然有了V8这样的执行引擎,大家都觉得JavaScript的性能已经很好了啊,为什么还要搞Web汇编呢?
理查德举了一个例子:Figma,一款重量级的图片编辑软件,就像Photoshop,Sketch一样,但它的独特之处在于运行于浏览器中。
该软件是用C++开发的,最早编译成ASM.js子集在浏览器中执行,采用WebAssembly后,运行速度提高了3倍。
更好的例子之一是游戏。例如以下场景,如果要使用CSS,估计无法使用,但WebAssembly可以解决这一问题。
那意味着WebAssembly打开了一扇门,可以通过Web方式安装、分发这些重量级的本地应用程序。网页浏览器将和传统的应用商店、安装软件竞争!
之后您想使用某个应用,只需在浏览器中输入网址,立即开始使用,无需安装。与他人共享也很方便,只需发一个链接即可。(是否有点类似小程序的概念?但本质却不同。)
HTMLCSS/CSS/JS已经死了?毫无疑问,WebAssembly扩展了Web开发的基本盘,而WebApp则要大得多。
3.npm将会面临更多困难。
至少一次npm的安全事件将在2020年底成为头条新闻。
至少一台恶意的npmpackage会在2025年前感染大量开发者。
这些年来,开发者们已经经历过多次npm灾难。
作为npm(Node.jsPackageManager)的贡献者,AzerKo?出于对npm管理部门的不满,ulu删除了它自己在NPM中的250个模块,其中一个叫做left-pad,非常简单,就是将特定字符填入字符串的左边,以达到指定的长度,但这个模块被广泛引用,导致NPM生态系统发生大地震,Node.js,Babel以及其他数千个项目都直接受到破坏。
2018npm又爆发了一次著名的event-stream事件,一个名叫right9ctrl的家伙,骗取了著名package作者event-stream的信任,获得了代码所有权,并将恶意代码植入其中。
Richard还建议npm的packagte安装脚本存在安全隐患,因此建议在npmconfigsetignore-scriptstrue本地执行。
4.JS的替代品将稳步增长。
这些语言编译成JavaScript将在2020年底前持续增长,但没有一种TypeScript发展迅速。
尽管TypeScript将在2025年底大行其道,但这些非JS语言仍将稳步发展。
有两种JavaScript语言可供选择,一种是TypeScript、Dart、Coffeescript等JavaScript语言,另一种是非JavaScript语言,比如ClojureScript、ReasonML和Elm,尽管都是编译到JavaScript中执行,但它们提供的体验与JavaScript不同。
理查德本人是Elm的开发者,很自然地为Elm做广告,渲染速度快,体积小,并没有崩溃,拥有自己的生态系统,并因拥有非常详细的错误信息而广受好评。
因此Richard认为,尽管TypeScript将来更受欢迎,但那些选择了这些小规模替代品的“粉丝们”将继续使用它们。
本文来源:标梵互动