在2019年的ReactiveConf 上,《Elm in Action》的作者Richard Feldman对未来5年Web开发的发展做了预测,很有意思,分享给大家。

如果你有机会从头做一个项目,你会怎么选择技术栈?

这是演讲开始之前Richard提的问题, 相信很多人都会选择成熟稳定的、主流的技术栈。

如果时间回到2006年,这个主流的技术栈就是LAMP

L : Linux

A: Apache

M: MySQL

P : Perl 或者 Python 或者PHP

Richard在2006年创业的时候,就选择了LAMP, 选择了Perl 。但是选择稳定的东西并不能保证安全,Perl很快就走了下坡路,慢慢地连Perl 程序员都不好招聘到了。

所以Richard 说:“不管我们选择的技术多么流行,多么主流,在今天多么吸引人,我们依然是在下注赌博。所以预测当前技术会向什么方向发展并且跟随,要比一开始就盲目接受别人所用的技术要更安全一些。”

有了这么一个前提, 他的预测开始了:

1. TypeScript将会接管JS世界

到2020年底,TypeScript将会成为新的商业项目最常见的选择。

到2025年底,每天使用TypeScript编程的程序员将超过使用普通JavaScript的程序员。

TypeScript很多人都知道,它是JavaScript的一个超集,对JS增加了静态类型的检查, 这个关键的特性受到了很多程序员的欢迎,很多错误可以在编译时就被发现,而不是遗留到运行时,并且有了静态类型以后,阅读、修改、重构现有代码也变得更加轻松。

从Google 趋势来看,TypeScript正处于蓬勃发展的阶段,而CoffeScript则走向下坡路。

不仅如此,很多框架都已经支持TypeScript:

尽管如此,还有很多人不喜欢TypeScript,觉得TypeScript代码变得像Java一样冗长,设计也不健全,在某些情况下给人以错误的安全感

Richard说预测未来的最重要因素就是看看这门技术如何影响团队, 很多团队都会说:“我们会尝试TypeScript, 我们已经使用TypeScript”, 从来没有团队说:“我们尝试了TypeScript,后来又回到了JavaScript。”

值得一提的是,现在微软养着两位大神,都在TypeScript和JavaScript领域耕耘,一个就是TypeScript的设计师Anders Hejlsberg, 他同时是Turbo Pascal , Delphi, C#等知名语言的设计者。另外一位是Erich Gamma ,他专注于编辑器和IDE,设计模式,Eclipse,VS Code就是他的得意之作。

2. WebAssembly 会扩大WebApp的领域

到2020年末,WASM对Web的组成不会有太大影响。

到2025年末, WASM将会创建一个新的领域:“重量级的Web App”。

WebAssembly 是什么东西?可以简单理解为在浏览器中执行的“汇编语言”, 可以提供接近本地代码的速度,肯定要比JavaScript快得多。

程序员肯定不会直接写“汇编语言”,程序员可以用C/C++/Rust来写程序,编译成WebAssembly后在浏览器中执行,当然,WebAssembly代码也可以被JavaScript调用。

可能会有人说,现在有了V8 之类的执行引擎,大家觉得JavaScript的性能已经不错了啊,为什么还要搞个Web汇编?

Richard举了一个例子:Figma,这是一个重量级的图像编辑软件,像Photoshop, Sketch 那样,但是它与众不同的是在浏览器中运行的。

这个软件是用C++开发的,最早的时候编译成了JS的一个子集ASM.js在浏览器中执行,采用了WebAssembly以后,速度提升了3倍之多。

另外一个更好的例子是游戏。比如下面这个场景,如果想使用CSS,估计是不行的, 但是WebAssembly可以搞定。

这就意味着WebAssembly打开了一扇门, 那些重量级的本地应用,可以通过Web的方式来安装,分发了。Web浏览器将会和传统的App Store, 安装程序做竞争了!

以后你想用某个应用,只需要浏览器中输入网址,立刻开始使用,不用安装。和别人分享也非常的方便,发个link就行了。 (是不是和小程序的理念有点像?但是本质是不同的。)

HTML/CSS/JS就此死去?当然不会,WebAssembly扩大的Web开发的基本盘, WebApp 的盘子会更大。

3. npm将在更多的问题中艰难生存

到2020年末, 至少一个npm的安全事件会登上新闻头条。

到2025年末, 至少一个恶意的npm package 感染大量开发者的机器。

这几年,开发人员已经目睹了好几次npm的灾难。

2016年, 一名 npm(Node.js Package Manager)的贡献者 Azer Koçulu 出于对 npm管理层的怨愤,删除了自己在 NPM 的250个模块,其中一个叫做left-pad,非常简单,就是用特定字符填到一个字符串的左边,达到指定的长度,但是这个模块被引用得非常广泛, 导致了一次NPM生态系统的大地震,Node.js, Babel , 还有其他数千个项目直接罢工。

2018年npm又爆发了著名的event-stream事件, 一个叫right9ctrl的家伙,骗取了event-stream这个著名package的作者的信任,获取了代码所有权,然后向其中植入了恶意代码。

此外npm的packagte安装脚本中的也存在安全隐患,Richard建议在本机执行:npm config set ignore-scripts true 。

4. JS的替代品会稳健成长

到2020年末,编译成JavaScript的那些语言会继续增长,但是都没有TypeScript增长快速。

到2025年末, 那些非JS的方言还会稳健成长,虽然TypeScript会很流行。

JavaScript有两类替代品,一类是JavaScript方言,如TypeScript, Dart, Coffeescript等,还有一类是非JavaScript方言,例如ClojureScript, ReasonML, 和Elm, 虽然都是编译到JavaScript来执行,但是它们提供的体验和JavaScript不同。

