一年菜鸟前端见到新技术有感
一年菜鸟前端见到新技术有感
假期很长,长到我囫囵的学习了下node和webpack。不得不说这期间让我学的很愤怒,因为实在是太杂了!webpack,babel,typescript、eslint、prettier......
他们仿佛站在一起朝我招手,欢呼着雀跃着,看着我一头雾水。
学习前端最大的感触就是,为什么这些明显非常万用的功能,这些工具都不做全,导致一个项目需要这个需要那个,一个一个的拼成缝合怪——甚至彼此之间还可能产生冲突。
这个时候,我又看到了一个叫做Deno的东西。
Deno?又是啥新工具?Deno是Nodejs的替代品?
有人认为Deno不是要取代Node.js,Deno也不是下一代 Node.js,更不是要放弃 npm重建Node生态。Deno的目前是要拥抱浏览器生态。但是de=destroy、 no=node,destroy node!(也有人说是node反过来,叫做deno。)
Deno 是Ryan Dahl在2017年创立的。而这哥们儿同时也是Node的创始人,从2007到2012年,他一直维护更新着nodejs。2012以后,他就将工作交给了其他的开发者,转而研究人工智能。
为什么要研究人工智能呢?因为Ryan一直不喜欢Python,于是他就想自己做一个JS的人工智能开发框架。(给大神跪了)等到过了几年,他捡起node的时候,发现这个项目跑偏了。
比如说,最近一两年才开始学习前端的人(一开始就从es6学起),接触到node可能就会疑惑——为什么node不支持import
?
过去五六年,JS进入了ES6时代,脱胎换骨,引入了大量的新语法新特性。其中Promise和模块化是最大的两块。
而node对于这两个新语法的支持都很不理想。由于历史原因,node必须支持callback(回调函数),导致异步接口会有两种写法。而与此同时,node自己的模块格式CommanJS和ES6的模块化不兼容,导致整个node对这ES6的最大的更新之一的支持一直不好。
还有最近微软刚刚买下的npm——就是国内用户必换成cnpm或者换源的那个npm,逻辑越来越复杂,模块安装目录npm_modules
极其庞杂,难以管理。Node.js 也几乎没有安全措施,用户只要下载了外部模块,就只好听任别人的代码在本地运行,进行各种读写操作。
并且还有之前说的,node的功能并不完整,外部工具层出不穷,让开发者疲劳不堪:webpack,babel,typescript、eslint、prettier
。由于上面这些原因,Ryan Dahl 决定放弃 Node.js,从头写一个替代品,彻底解决这些问题。
其实这个消息,还蛮让人开心又痛心的,刚刚学完还热乎着的,又要淘汰了。不过计算机领域嘛,特别是前端领域,一直都是这样,技术只有不断的迭代、淘汰,才能走向更好的未来,用代码去构筑整个世界。
(完)