为什么js库层出不穷 而我们还要使用它
Posted mrzhu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么js库层出不穷 而我们还要使用它相关的知识,希望对你有一定的参考价值。
很少有语言会像js这样,不断由开发者开发出各种各样的库 然后共其他人使用,因为在我的印象中:由大公司开发出来的库会更加有保障 以及会注意到版本兼容问题,而个人开发者开发出来的库 质量很难得到保证,甚至在大的版本的时候 会出现兼容问题,我在使用.net的时候,一直使用微软官方提供的库,所以对于个人开发者开发出来的库 具有天然的抵抗心里,不过对于web开发人员来说,使用第三方库是一件非常愉快的事情,这是为什么呢?我想是因为两方面的原因:
·1:开源运动,软件开发在1980年兴起之后,就面临一个问题,大公司垄断于打破大公司垄断,具体是指 大公司在某一个领域构建起非常强大的实力,实力强大到可以随意更改游戏规则,而大公司在指定规则的时候 往往将自己的利益置于优先,然而 行业是属于大家的,开源运动旨在通过联合众人的力量 构建起一个于大公司一样的平台,从而打破大公司的垄断。
2:跨平台交互,如果我们深入思考以下,C语言 C++是在嵌入式开发领域,C#是在桌面开发领域,ios安卓是在移动端领域,这些语言都有属于自己的阵地,而且除了C C++其他语言 都被大公司左右,而语言所在的平台的发展也由大公司左右,这本质上是大公司左右了平台的发展,比如书 苹果就不给web开放更多权限,我们也没有办法,但是时代总是在发展,是否存在一个平台 不受大公司左右 而完全自由自在的发展呢?当然是有的,或者说 由开源运动支持的语言都会得到自由发展,如java javascript,当我们谈到javascript的时候,我们真正在讨论的是什么?或者说js这门语言的本质目的是什么?这样从上世纪90年代说起,当时sun公司开发java语言,是为了在所有的硬件设备上使用同一个平台,这样开发人员就可以快速开发出针对所有硬件设备的软件(这和当今的物联网热潮是不是相似)?但是sun公司并没有说服其他厂商一起合作,java夭折,这个时候 景公司找到sun公司,希望sun公司可以使用java语言 给他的浏览器编写一些插件,这样将有助于提高浏览器的功能,后来sun公司确实为景公司的浏览器开发了一些插件,而且反响也很好,但是 java是需要依赖于java虚拟机的,景公司不可能强制要求用户安装java虚拟机,所以这个时候景公司就自己开发了一门类似java的轻量级语言 javascript,javascript的使命给简单 给浏览器提供简单的交互能力。然而就是这一个小小的语言 却发展到如今枝繁叶茂的底部,这是为什么呢? 首先因为js不受大公司控制,js html css虽然在其发展过程中 不断受到大公司的侵蚀,但是w3c组织一直牢牢把控着他们的发展方向,然而web发展太快,以至于无论是大公司还是w3c都无法即时的解决当前的问题,所以这个时候 库就诞生了,库的使命是 解决当前web发展中开发遇到的问题,早期的jquery是解决js难于编写和浏览器兼容性问题,后面的underscore是提供js开发中的使用库,而backbone是解决开发过程中代码组织的问题,这些问题 如果是大公司 其实很早就已经内嵌如编辑器中解决了,而在js这边 却不断需要社区力量来推动,所以本质上 你当然可以不适用库,然而使用库的本质是使用当前库解决你开发中遇到的问题,你可以不适用jquery 而直接使用js,但是你要自己解决兼容性问题,你可以不适用commonjs等其他模块化方案,这说明你当前可能并不需要模块化处理,很多库并不是非用不可,而是根据你的业务场景来,在你的业务场景中,总有一款库会解决你的问题,然而 很少有其他语言回像js这样,竟然不断有人提供库 来帮助开发者提高工作效率,这种舍己为人的高尚情操,或者这就是开源的力量吧!!!然而web行业好像又总是在复制其他行业,比如早年复制桌面开发,后来复制移动开发,如果后面5g提速,必然会出现一个新的巨头 并开辟出一个新的领域,然而我并担心web会沦落,因为那个时候,必然会出现一个新的浏览器 在那个新的平台上,然后每一个弱小的开发者 都可以在这个新的领域施展拳脚,web行业的使命好像是 在每一个出现的新的领域内 帮助小的公司去挖掘新的商机,然而为什么 不会是这个巨头 发明了自己的语言,然后其他开发厂商去使用巨头的语言呢?这取决于两个原因:1 新的领域是否是一个巨头,2 巨头语言是否支持热更新,这两个因素将直接决定着新领域内web行业的发展,我们已经看到这种影响在移动端开发的结果,最终web战胜了IOS和安卓,这是因为web的热更新以及跨平台,在更早的时候 微软统一桌面端,其实web的发展并不好,因为那个时候web除了做一些简单的网站,其他的无能为力,如今web的发展是因为无需安装,即用即走,所以web的本质在于:跨平台、热更新、即用即走、秒开。正是因为这些,web得以壮大,未来新的技术领域,除非巨头可以解决这些问题,否则难以消灭web。
1g 2g 3g 4g 5g这种底层网速的变迁,将直接影响web行业的发展,而web行业的不断发展,不断给web开发人员提供新的挑战,web开发人员入门确实简单,然而web开发人员真正的挑战是长期的快速的学习能力,他不像其他语言 越老越吃香,在web开发这里,快速的学习和理解能力至关重要,因为web发展速度太快,而新的业务场景不断涌现,新的开发理念不断被挖掘,新人在进入行业3年后 可以迅速代替老人,因为这个时候 老人开发也是使用一些第三方库,而新人也是使用第三方库,新人与老人的区别是什么呢?老人虽然对于底层有了深刻的理解,但是 并不需要老人开发第三方库,web行业需要的是快速的迭代能力,他不像其他行业 追求的是高精尖,其他行业需要的是长期的投入带来丰厚的回报
所以web行业的不断繁荣本质上是 底层网速的不断提高,使得新的领域被挖掘,同时因为js语言不受大公司控制,所以任何人 都可以根据自己的所学 封装出一套适合某一个业务场景的库,在解决了兼容性问题之后,开发人员就可以使用这个库 开发出对应业务场景的项目,如three.js 他就是满足3d场景的一个库,对于three.js 真正的学习其实多用用就会了,它本身不需要什么 非常大的知识背景,任何人 只要脑子健全 都可以成为web开发人员。然而多年从事web开发人员的价值在哪里呢?这样看来 其实10年之后的web开发人员其价值是远远小于一个入行3年的web开发人员的,因为这个时候 无论是精力还是学习能力都无法于年轻人相比,
以上是关于为什么js库层出不穷 而我们还要使用它的主要内容,如果未能解决你的问题,请参考以下文章