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一搞,语言已经不是障碍了。

你可以先了解一下JavaScript语言,大致翻翻JavaScript: the Good Parts, 中文名叫 JavaScript
精粹,很小的一本书,很快就能看完,了解ES6,可以看看http://es6-features.org, 以及
https://github.com/lukehoban/es6features/blob/master/README.md

确实,ES6是今年才出来的,所以主流的浏览器都还不能完全支持,但是chrome, firefox以
及edge等一干浏览器已经支持大部分特性了,edge基本全支持了,chrome,firefox更新的速
度也还是很快的。看这个地方可以看到主流浏览器的支持特性比较
http://kangax.github.io/compat-table/es6/

不要这么纠结于多线程,多线程其实问题比较多,Java是实现了多线程是吧,但是数据的
同步操作折腾起来还是比较麻烦的。协程+多进程才是王道,Node实现的单线程但是异步io
的效率其实很高,在很多benchmark上都跑出了不错的成绩,比PHP, Java等一干语言写的
还要好。需要数据共享,通过procbuf, MessageQueue实现多进程间通讯也不是难事,并且
效率不低。

benchmark上nodejs不太可能比java强吧。除非java的实现很矬。nodejs也没啥,nonblocking io,每个语言都有。要论coroutine,python和go都实践很久了,不知道你为啥看到js也实现就激动成这样子。
  
nodejs的框架我看大多数还是跳来跳去的回调。用多了真的会吐的。
  
给我连接一下pgsql读取hstore数据列能行吗?调用一个阻塞了线程的处理图片的c语言模块能行吗?这个没有那个没有,别光看语法终于像python了就追新啊。
  
js拿来做桌面程序就别说了。
  
在我看来,JS无非是不像以前那么矬了。反正如果是我的话,我还会再等等社区成熟个三四年再说。最好能一个杀手级的强大特性才能吸引我。

你说的是Python等语言的过去,我说的是JavaScript的未来。
Python3比起Python2,我没看到太多的进步;但是JavaScript真是日新月异,这就是差
别。
如果你要做网站你就明白了,前后端一体通吃,一门语言就搞定了,并且那么简单直
接, 其实Python做后台语言也很好,但是效率比起node还是差了很多,变态级优化的V8
引擎真得很吓人,django的生态圈也不如node,你可以看看npm里面的模块,拿来就可
用,比django多得多。
其实Python服务器端,有django这样的生态圈;Python桌面端GUI,甚至是移动端也有
Kivy这样的神器。但是开发网络应用程序你还是避免不了要用JavaScript,此前语言层面
上挥之不去的阴影,突然变得那么熟悉,你能明白我在说什么吗?

一看新feature就激动不已的,
八成是个没被坑过的新手。
  
你需要相信一点,人与人之间没太多不同。你想到的别人也想到,你能做的别人也能
做。尤其是一个群体,一个组织之间,能力上的差别会更小。所以区别只是大家的取舍
不同而已。你看到别人说了10个好处,就应该默认还有10个坏处对方没说。
  
为啥说老人谨慎、稳重,都是这么被坑过来的呀。
  
另外,一统江湖是人类的内在需求,是天性之一。
同样的,差异化,也是人的内在需求,也是天性之一。
所以,别扯什么一个语言一统江湖了,不可能的。

