OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

JavaScript正在变成Web界的C++


分享到
分类 心得体会   关键字 分享   发布 ourjs  1439513737192
注意 转载须保留原文链接,译文链接,作者译者等信息。  
早在2009年当我开始读博的时侯,我告诉导师,我想选择优化动态编程语言的方向。我的论文很大的一部分将涉及一些动态JIT语言编译器的实现,最后我们的讨论集中在应该选择哪种语言。最后,我们最终选择了JavaScript。这是一个很好的方案:被广泛使用的“现实世界”中的编程语言,还有一点,这种语言足够轻量,一个人就可以实现编译器。 ECMAScript 5的规范大概250页长,我把它从头读到尾,然后开始设计Higg

从那以后,我觉得我一直在看着JavaScript慢慢变成C++,它成为了“kitchen sink”式的语言(注*来自二战时期的成语"everything but the kitchen sink", 指除了洗碗槽外各式各样的炮弹齐发,现在指有太多的东西)。因此,许多新的功能被添到ES6的新规范上。从字面上统计这个规范已经是ES5规范长度的两倍。更糟糕的是,在ES6规范完成之前,已经有人预定了一箩筐的新功能要集成到ES7。他们都还没有完成ES6,就已经开始计划ES7了。有一些JavaScript语义不一致的地方需要修复,但新加入的ES6和ES7的新特性无助于解决这些问题,他们仅仅是增加了新功能(或者说:复杂性)到这个语言。

就个人而言,我比较崇尚简单和极简主义编程。我认为,较小的语言比较容易实现、优化、学习、调试和理解。你的语言越大越复杂,更多的语义不一致性就会在更多的虚拟机之间跳出来。如果JavaScript真的是“Web界的汇编语言” ,那么它为什么非得要实现这些高层次的功能特性?合乎逻辑的做法是应该尽可能多的固化JS的底层语义,并专注于改善和优化支持JS的编译器。我相信JS的复杂性一直在持续增长的原因是出于它是由学院派设计驱动的。

我当然有偏见。实际上我实现了自己的JavaScript JIT编译器,我太忙了,而且跟不上这增加这些新功能。在我看来,在当今的网络世界里,没有人会暂停片刻,呼吸和思考一下。案例分析: Mozilla 做了一个很大的噪音asm.js,编译标准的本地代码到JS,而且据称比谷歌的Native Client 更好。我觉得asm.js仍然是比较新的,还没有足够多的开发商采用和通过它,它只有在技术演示中使用过,但Mozilla和谷歌已经开始着手WebAssembly ,它独立于asm.js,二者没有什么关系。第二:asm.js仍然是很新的(2013年开始,它只有两岁),有没有足够多的采纳的情况下,它的影响微乎其微。

从本质上讲Brendan Eich告诉我们的WebAssembly,是希望将所有的编译器设立一个中立的编辑目标,我们真的不希望或需要为Web创建一种新的字节码格式或编译器实现,在我看来,这是一个有点不幸的妥协。



附:
Hack News 上面的评论:  https://news.ycombinator.com/item?id=9995788







原文地址: 点此
社区评论 ( Beta版 )
  • #0 文上右 1440656803610

    说的像你很懂C++似的

  • #1 强扬羊 1440657314404

    @文上右 #0

    我想他的意思是js正在变得更复杂

  • #2 Leo 1440725654056

    你并没有看到新标准的好处,想想怎么处理金字塔回调吧,Promise、Co、Async/await

  • #3 施厅广 1440732231864

    @Leo #2

    将Promise和Async这些模式引入JavaScript核心是不合适的,他们太过高层次,已经非常偏向应用实现层了,其实有很多很三方库都可以实现。任何设计模板、设计思想都有过时和不流行的时侯,不应加入枯层的语言核心。

  • #4 孙悟空 1441023502458

    路过,O(∩_∩)O哈哈~

  • #5 林甩土 1442891611637

    @施厅广 #3

    赞同!

  • #6 康宇宅 1445506957877

    ![强调文本][1]


OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. Node.js中的通用基础设计模式
  2. 请停止将JavaScript类型化(建议不要使用class实现类继承)
  3. WowJS:在滚动页面时添加动画效果的简单实现
  4. 闪客时代开始被HTML5慢慢终结:Facebook首席安全官号召设定正式消灭Flash的期限
  5. 纽约时报使用Html5 WebRTC记录访问者IP地址
  6. 在Debian/Ubuntu上面安装升级nginx到最新版
  7. 用jQuery和JavaScript深度复制JSON对象的方法
  8. AirJD-简单好用的免费建站工具

 相关阅读 - 心得体会
  1. 请停止将JavaScript类型化(建议不要使用class实现类继承)
  2. 几款开源的图形化Redis客户端管理软件
  3. 我为什么不再用Compass写CSS(缺点分析)
  4. CSS Sprite小图片自动合并工具(NodeJS,Python,Java,Ruby)
  5. 即将推出的CSS4 Level 4 Selectors(第4级选择器)
  6. 主流JavaScript MVC框架性能比较测试:Angular vs Backbone vs Ember
  7. [译]Node.js 框架比较: Express vs. Koa vs. Hapi
  8. 从PhantomJS迁移到node-webkit:自动化测试框架简单比较
  9. 保卫AngularJS
  10. Angular.JS出了什么问题?

 关键字 - 分享
  1. 未来十年的物联网设备安全评估方法大集合
  2. Essential Studio for Windows Forms发布2017 v2,支持office 2016和主题定制
  3. 分享7款最新HTML5/CSS3应用
  4. VintaSoftTwain.NET SDK更新至v10.2发布,增加Visual Studio .NET 2017演示丨附下载
  5. 【版本升级】DevExpress v17.1.3全新发布|附下载
  6. parasoft Jtest 使用教程:达到80-90%的代码覆盖率
  7. MailBee.NET Objects发送电子邮件(SMTP)教程七:添加多个附件
  8. Essential Studio for WPF更新至2017 v2,新增Adobe X安全性等功能丨附下载
  9. 【DevExpress v17.1新功能预告】WinForms和WPF Diagram控件 - Pan Tool
  10. Essential Studio for Xamarin更新2017 v2,新增sunburst图表控件丨附下载

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号