http://www.newsmth.net/nForum/#!article/Python/125347?p=4前端
标 题: JavaScript真的要一统江湖了
发信站: 水木社区 (Fri Sep 25 16:13:31 2015), 转信
我out了,刚看到ECMAScript6标准的新特性。
感受ES6出来之后,JavaScript才真的算是一门合格的语言了。
以前经过函数对象和原型实现的一系列类的属性操做以及继承多态等老是不适应,特别
是对于C++/Java出身的人来讲。这下好了,ES6带来了类(class)关键词,同样的构造,一
样的操做。
还有很好用的 生成函数(在Python, C#这样的语言中普遍使用),处理函数内部状态保
存以及恢复的操做,不用再对this疑惑不解了。还有配合Promise更方便的处理异步编
程。
跟C#, Java8相似的lambda表达式,感受比Python的lambda关键词仍是要易读一些。
跟python同样, 支持列表的拆包操做。
还有跟python很像的import模块导入机制。支持对模块的重命名,支持所有导入。
还有不少改动,不过改得愈来愈好了。
语言层面说完了,下面说说应用层面:
前端不用说,已是事实上的标准了。
后端有node.js,至关强大,几乎无所不包。npm中建站数不胜数的子模块比django为代
表的模块的还要多得多,整个小网站跟玩似的,特别是mongo+koa+angularjs+node,看
了一下傻眼了。
桌面有nw.js,自带跨平台。异常强大,速度已经不是问题了,你们能够体验一下那些
node-webkit写的程序,好比atom,除了内存占用稍大,速度已经很快了。
移动端目前稍显劣势,可是也有PhoneGap这样的工具,同样也作出了不错的程序。
以前因为对JavaScript有些抵触心理,可是ES6一搞,语言已经不是障碍了。java
你能够先了解一下JavaScript语言,大体翻翻JavaScript: the Good Parts, 中文名叫 JavaScript
精粹,很小的一本书,很快就能看完,了解ES6,能够看看http://es6-features.org, 以及
https://github.com/lukehoban/es6features/blob/master/README.mdnode
确实,ES6是今年才出来的,因此主流的浏览器都还不能彻底支持,可是chrome, firefox以
及edge等一干浏览器已经支持大部分特性了,edge基本全支持了,chrome,firefox更新的速
度也仍是很快的。看这个地方能够看到主流浏览器的支持特性比较
http://kangax.github.io/compat-table/es6/python
不要这么纠结于多线程,多线程其实问题比较多,Java是实现了多线程是吧,可是数据的
同步操做折腾起来仍是比较麻烦的。协程+多进程才是王道,Node实现的单线程可是异步io
的效率其实很高,在不少benchmark上都跑出了不错的成绩,比PHP, Java等一干语言写的
还要好。须要数据共享,经过procbuf, MessageQueue实现多进程间通信也不是难事,而且
效率不低。 git
benchmark上nodejs不太可能比java强吧。除非java的实现很矬。nodejs也没啥,nonblocking io,每一个语言都有。要论coroutine,python和go都实践好久了,不知道你为啥看到js也实现就激动成这样子。
nodejs的框架我看大多数仍是跳来跳去的回调。用多了真的会吐的。
给我链接一下pgsql读取hstore数据列能行吗?调用一个阻塞了线程的处理图片的c语言模块能行吗?这个没有那个没有,别光看语法终于像python了就追新啊。
js拿来作桌面程序就别说了。
在我看来,JS无非是不像之前那么矬了。反正若是是个人话,我还会再等等社区成熟个三四年再说。最好能一个杀手级的强大特性才能吸引我。 angularjs
你说的是Python等语言的过去,我说的是JavaScript的将来。
Python3比起Python2,我没看到太多的进步;可是JavaScript真是突飞猛进,这就是差
别。
若是你要作网站你就明白了,先后端一体通吃,一门语言就搞定了,而且那么简单直
接, 其实Python作后台语言也很好,可是效率比起node仍是差了不少,变态级优化的V8
引擎真得很吓人,django的生态圈也不如node,你能够看看npm里面的模块,拿来就可
用,比django多得多。
其实Python服务器端,有django这样的生态圈;Python桌面端GUI,甚至是移动端也有
Kivy这样的神器。可是开发网络应用程序你仍是避免不了要用JavaScript,此前语言层面
上挥之不去的阴影,忽然变得那么熟悉,你能明白我在说什么吗? es6
一看新feature就激动不已的,
八成是个没被坑过的新手。
你须要相信一点,人与人之间没太多不一样。你想到的别人也想到,你能作的别人也能
作。尤为是一个群体,一个组织之间,能力上的差异会更小。因此区别只是你们的取舍
不一样而已。你看到别人说了10个好处,就应该默认还有10个坏处对方没说。
为啥说老人谨慎、稳重,都是这么被坑过来的呀。
另外,一统江湖是人类的内在需求,是天性之一。
一样的,差别化,也是人的内在需求,也是天性之一。
因此,别扯什么一个语言一统江湖了,不可能的。 github