标 题: JavaScript真的要一统江湖了的更多相关文章

  1. JavaScript真的要一统江湖了

    ttp://www.newsmth.net/nForum/#!article/Python/125347?p=4 标  题: JavaScript真的要一统江湖了 发信站: 水木社区 (Fri Sep ...

  2. VS Code 真的会一统江湖吗?

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 作者 | ROBEN KLEENE / 策划 | 万佳原文链接:https://blog.ro ...

  3. 一统江湖的大前端(1)——PPT制作库impress.js

    <一统江湖的大前端>系列是自己的学习笔记,旨在介绍javascript在非网页开发领域的应用案例和发现各类好玩的js库,不定期更新.如果你对前端的理解还是写写页面绑绑事件,那你真的是有点O ...

  4. 一统江湖的大前端(2)—— Mock.js + Node.js 如何与后端潇洒分手

    <一统江湖的大前端>系列是自己的前端学习笔记,旨在介绍javascript在非网页开发领域的应用案例和发现各类好玩的js库,不定期更新.如果你对前端的理解还是写写页面绑绑事件,那你真的是有 ...

  5. 一统江湖的大前端(3) DOClever——你的postman有点low

    <一统江湖的大前端>系列是自己的前端学习笔记,旨在介绍javascript在非网页开发领域的应用案例和发现各类好玩的js库,不定期更新.如果你对前端的理解还是写写页面绑绑事件,那你真的是有 ...

  6. 一统江湖的大前端(4)shell.js——穿上马甲我照样认识你

    <一统江湖的大前端>系列是自己的前端学习笔记,旨在介绍javascript在非网页开发领域的应用案例和发现各类好玩的js库,不定期更新.如果你对前端的理解还是写写页面绑绑事件,那你真的是有 ...

  7. 一统江湖的大前端(5)editorconfig + eslint——你的代码里藏着你的优雅

    <一统江湖的大前端>系列是自己的前端学习笔记,旨在介绍javascript在非网页开发领域的应用案例和发现各类好玩的js库,不定期更新.如果你对前端的理解还是写写页面绑绑事件,那你真的是有 ...

  8. 一统江湖的大前端(6)commander.js + inquirer.js——懒,才是第一生产力

    <一统江湖的大前端>系列是自己的前端学习笔记,旨在介绍javascript在非网页开发领域的应用案例和发现各类好玩的js库,不定期更新.如果你对前端的理解还是写写页面绑绑事件,那你真的是有 ...

  9. 一统江湖的大前端(7)React.js-从开发者到工程师

    目录 一. 前端打怪升级指南 1.1 我应该从哪个框架开始学? 1.2 一次转职 1.3 二次转职 1.4 转职-其他 二. 为什么你应该学习React 2.1 技术栈的延伸 2.2 组件化开发 2. ...

随机推荐

  1. Spring接管JDBC

    在Spring配置JDBC <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...

  2. log4net在release模式下无法生成文件或不写入日志

    在Debug模式一切正常,但是在release模式下log4net不工作,查了很多资料,终于解决.具体做如下检查修改. 1.检查log4net写入日志文件路径是否正确: 2.检查对应日志文件路径是否有 ...

  3. The databse returned no natively generated identity value问题

    com.cqupt.dayday.model 代码 package com.cqupt.dayday.model; import java.util.Date; /** * Created by I ...

  4. 爬虫系列4:scrapy技术进阶之多页面爬取

    多页面爬取有两种形式. 1)从某一个或者多个主页中获取多个子页面的url列表,parse()函数依次爬取列表中的各个子页面. 2)从递归爬取,这个相对简单.在scrapy中只要定义好初始页面以及爬虫规 ...

  5. Example of Abstract Class

    The Vehicle class has abstract members that must be implemented by the Car class or any other class ...

  6. winform datatable 或datagridview中添加列

    DataGridViewCheckBoxColumn dg = new DataGridViewCheckBoxColumn(); dg.HeaderText = "选择"; dg ...

  7. certbot自动在ubuntu16.04的nginx上部署let's encrypt免费ssl证书

    终结CA收费时代,让互联网更安全 Install On Ubuntu systems, the Certbot team maintains a PPA. Once you add it to you ...

  8. 大数据-04-Hbase入门

    本文主要来自于 http://dblab.xmu.edu.cn/blog/install-hbase/ 谢谢原作者 本指南介绍了HBase,并详细指引读者安装HBase. 前面第二章学习指南已经指导大 ...

  9. 2.8 定位一组元素elements

    2.8 定位一组元素elements 前言    前面的几篇都是讲如何定位一个元素,有时候一个页面上有多个对象需要操作,如果一个个去定位的话,比较繁琐,这时候就可以定位一组对象.webdriver 提 ...

  10. gcc/g++多版本切换 (ubuntu18.04)

    使用Ubuntu18.04已经有一段时间了,在使用过程中经常需要处理不同软件的编译工作,但是这时候就遇到这样一个问题,那就是不同软件,甚至是同一个软件的不同版本都会使用不同版本的gcc/g++来进行编 ...