我对前端技术更新的看法以及未来发展趋势预测

前端开发如何看待“别更新了,学不动了”?Deno、TypeScript 等新轮子层出不穷,未来前端重点方向在哪?前端开发在大前端浪潮下如何持续学习、成长?

SpriteJS 3.0 的特性和规划

SpriteJS 是由 360 奇舞团开源的跨平台高性能图形系统,它能够支持 web、node、桌面应用和小程序的图形绘制和实现各种动画效果,不久前刚发布了 3.0 版本。与 SpriteJS 2.0 相比,SpriteJS 3.0 是真正优先使用 WebGL2 和 WebGL 进行渲染的跨平台图形系统。3.0 版本针对可视化的 2D 渲染做了专门的优化,能够自动合并大量的元素进行渲染,从而大大提升渲染效率。与 2.0 相比,3.0 是更加纯粹的渲染引擎,弱化了 2.0 提供的文字排版、Flex 布局等功能,专注于提升图形渲染的性能。

SpriteJS 3.0 同样保持了对 DOM API 极高的相似度,因此对 d3.js 这样数据驱动文档的可视化工具非常友好,而在图形渲染方面,由于 3.0 使用 GPU 渲染并针对可视化做了大量优化,使得它的渲染性能要大大超过了 2.0,在极端情况下达到十倍甚至百倍的提升。在渲染大量元素的时候,3.0 基本上可以在普通的 PC 电脑上处理画布上数以百万计的元素节点,轻松实现酷炫的粒子动画视觉效果。

此外,SpriteJS 3.0 在现代浏览器中支持 Offscreen Canvas 和 WebWorker,能够在 Worker 线程中渲染,不会阻塞主线程而影响用户交互。

SpriteJS 3.0 通过扩展支持真正 3D 渲染,3D 扩展的底层是基于轻量级的 Ogl 框架,使用上简洁高效,性能优良。整体功能上虽然不如 ThreeJS 这样的老牌库,但胜在 API 设计更简单,尤其是配合 d3.js 使用,非常的方便,所以适合于大多数可视化开发的 3D 渲染场景。

在未来,SpriteJS 会考虑进一步压榨渲染性能,比如使用 Web Assembly 重写矩阵运算库,让底层运算的性能进一步提升,改良一些渲染的算法,在内存方面尽量直接映射数据并操作 ArrayBuffer,以节约内存。在应用方面,考虑实现 Vue 3 的 runtime,直接支持 Vue 3 的应用。在 3D 方面,减少与 ThreeJS、BabylonJS 的能力上的差距,让 3D 渲染能力变得更强大。

如何看待 Deno、TS 和未来的前端重点方向?

最近几年流行的编程语言很多都号称是 JavaScript 的替代语言,比如 TypeScript。前端三大框架现在也基本都增加了对 TypeScript 的支持,这背后的本质原因是什么?

我认为,近几年 JavaScript 的语言标准发展很快,这背后依托的依然是 Web 应用领域的高速发展,JavaScript 是 Web 领域事实上的“原生语言”和技术标准,很多编程语言都是 JS 的衍生语言。在他看来,TypeScript 是一个很优秀的编程语言,其静态类型对一些规模较大的项目提高代码的可维护性很有帮助,因此现在写 TS 的开发者越来越多,三大框架增加对其支持是顺其自然的事。

奇舞团很多项目也有采用 TS,内部也鼓励大家尝试和使用 TS 技术。SpriteJS 也提供了 TypeScript 的 typings,方便 TS 开发者使用。

近期,Deno 也发布了正式的 1.0 版本。我认为它是一个很好的 Runtime,在 Node.js 之后走了另外一条道路,规避了 Node.js 设计上的不足之处。我认为未来 Deno 不见得会取代 Node,很有可能出现一种两者并存共同发展的态势。但是 Deno 的设计本身就是建立在对 Node 的思考和改进之上的,所以学习它,对于理解 Node.js 的精髓也非常有帮助。他表示个人对 Deno 的接触不多,但是有机会会去深入地学习和使用它。

有趣的是,日前 Deno 官方公布的一份文档指出,出于对当前环境的实际考虑,Deno 将停止在内部代码中继续使用 TypeScript。文档中提到的问题涉及 TypeScript 编译时间、结构以及代码组织方式等。未来,Deno 项目将使用纯 JavaScript 编写内部代码。

Deno 将停止使用 TypeScript,并公布五项具体理由

表示自己这两年的主要精力放在可视化领域,主要是可视化渲染方面,我认为可视化是值得前端工程师重视的一个领域。随着 Web 技术的发展,视觉特别是 WebGL/GPU 相关的应用场景会越来越丰富,对技术要求也会越来越高。与前端其他大部分技术不同,WebGL 的上手门槛比较高,需要对数学、图形学有比较扎实的基础,而图形学和视觉呈现技术本身的天花板非常高,未来这块一定会有非常大的发展空间。

AI 以及 VR/AR 也是未来前端的发展方向,对于 VR/AR,主流浏览器也开始支持 webXR 技术,应当予以关注,而且无论 AI 还是 XR 这些领域,其实也和 GPU 息息相关,所以它们和可视化技术也是有关联的。

