V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
duhastmich
V2EX  ›  JavaScript

asm.js算是firefox 对 dart的回应吗?

  •  
  •   duhastmich · 2013-06-26 09:25:01 +08:00 · 8328 次点击
    这是一个创建于 4170 天前的主题,其中的信息可能已经有所发展或是发生改变。
    12 条回复    2014-08-31 20:58:00 +08:00
    hooluupog
        1
    hooluupog  
       2013-06-26 10:45:26 +08:00   ❤️ 1
    asm.js不属于一门高级语言,是js的一个子集,主要是将c/c++编译为js,不是用来编写代码的,而是用来将别的高性能的代码生成js的,从私心的角度说是为它的firefox OS服务。asm.js的对应物应该是google的pnacl。而dart则是一门全新的高级语言,dart的对手是整个js甚至java(考虑到android)。
    duhastmich
        2
    duhastmich  
    OP
       2013-06-26 12:05:01 +08:00
    @hooluupog 我是想浏览器各搞各的不是种退步吗
    otakustay
        3
    otakustay  
       2013-06-26 17:18:50 +08:00
    @duhastmich 这不是浏览器搞的,你看chrome也没能直接运行dart。只是google/ms/mozilla作为一个互联网的参与者,自己搞出了一个语言,又碰巧他们有开发浏览器而已,你看coffee也是类似的语言,你也不能把coffee算进“各搞各”里面对吧

    其实最早的广为人知的的浏览器直接支持js以外的语言,应该是IE的VBScript才对- -
    duhastmich
        4
    duhastmich  
    OP
       2013-06-26 20:55:56 +08:00
    @otakustay chrome已经有个dartium分支了,将来很可能chrome就正式支持了,firefox 22 支持asm.js,微软搞了typescript 虽然ie 没有直接支持typescript,这不就是各玩各的吗
    bengol
        5
    bengol  
       2013-06-26 21:00:35 +08:00
    @duhastmich 在已有的浏览器架构下再去优化JavaScript的性能已经到一个瓶颈了,至少付出与回报相差太大。
    duhastmich
        6
    duhastmich  
    OP
       2013-06-26 21:06:37 +08:00
    @bengol 奇怪actionscript3当年怎么没人支持,跟dart有得一比,估摸着ecmascript6 要变成 perl6了
    hooluupog
        7
    hooluupog  
       2013-06-26 21:08:49 +08:00
    @duhastmich typescript好像和coffeescript很像,没有dart走的那么远想要完全替代js,前两者还是js。asm.js是js的子集,还是在js的性能上做文章。asm.js和dart都是开源的,emscript标准这帮人推进技术的速度和效率太慢根本赶不上市场需要,等他们将js演变到新的高度时,ios和android的app早就赚得盆满钵满了,web性能和web编程语言明显需要进化,谁也不希望web上面只能可怜的玩玩2d类的游戏,大一点的程序也跑不起来。
    至于分裂之类的,让其优胜劣汰吧,最终能拼出来的肯定是好的。
    duhastmich
        8
    duhastmich  
    OP
       2013-06-26 21:22:00 +08:00
    @hooluupog 是,这几个语言的出发点是不太一样,asm.js 对coffeescript这类语言是个利好消息,将来可以直接翻译成asm.js
    otakustay
        9
    otakustay  
       2013-06-27 01:46:51 +08:00
    @duhastmich 我理解chrome支持dart是为了做packaged app,firefox支持asm是为了firefox os,而微软手上有.net有mfc有win rt所以他才用不着让IE去支持个背离标准的东西

    然后再回过去看,packaged app和firefox os工作的时候,事实上chrome和firefox不是作为一个浏览器,而是一个纯粹的应用宿主,因此从这点上我依旧不认为是“浏览器”开始各玩各的

    另一个事实上,不标准的浏览器中的语言基本不会有什么大的发展,也许对性能有非常高的要求的地方(游戏?我觉得游戏还不够那种要求)会用到。

    但再仔细想想,前端的性能瓶颈在哪,在计算在语言解析在语句跳转方法调用吗?我想不是的,基本上能撞上瓶颈的,十有八九是碰上了DOM和reflow这类的概念,那么dart和asm有解决DOM性能低下的问题吗?没有。所以总得来说,不认为这2个语言在浏览器作为浏览器工作的时候能改变前端的生态
    Tvguy
        10
    Tvguy  
       2013-12-23 13:46:20 +08:00 via iPad   ❤️ 1
    基本上我觉得对各位对asmjs都是误解,asmjs官方的解释是说从c编译到js过程中发现那一种格式的js更接近本地码,所以asm还是js,不过多了一些规范和库,每个浏览器都可以为此优化他们的js引擎,不是新语言,是代码优化低级化,不是高级化,dart是一种新语言,是高级化,而且dart的性能未必超过js,只是语言功能和架构丰富,容易用来解决问题,类似结构化向oo的过渡模式,oo未必性能高,但是易于解决问题。而且,asmjs也不是编译c到js用的。
    yungefu
        11
    yungefu  
       2014-08-30 22:30:09 +08:00   ❤️ 2
    asm.js的目标比typescript、dart、pnacl都要大的多,它有可能成为web未来的基础设施。简单说,它可能成为web上的jvm或.net,你可以把asm.js的代码看成未来web平台的bytecode。未来jvm及.net平台的语言也可以编译到asm.js,而不仅仅是c、c++,这实际意味着:未来所有的语言都应该可以编译为asm.js,从而使web摆脱js(或加上dart等极少数几种语言)的限制。ECMAScript6/7、dart再好,也不可能满足所有人的需求,比如我就希望可以用clojure等函数式语言写前端代码。

    asm.js这个项目最聪明的一点,是他们知道完全摆脱js是极为困难的。这不是技术问题,而是涉及到几大厂商之间的利益博弈,因此dart、pnacl基本是不太可能流行的,虽然我非常喜欢google,但在这方面,他们走的太远太激进了,只有go这样的服务器语言才可能靠纯粹的技术优势使自身流行开来。在web前端开发领域,只有基于js(实际上是将js降级),才可能迫使google、apple等公司支持。asm.js的代码可以运行在任何现代浏览器中,你不支持没问题,就是慢点,可如果某几个流行的网游或某些还未出现的大型web应用明确表示,使用firefox可以获得高几倍的fps、更流畅的体验,我相信google、apple会很难受的,最终会被迫支持asm.js。
    想象到未来所有的语言都可以通过编译为asm.js而进行web开发,而不用再忍受js,还真有点小激动呢。
    duhastmich
        12
    duhastmich  
    OP
       2014-08-31 20:58:00 +08:00
    @yungefu 最近在尝试om,难得看到有想用clojure的啊~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6024 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 02:14 · PVG 10:14 · LAX 18:14 · JFK 21:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.