整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

打工人最爱技能:JavaScript的未来会走向何方?

文共5432字,预计学习时长14分钟


图源:unsplash


作为一个见证了过去17年编程语言发展的软件开发者,笔者试图在本文中对JavaScript进行一些预测。


如今,JavaScript无处不在,不仅仅应用在前端(浏览器)和后端(Node和Deno),也包括手机、电脑桌面软件,甚至两者的混合应用。它已经成为2020年求职人最想拥有的工作技能之一(根据StackOverflow的开发者调查)。


但为何会如此呢?这对JavaScript的未来又意味着什么?JavaScript的发展是否会顺风顺水?未来会不会有一个更新更好的语言诞生,从而推翻JavaScript无所不能的地位?本文将探讨一下这些可能性。


是什么让JavaScript如此受欢迎?


不管你是喜欢还是讨厌,JavaScript的流行都是毋庸置疑的。根据TIOBE的流行指数,在排名前十的语言中,JavaScript目前排在第七位。


根据 StackOverflow的2020年开发者调查,最受欢迎的编程语言正是Java:


这些不是随机数字或有偏见的民意调查,这些数据可以分析出我们的市场,对全球数以百万计的开发者进行调查,一切都在表明JavaScript是2020年的热门语言之一,对此你怎么看?


当然,这个问题可能有很多不同的答案,主要取决于你在挑选编程语言时看重什么,这是我的看法:


· 背后有一个庞大的社区。


围绕着这样一个事实,发生了许多有趣的故事:JavaScript外部框架可能比实际开发者使用的更多。虽然这可能是一个夸张的说法(注意笔者这里说的是 "可能"),但这源于一个事实,那就是我们有这么多的人,试图让这门语言成为我们自己的语言,此举贡献巨大。这并不是一件坏事,证明了这是一个充满生命力并不断尝试发展的社区。


当笔者不得不使用其他语言时,非常怀念的一件事是,人们可以从原社区中获得大量的支持和帮助。这绝对是一个进步的标志,此举还有待完善,并有望在未来取得更多的成就。


· 适当的发展方式。


撇开框架和库不谈,语言本身也在不断发展。不过值得庆幸的是,这种改变并不是由一个实体控制的。


要澄清一下:虽然JavaScript本身(这个术语)是由Oracle所拥有的,但这门语言是要遵循ECMAScript的规范。而这些规范其实是由社区本身间接控制的,并由TC39委员会来监管和组织。


通过考虑所有不同的建议以发展语言,并不断运行直到语言足够成熟。之后,如果想保持兼容的话,就由例行程序来实现这些更新,而且此后浏览器之间还存在纷争。


作为一个开发者,必须努力保持在兼容性和标准的范围内,因为你更希望你的代码能跨浏览器兼容。现在情况已经不是这样了,所有的例行程序都在努力跟上ECMAScript的最新版本。


· 一个生机勃勃的生态系统。


这与第一点很像。有更多的前端框架可以尝试,没必要去学习所有的框架。每天仅NPM中分享的模块就数以百万计。


这给刚开始尝试该编程语言的人制造了很多麻烦,但同时也吸引了更多的人加入,不同的框架和模块最终都会达成同一件事,只是方式不同而已。而这些不同的方式有助于引起更多个人开发者的共鸣。毕竟,React、Vue和Angular都能帮助开发者创建同样的APP,只需要选择自己喜欢的那一款即可。


那么,综合几年前的情况以及它的发展历程,你如何看待JavaScript的未来?

这绝对是一个很难回答的问题,先看看笔者的想法。


近期变化


在过去的几年里,这门语言正在不断发展。如果你是JavaScript的新手,也许还没有注意到,从ECMAScript 第5版到第6版有一个质的飞跃,在未来的版本中应该也会发生许多改动。如果它继续保持现在的路径和发展速度的话,笔者认为不久之后它可能会这样……


图源:unsplash


作为目标语言的JavaScript


即使JavaScript拥有令人惊叹的社区,为开发者提供工具和框架做了大量工作,却仍然有很大一部分人没有理由地讨厌JavaScript。


是的,没看错,确实有人讨厌它,或者至少不喜欢它的大块头,认为自己可以把它做得更好。于是,就有了CoffeeScript和后来的Dart以及现在的TypeScript这样的项目。


这并不是坏事,事实上,这是一个非常好的机会,让JavaScript不仅可以直接被全世界的开发者广泛使用,还可以成为很多transpiler创造者的目标语言,试图给开发者提供其他选择。


本质上,这场运动将为JavaScript打开大门,通向一个不同的浩瀚宇宙。自从Node.js进入市场并流行以来,JavaScript不再是 “前端语言”,允许公司简化他们的技术堆栈去形成一个跨领域的单一语言。


想一想,如果你也能用Python或Ruby做到这一点,会发生什么?这并不是多么疯狂的想法,过去已经有项目试图实现它,我们可能只是需要更多的时间。


前端开发的问题(笔者认为这是唯一的问题)是,你需要学习JavaScript才能进行工作。这与后端世界完全相反。目前,浏览器只允许一种语言为王,那就是JavaScript,如果想要更多的语言,就必须把你的代码编译(或者说是移植)成JavaScript。


当然,还有WebAssembly,如果他们有更多的能力去访问其他领域,如DOM,它很可能会取代JavaScript。但现在它只能在一个非常狭窄的领域发挥作用:前端的大量计算。这是一个性能工具,而不是一个完全独立的前端开发环境。