跨端技术,从 RN 到 Flutter,经过了很多的发展,但是还远未成熟,而跨端本来就有很多应用场景,未来依然有很大的成长空间。PC 端的 Electron 也不容忽视,作为跨平台应用开发,它是一个非常好用的工具。

Web Assembly、JS Binding,一些跨界交叉的领域往往有些前沿的东西,同样值得前端开发者关注。

别更新了,学不动了?

曾经有位前端技术专家表示,“前端十八个月难度翻一番”,此言道出了前端领域更新换代之快背后的前端开发血泪史。也因此,“别更新了,学不动了”这句话成为了不少前端开发玩梗的口头禅。

我个人属于技术发展的越多越快越兴奋的类型。我喜欢研究技术,尝试新东西,不怕学习,更没有学不动这种感觉。

我一直觉得,如果一个行业的新东西层出不穷,说明这个行业一直在高速发展,这本身对于从业者来说是一个非常好的事情,因为这说明这个行业中有更多的机会和成长空间。

对于一些前端开发的担忧,我也能够理解。我认为,如果你 不盲目 地去追求所谓的“时髦”技术,不去刻意担心自己是否落伍,而是去多观察这个行业,找到技术发展内在的规律和脉络,那么你就知道该如何前进,不会有任何恐慌。

在任何一个领域或方向,知识体系都可以大体上分为基础知识和领域知识,而领域知识又可以分为通用领域知识和专用领域知识。二者的变化是不一样的,基础知识的变化最慢,其次是通用领域知识,然后是专用领域知识。

用可视化这个方向来举例,基础知识是数学和图形学知识,比如向量、矩阵运算、三角剖分这些知识属于基础知识,它们基本上不会随着时间发生很大变化。JavaScript、WebGL 这种属于通用领域知识,它们会改变,会慢慢发展,比如从 WebGL1.0 发展到 WebGL2.0,从 ES2019 发展到 ES2020,但不会变化、发展得那么快。而类似 ThreeJS、BabylonJS、SpriteJS、d3.js,这些属于专用领域知识,很有可能一个大版本升级,就会有很大的变化。

学习这些知识,也是有不同的方法的。一般来说,如果是基础知识,随便什么时候都可以学,而且越早学习越好。基础知识就像是你的内功,学好它们,融会贯通之后,学习其他的知识都是事半功倍的。如果是通用的领域知识,一旦你下决心从事这个领域,也是能够尽早学习它比较好,不过由于这些知识是领域相关的,如果能一边学习,一边通过实践来打磨,就会掌握得更快。专用领域知识,不一定要很早去学,有一个技巧是,当你用到的时候再去学习它们。如果你没有用到,你可以知道有这门技术,能做什么就行了,不用花大量时间和精力去钻研它们。

有些同学觉得技术更新太快,学不过来,通常是被这些专用领域知识给“迷惑”了。比如大家都说前端工程化里的代码打包很重要,于是今天学习了 webpack,明天又去学习 rollup,而实际上这种专用领域知识,只需要知道它们能做什么,在用到的时候再去详细学习就好了。

给前端开发的一些真诚建议

我作为前端领域的多年从业者,技术管理者,也为 读者朋友给出了自己的经验总结和真诚建议。

首先,确定你自己真正喜欢和热爱前端开发这门职业。大多数同学成为前端工程师,内心是真正喜欢这个职业的。但是,之前也听到过有同学,因为觉得在程序员中前端比较“简单”,或者觉得自己数学或算法基础不好,做前端对这些要求不高,再或者就是觉得前端工程师算是份体面的职业,所以选择它,内心中并没有真正热爱这个职业。如果你心中没有真正热爱前端,仅仅把它当做一份谋生的工作的话,那么你可能在这个职业道路上走不了多远,也无法达到很高的高度。所以如果有这种情况,你需要反思一下自己是否真的适合前端开发这个职业。

如果你确实热爱这份职业,考虑长远的发展,最好选择一个好的平台,一个技术氛围好的团队,一份节奏合适的工作,这里的节奏合适指的是忙闲交替,既不会长时间持续特别忙,又不会特别闲。在这样的节奏下,项目积累再加上自己的学习沉淀,可以比较快速地成长,而技术氛围好的团队,可以让自己的学习沉淀速度更快。

要在专业上达到一定的高度,每个人的情况是不一样的,要根据自己的情况来规划。不过有一些共通点,一般来说,自我的成长需要能够找到并突破前端领域的“边界”,这个边界可以是某个有深度的领域,深入到其中的技术前沿,也可以是某个交叉领域比如与服务端的交界,与移动客户端的交界等等,在这些边界上做出突破,就可以步入前端专家的行列。

前端专家除了技术能力,也需要打造自己的个人影响力,锻炼自己的领导力,要让自己心态开放、眼界开阔,不排斥新技术,拥抱开源,多参与社区,这样的话,在职业之路上就可以到达一个比较高的高度。

最后,希望各位都能成为优秀的前端专家,让我们一起将前端行业变得更好。

总结

对了,小编为大家准备了一套2020最新的web前端资料,需要点击下方链接获取方式

