JavaScript 这种语言特性十分糟糕的语言流行起来是不是一场灾难?
这么多年来,让我改变歧视态度的语言有三个,第一个是Lua,第二个是Javascript,最后一个是Rust。
很长时间以来,我不是Javascript的用户,我是从AS3转过来的,带我入行的一个水平很低的同事告诉我,你会AS3以后,学js很容易的,好多底层是一样的。
其实不一样,相对于AS3,js真是啥啥都不行。OO都是伪装的!!除了有一套差不多的事件系统,其它的js都比AS3儿戏!!那时候flash player要落幕了,我手上许多的基于flash player activex+c++的游戏开发用的工具,需要寻找后续维护技术。于是后来开始用上了node.js+TypeScrip作为替代方向(当时还编译过v8,想用v8+js桥来仿照fp acrivex,发现这个方案真蛋疼,结果node.js做出来了)……
是的我没选择js而是先选择了ts,因为ts的oo够纯净,也更像AS3。直到后来真的开始用nodejs部署项目,一个egg+mongodb的电商项目,我才真的直接用上了js,才真正了解了js那一大堆的恶心语言特性,以及时不时看到像肠道一样跟stdc++代码一样晦涩的React.createElement垃圾堆还有new array的一串链式调用……
直到我完全了解清楚什么是es2015,我才开始对js改观,class像样了,这个js像个语言了,以前像个脚本……这时候写js开始不反感了。后来用上了promise,又用上了async,又用上了ArrayBuffer,嗯,它越来越好了,至少没朝着为难人的方向进化,而且基本每年发一次版本,能给出不少减少代码量的方案,还是很有诚意的。至少比我从06年听到c++0x结果等到c++11等了6年结果等来一个没多少糖连string都依然残废的版本要好多了。
js的发展历程才是社会的真相,你可以不优秀甚至就是垃圾,但是只要坚持下去,不断的往正确的方向去迭代,自然这些付出会成为有效的回报。js的流行是他应得的,不是什么灾难。