当前位置: 首页 > 科技观察

大胆预测未来5年Web发展

时间:2023-03-15 22:56:52 科技观察

在ReactiveConf2019上,《Elm in Action》的作者RichardFeldman对未来5年Web开发的发展做出了预测。这很有趣,我想和你分享。如果有机会从零开始一个项目,你会如何选择技术栈?这是理查德在演讲前提出的问题。相信很多人都会选择成熟、稳定、主流的技术栈。如果时间回到2006年,主流技术栈是LAMP:L:LinuxA:ApacheM:MySQLP:PerlorPythonorPHPRichard在2006年创业的时候选择了LAMP和Perl。但是选择稳定的东西并不能保证安全,Perl很快走下坡路,慢慢地,连Perl程序员都很难招到。所以理查德说:“无论今天我们选择的技术多么流行、多么主流、多么有吸引力,我们仍然是在赌博。因此,与其盲目接受,不如预测当前技术将发展和遵循的方向。别人一开始就用什么。技术更安全。”带着这样的前提,他的预测开始了:1.TypeScript将接管JS世界到2020年底,TypeScript将成为新商业项目最普遍的选择。到2025年底,每天使用TypeScript编程的程序员将超过纯JavaScript。很多人都知道TypeScript是JavaScript的超集。它为JS添加了静态类型检查。这一关键特性受到许多程序员的欢迎。许多错误可以在编译时发现,而不是留待运行,并且使用静态类型,阅读、修改和重构现有代码变得更加容易。根据谷歌趋势,TypeScript正在蓬勃发展,而CoffeScript正在走下坡路。不仅如此,很多框架已经支持TypeScript:尽管如此,还是有很多人不喜欢TypeScript,觉得TypeScript代码变得和Java一样冗长,设计不合理,在某些情况下,它给人错误的安全感理查德表示,预测未来最重要的因素是看这项技术如何影响团队。许多团队会说:“我们将尝试TypeScript,我们已经在使用TypeScript”,而没有团队会说:“我们尝试过TypeScript,然后又回到它。JavaScript。”值得一提的是,微软现在有两位大师,分别在TypeScript和JavaScript领域工作。一位是TypeScript的设计者AndersHejlsberg,他也是TurboPascal、Delphi、C#等知名语言的设计者。另一位是ErichGamma,专注于编辑器和IDE,设计模式、Eclipse、VSCode是他最喜欢的作品。2、WebAssembly将拓展WebApp的领域。到2020年底,WASM不会对Web的组成产生太大影响。到2025年底,WASM将开创一个新的领域:“重量级WebApp”。什么是WebAssembly?可以简单理解为在浏览器中执行的“汇编语言”,可以提供接近原生代码的速度,绝对比JavaScript快很多。程序员肯定不会直接写“汇编语言”。程序员可以用C/C++/Rust编写程序,将它们编译成WebAssembly并在浏览器中执行。当然,WebAssembly代码也可以被JavaScript调用。可能有人会说,既然有了V8这样的执行引擎,大家都觉得JavaScript的性能已经不错了,为什么还需要webassembly呢?Richard举了一个例子:Figma,它是一个重量级的图像编辑软件,和Photoshop、Sketch一样,但是又不同,因为它运行在浏览器中。这个软件是用C++开发的。最早的时候,它被编译成ASM.js,JS的一个子集,在浏览器中执行。采用WebAssembly后,速度提升了三倍之多。另一个更好的例子是游戏。例如,在下面的场景中,如果你想使用CSS,它可能行不通,但WebAssembly可以处理。这意味着WebAssembly打开了一扇门,那些重量级的本地应用程序可以通过Web安装和分发。Web浏览器将与传统的AppStore和安装程序竞争!以后你要使用某个应用,只需要在浏览器中输入网址,就可以立即开始使用,无需安装。分享给别人也很方便,发个链接就可以了。(是不是有点类似小程序的概念?但是本质不一样。)HTML/CSS/JS会消亡吗?当然不是,WebAssembly会扩充Web开发的基础盘,而WebApp的盘会更大。3.npm将在更多问题中挣扎求生到2020年底,至少有一起npm安全事件会上头条。到2025年底,至少一个恶意npm包已经感染了大量开发者的机器。多年来,开发人员目睹了几次npm灾难。2016年,npm(Node.js包管理器)的贡献者AzerKo?ulu出于对npm管理的不满,删除了NPM中的250个模块,其中一个名为left-pad,非常简单,使用特定字符来一个字符串的左边到指定的长度,但是这个模块被广泛引用以至于它在NPM生态系统中引起了地震,Node.js、Babel和其他数千个项目都在罢工。2018年,npm上爆发了著名的event-stream事件。一个叫right9ctrl的家伙骗取了著名的event-stream包的作者,获得了代码所有权,然后将恶意代码植入其中。另外,npm的包安装脚本存在安全隐患。Richard建议在本地执行它:npmconfigsetignore-scriptstrue。4.JS的替代品将稳步增长到2020年底,那些编译成JavaScript的语言将继续增长,但没有一种会像TypeScript那样增长得那么快。到2025年底,那些非JS方言将稳步增长,尽管TypeScript会非常流行。有两种类型的JavaScript替代品。一种是JavaScript方言,如TypeScript、Dart、Coffeescript等,另一种是非JavaScript方言,如ClojureScript、ReasonML、Elm等。虽然它们都被编译成JavaScript来执行,但它们提供的体验与JavaScript不同。Richard本人是Elm的开发者,自然而然地标榜Elm,渲染速度快,体积小,不会崩溃,有自己的生态系统,错误信息非常详细而广受好评。因此Richard认为,虽然TypeScript未来会变得更流行,但选择了这些小众替代品的“粉丝”会继续使用它们。