学习前端,你掌握这些。二线也能轻松拿8K以上

(0)

相关推荐

  • Deno 正式发布几天了哦,彻底弄明白它和 node 的区别

    前言 Deno 已经正式发布了! 我说这句话时候,是不是很多前端 和 NodeJS 工(码)程(农)师已经按不住自己的40米大刀了.心中的不仅感慨前端是真的会造轮子,有了 node 还不够吗,还没学会 ...

  • TypeScript---介绍,安装和开发工具

    TypeScript---介绍,安装和开发工具

  • deno初体验/安装与helloworld

    deno初体验/安装与helloworld

  • ts-node 学习笔记 - 如何解决在 Windows10 下不能直接运行 ts-node 的问题

    ts-node 是 Node.js 的 TypeScript 执行引擎和 REPL. 它 JIT 将 TypeScript 转换为 JavaScript,使您无需预编译即可直接在 Node.js 上执 ...

  • 2020 Github前端最受欢迎项目盘点

    一年一度的Github前端最受欢迎项目排行榜新鲜出炉啦! bestofjs网站通过比较过去12个月在Github上添加的星数,获取了下面的排行榜.下面就和小渡一起来看看,在过去的2020年究竟有哪些深 ...

  • 2021前端发展趋势,这几个点你必须知道!

    在去年的大前端领域虽然并没有出现什么颠覆性技术,但是Flutter.WebAssembly.Serverless的火爆发展还是超乎我们预期,也让我们进一步看到大前端的融合趋势.2020年下半年,大前端 ...

  • 使用函数式语言建立领域模型

    领域模型=代码 如果说敏捷软件开发主张面对面沟通,通过快速迭代的手段,让有价值的软件尽早面向市场,从而适应快速变化的需求. 那么DDD则为敏捷开发过程中的沟通形式,作出了进一步的补充.纵观DDD的所有 ...

  • Deno 初探

    前言 Deno 已经被前端圈子提及有很长一段时间了,上个月 Deno 发布了 1.0 版本,又掀起了一小股 Deno 热.Deno 到底是什么?它可以用来做什么呢?它好用吗?带着一直以来的好奇心,趁着 ...

  • TypeScript是什么,为什么要使用它?

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://medium.com/swlh/what-is-typescript-bf333e ...

  • [软技能] 第74天 说下你对互联网行业及前端技术发展趋势的看法

    今日试题: 说下你对互联网行业及前端技术发展趋势的看法 此开源项目四大宗旨:勤思考,多动手,善总结,能坚持 <论语>,曾子曰:"吾日三省吾身"(我每天多次反省自己). ...

  • HDMI2.1技术更新加快版权管理和技术发展步伐

    最近很多小伙伴都接到HDMI抽查验厂的通知,HDMI也有很多工厂的客户要求紧急提供HDMI更新的证书,是的,没错,曾经的千年一遇抽样已经是过去式,最近包括各种相关的海外协会认证的抽查比例都在提高,大家 ...

  • 面试题:技术更新迭代,你通常如何学习新技术

    当互联网时代降临,一切事物的更新迭代速度都变快了许多,互联网加速了各行各业万事万物的更新速率,所以作为人的我们自然也是不能落后于技术的.所以,作为一个软件工程师的话,到底应该如何学习新技术呢? 首先, ...

  • 从日本果园土壤管理制度的演变看管理技术更新

    果园土壤管理制度的变迁,一方面反映了一定生产时期的生产力特征,同时,也反映了人为管理方面的经验和教训.研究日本苹果果园管理的发展历程,总结其经验,避免其过失,对我国现阶段果园土壤管理制度的调整有多方面 ...

  • 前端技术分享:Nginx负载均衡视频,基础的实战应用

    Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行.其特点是占有内存少,并发处理能力强,以高性能低资源消耗而闻名,国内 ...

  • 学习前端技术的必经阶段有哪些?

    学习前端技术,一定要一步一步来,操之过急做任何事情都不是最佳途径,了解自己的计划,知道自己的目标,明确自己的定位很重要.前端技术大致可以归结为几个阶段,本文概述一下都有哪几个阶段. 1.网页布局 2. ...

  • Web前端技术学习完之后可以做什么呢?

    Web这个编程语言相对于其他类别来讲,算是比较容易上手的,这也是很多人选择以他来入门程序的原因.虽然简单,却仍是有着广阔的就业范围,人才需求程度也只增未减.本文介绍一下Web前端技术学习完之后可以做什 ...

  • 第二代微云台来了,国产手机技术更新速度令人瞩目

    刚刚,因为这件事,vivo又双叒被人民日报点名--表扬. 人民网称,以vivo为代表的中国科技企业,通过微云台.潜望镜头以及多摄像头的器件等,已经在移动影像领域建立起了一条优质的科技赛道,用" ...

  • 对苹果树传统整形修剪技术的新看法!

    苹果生产发展迅速,栽培品种不断更新,栽培技术也在相应地发生变革.苹果树的一些传统的整形修剪方法已不能完全适应苹果树的生长发育,影响着苹果产量和果实质量的提高.我根据多年的果树生产工作经验,对苹果树传统 ...