演变的例子


JavaScript发展到现在的另一个方式是通过社区开发的框架看到社区的需求。如果你已经使用JavaScript有一段时间了,特别是从ECMAScript 5开始,你可能会记得lodash和underscore等库。


对项目来讲,这些库都是必要的,因为它们为语言增加了额外的功能,如map、some、find、reduce、get、set、merge等方法。虽然在最近的更新中,有些功能已经渗透进语言本身,但这些库依旧有存在的必要性。


比如ECMAScript 6,增加了很多数组方法,给编程算法带来了相当大的提升。可选链使得 get 方法被淘汰,或者说几乎被淘汰。传播操作符也几乎淘汰了merge 方法,而这个列表还在继续更新。一个功能越是流行,TC39委员会就越会尝试将其纳入到语言中。


另一个明显的例子是如何引入类。JavaScript试图在一个面向使用者的世界中保持初心,但它失败了。要么是因为没有足够的拥护者,要么是因为没有正确的文档化。但是有那么多的开发者试图强行在上层建立一个OOP模型,于是最终在上层添加了一个薄薄的OOP层。


起初这很浮于表面,但随着不久之后私有字段的加入,它正在慢慢演变成一个更成熟的模型。道阻且长,这只是语言演变的一个例子,说明这门语言是如何发展的,尽管违背了它的初衷,但开发者社区的力量在支持它。


最后一个新增的框架是Svelte框架,它试图将反应性的概念带入语言本身,不像其他框架,比如React,它反而试图为开发者提供工作方法,将JavaScript还没有准备好的概念强加给他们。


使用Svelte框架,可以编写这样的代码:


<script>
         let count =0;
            functionhandleClick() {
             count +=1;
         }
</script>
             <buttonon:click={handleClick}>
         Clicked {count} {count ===1?'time':'times'}
    </button>


有一个按钮,点它标签值就会更新。当然,目前这需要编译成实际的JavaScript,你估计需要多长时间才能将类似的例子吸收到合适的ECMAScript规范中?


留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范

年来,web前端的发展越来越迅速,而HTML5则是让web前端更上一层楼,对于web前端的开发人员来说,学习HTML5成为了他们进入web前端开发行业的首选,目前互联网的用户达到6亿,而HTML5的人才缺口也达到了300多万,这就使得HTML的就业前景非常的广阔。那么,HTML5语言有什么优势呢?薪资前景怎么样?

HTML5语言优势

1、多设备跨平台

HTML5是可以跨平台使用的,当你开发了一款HTML5游戏时,你可以很轻松的把这个游戏移植到其他的平台使用,所以他的跨度非常大,非常的受开发者的欢迎。

2、自适应页面设计

以往开发者在研发过程中需要针对不同的设备,提供不同的页面设计,这样做不仅增加了架构设计的复杂程度,同时成本也会相对的提高,而HTML5的出现解决了这一难题,自适应网页设计,可以让同一张网页自动适应不同的屏幕设备,根据屏幕的大小做出相应的调整。

3、更容易推广

HTML5应用导流更加的方便快捷,不管是搜索引擎,应用市场还是浏览器导出都是HTML5的;流量入口,所以html拥有更加强大的优势,同时,HTML5还有流量大,以及导流效率高等优势。

薪资前景

想要了解HTML5的薪资前景,那么咱们就靠数据说话,从职友集上我们就可以看到HTML5开发的薪资情况,我们先来看一下一线城市的薪资情况

北京

上海

深圳

通过上面的数据可以看出,现在在IT行业中,HTML5开发的薪资位居前列,现在工作1-2年的HTML5开发工程师工资水平也会相应的提高一大截。这更加说明了现在HTML5的发展前景。

HTML5各种需求迭代非常频繁,所以对技术人员的需求不断的增加,再加上现在IT互联网行业的盛行,在这样的大环境下,各类的APP、网站网页的更新速度也在不断的加快,这也使得前端开发更加的频繁,对于HTML5开发人员的需求也在进一步的增加。

市场的需求,推动了技术的进步,同时也让更多的技术人员有了高薪就业的机会。所以,前端开发不仅有前景,更加的有“钱景”。

JavaScript的未来很光明,该语言确实正在打破浏览器的壁垒,许多开发人员看到JavaScript的服务器端实现,入node.js,从而可以使用一种语言编写web应用程序。有趣的是这一看起来是新生的JavaScript应用根本不是新的,Netscape引入的最初的服务器端开发环境成为LiveWire,就是使用服务器端JavaScript,并且使用Microsoft的经典的活动服务器页面的页面通常使用JScript编写。

不管是否清楚JavaScript的离世,他的未来近在咫尺,并且该语言正在超越浏览器,走向如武器,桌面小组件,以及所有的程序和设备。为了完成拥抱其未来,JavaScript需要发展它的新角色。该语言,需要构建大规模系统的更多功能。其类型和对象处理的某些方面需要进行修改,可能最重要的是,该语言需要一个公共库。引入这些特征以及其他建议的大量“修复”需要一些时间。希望这些修复不会使该语言支离破碎,也不会减缓新特性的引入,就像过去发生于其他语言身上一样。

不管JavaScript的发展历程如何,有一件事情很明确,JavaScript不会再降级为简单的,平凡的翻转效果以及表单检查任务,它是一门强大的并且广泛使用的语言,因此,严格地研究JavaScript的语法,就像其他编程语言一样。