asm.js算是firefox 对 dart的回应吗? - V2EX
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 8686 次点击
    这是一个创建于 4492 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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     Solana     5521 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 08:29 PVG 16:29 LAX 01:29 JFK 04:29
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86