Richard本人是Elm的开发人员,自然给Elm做了广告,渲染速度快,体量小,不崩溃,有自己的生态体系,并且因为有非常详细的错误信息而广受赞誉。

所以Richard认为,虽然以后TypeScript会更受欢迎,但是选择了这些小众的替代替代品的“粉丝”将会继续使用它们。

程序员,你得选准跑路得时间

被拆分的身份证

两年,我学会了所有的编程语言!

一直CRUD,一直996,我烦透了,我要转型

字节码万岁!

上帝托梦给我说:一切皆文件

Javascript: 一个屌丝的逆袭

Node.js :我只需要一个店小二

我是一个线程

TCP/IP之大明邮差

一个故事讲完Https

CPU 阿甘

大胆预测下未来5年的Web开发相关推荐

  1. 层出不穷的终端设备适配需求下 未来的响应式Web设计长什么样?

    作者:大貘 响应式Web设计诞生已久,本文将带你了解响应式Web设计的前世今生,以及组件式驱动Web设计带来了哪些新变化. 自从著名设计师Ethan Marcotte在 A List Apart上发表 ...

  2. 主题:大胆预测下JS框架的走势(ZT)

    MooTools将在接下来的几年内像jQuery一样迅速走红 而jQuery则会慢慢销声匿迹 YUI将不尴不尬的活着,YUI 3.x将成为小部分人的玩物,大部分人的忽视物 Ext将在web app应用 ...

  3. ubuntu下搭建eclipse+tomcat的web开发环境

    之前是打算给eclipse装上插件变成eclipse for javaEE 的,后来一看过程太麻烦了,直接下载eclipse for java EE 算了.搭建eclipse+tomcat的web开发 ...

  4. 美国大胆预测:未来300年的人类竟然是这样的!

    来源:云犀科技 编辑:小艾  关于未来,人们越来越向往 300年后人类社会的发展 又会是什么样子呢? 对于未来,大家又是怎么预测的呢? ▼ 5年后 ▼ 三维全息虚拟技术正式大规模商用, 可以通过VR. ...

  5. 2021年Web开发的7大趋势

    本文转载自 前端之巅,作者 Sadia Mehmood 全球有超过 17.4 亿个网站.在每一个细分领域都有无数企业争夺搜索引擎的排名前列位置.开发人员应该了解和发现更多创新的 Web 开发方式,因为 ...

  6. Web开发的未来:下个十年有望出现的五大动向

    作者: VictorOluponmile 译者 | 布加迪 审校 | 孙淑娟 互联网一直处于不断进化的状态.如果不关注Web开发的未来并做出相应的调整,互联网企业的经营者很难继续取得成功. 三十多年前 ...

  7. 大胆预测一波:23年软件测试行业的趋势及前景

    行业内大量技术根基薄弱的测试工程师面临淘汰的现状,而且功能测试找不到工作的大有人在,虽然这句话听起来比较残酷,但是你必须要看到这种变化,归根结底还是技术原因. 对软件测试这个行业不了解的人可能觉得,测 ...

  8. 李开复预测:未来20年 AI将深刻影响五大产业

    近日,创新工场创始人李开复发表<飞奔的AI时代>的主旨演讲.在演讲中,李开复预测了在未来二十年,AI加上更多新的技术发展会带来影响深远的五大产业变革. 这五大产业变革预测包括: 一.世界工 ...

  9. Web 开发在 2015 年及未来的发展趋势

     Web 开发在 2015 年及未来的发展趋势 本文中,我们将一同看看当今 Web 开发的发展趋势,给大家分享我对 2015 年及未来的一些看法.观察和预测.我从 2000 年就开始做 Web 技 ...

最新文章

  1. django 动态更新属性值
  2. Python 读写当前路径下文件错误 UnboundLocalError: local variable 'file' referenced before assignment
  3. 【阿里云课程】分组网络原理,结构发展及设计改进
  4. vue.js:利用vue.js做一个抽奖小游戏
  5. git clone 出现错误
  6. mysql 连接池 数量_mysql合理配置连接池数量
  7. JAVA多线程与并发学习总结
  8. 【高并发】java JUC中的Semaphore(信号量)
  9. 深入浅出通信原理 陈爱军——读书笔记1
  10. 联想小新笔记本,16G运行内存只能使用13.9G或14.9G的解决方案
  11. 华为交换机配置(一)
  12. 【Python蓝桥杯】印章 共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
  13. 手机必备的广告过滤利器---X浏览器
  14. AWS - Amazon Simple Email(ASE) 邮件服务
  15. linux .so文件详解
  16. 股指期货策略精选合集
  17. 蓝桥杯习题-2019 第十届-研究生组-RSA加密-java
  18. 【Spring Security OAuth2笔记系列】- Spring Social第三方登录 - QQ登录下
  19. 完整英文版资产负债表、利润表及现金流量表
  20. 如何白嫖微软云Azure12个月及避坑指南

热门文章

  1. Linux系统中玩到让你停不下来的命令行游戏!
  2. python2.4无线模块_python版本2.4中tarfile模块的“extractall()”的替代项
  3. vue里tab菜单横向展示,可分页功能组件实现
  4. 白领Man 丢掉肥肉!要“骨感”
  5. c#所有部门及其下所部门生成树形图(递归算法获取或键值对方式获取)
  6. -- 30、查询同名同性学生名单,并统计同名人数
  7. 金馆长qq表情包●绿色版【金馆长表情252个】
  8. 愿逝者安息,生者坚强 !!!- 民间捐助的最佳实践及捐助建议
  9. Hibernate数据检索 QB查询
  10. 在展示用户信息时,为保护用户隐私,部分数据需要进行部分隐藏(又叫数据脱敏)