Erlang-China

erlang 中文社区

ECMAScript “和谐号” — JavaScript 的回归


你们一定注意到了——除了 Erlang 之外,这里还充斥着大量的 JavaScript 文章。是的,我喜欢 JavaScript ,我从不掩饰这点。实际上,我一直都是 “Dead Hard” 的 “Web Fundamentalist”(“死硬”的 “Web 原教旨主义者”),我固执(并孤独)的认为面对 “应用全面 Web 化” 的未来,要写出能适应 “爆炸性增长曲线” 的下一代软件(比如象最近老是崩溃的 twitter,不需要 “爆炸” 的软件不在此讨论的范畴之列,比如,给小企业迅猛的做一个百十来人用的系统赚点零花钱),业界所需的 “NEXT BIG ONE” 语言就是 Erlang ,但毫无疑问,它有很多缺陷,同样不能包打天下(基本上,任何声称自己能够包打天下的东西,都很可疑)。比如说,其中很致命的一条就是——在 Client 端的 Erlang 就像是当年的 Java Applet 一样,表现拙劣(几乎可以说是一无是处)。但是借助 HTTP/Ajax/REST/JSON 这一系列标准,或者干脆就说是 HTTP/HTML/JavaScript 的力量,则刚好可以绕过这些限制,而且还有点符合潮流的意思。这么说吧 —— JavaScript 和 Erlang 应该成为一对搭档。

不过 JavaScript 这个搭档之前出了一些状况。简单来说,就是:
[以下内容,纯属文学演义,如有雷同,纯属命名冲突,各大公司,纯属不对号入座]

(野心勃勃的) Adobe 捐了一大笔给 Mozilla 基金会,还同时捐出了 Flash 用的 ActionScript 的 VM 给 Mozilla,盛情之下 Mozilla 当然无法拒绝,于是 Adobe 进而联合 (钱多无脑的) Google 和 (胸大无脑的) Opera 一起把持 ECMAScript4 小组,以图控制 JavaScript 的未来。 Adobe 的邪恶野心是要将下一代 ActionScript 紧紧贴实 ECMAScript4 的金字招牌,继续扩大 Flash 的地盘,并压缩 Ajax 的空间(它显然已经看到,除了很少的一些场景以外,Ajax 的出现实际上已经让 “这个功能必须要用 Flash 才能实现” 这个说法的出现频率大为降低)。

反观 Yahoo 和 Microsoft 把持的 ECMAScript 3.1 小组,则相对保守的希望继续培养 “最被误解的语言终于被澄清” 这一来之不易的胜利果实。在利益角度他们也乐于见到 Ajax 继续发挥 Flash 强力竞争者的作用 (别忘了,HTTPXmlRequest 对象最早就是在 Microsoft 的 IE 上出现的) 。ECMAScript 3.1 的主题一直都是“改良和标准化”,基本上是一个修修补补的标准化方案,它的出现并未引起程序员群体的骚动。

Adobe 的战略布局可谓深谋远虑,但百密一疏,问题最终还是出在了战术层面—— ECMAScript4 小组的自我感觉过于良好,在扩大 “ ActionScript 化” 的成果之余,又往里夹带了太多花哨却不实用的私货 (或许 google 和 opera 的前卫分子对此亦有贡献)。最终出台的标准果然变成了一个几乎包含所有计算机语言特性的庞然巨物,整个业界为之哗然[看这里],相关机构的威信也因此大大受损。

出了这样的篓子,出面收拾的自然还是拿了钱的 Mozilla 。担此重任最合适的人选莫过于 John Resig 同学。一方面,他因为横空出世的 JQuery 而在程序员中享有极高的声誉。令一方面,他的身份也相对 “中立” ,更能让人产生 “三_个代_表” (代表JS的应用程序员,代表JS库的开发人员,以及戴了一块电子表) 的联想。因而,我们终于 “惊讶地” 听到了他进入 ECMAScript 小组的消息,随后又 “震惊地” 听到了 “和=谐” 的 ECMAScript Harmony 项目宣布。

说到 ECMAScript Harmony 的消息,我们基本上可以这么认为:ECMAScript 的十-一_届_三-中_全-会胜利召开,ECMAScript4 小组因为 “身体原因” 不适合继续担任 ECMAScript 的领_导,全体程序员起立,鼓掌,欢送。之后,全体程序员再次全体起立,鼓掌,欢迎 ECMAScript3.1 小组回来主持 “核_心” 的工作。

在 Mozilla 的角度盘点一下:有了貌似更好的 VM ;摆脱了 Adobe 的控制,保持了自我,还顺便搞了一次 “保卫JavaScript,抵制 Adobe” 的危机公关;此外,重要的是还得了实惠。恩,还是很划算地。

有兴趣的同学可以课外阅读这里的 PodCast 。

JavaScript 的状况貌似结束,Erlang 的好搭档又回来了。拨_乱-反正,雨过天晴,一切都恢复了美好。





Comments



1
Author:  pi1ot | Date:  August 17, 2008 | Time:  2:57 pm

这次我支持ms

2
Author:  Arbow | Date:  August 17, 2008 | Time:  7:10 pm

看看来自AS控程序员的看法,这似乎不是个坏事 :)

http://www.rgenerat.org/iileyblog/?p=86

“ActionScript也许再也不用迁就那不思进取的JavaScript了。ActionScript可以更加自由的发展了”

3
Author:  jackyz | Date:  August 18, 2008 | Time:  8:51 am

君不见 JQuery 是多么的 FP 而 AS 代码则是多么的 OOP ?在 John Resig 眼中的 JavaScript 与 AS 程序员眼中的 JavaScript 显然并不是同一个东西。这两者之间唯一相同的(或曰相近的)或许仅仅只是语法而已。

4
Author:  Arbow | Date:  August 18, 2008 | Time:  11:25 am

在我这个非js&as控的眼中,不希望js成第三个java,至于as,就公司内as程序员的体验来说,现在这样挺好,随便找个java的学学就入门了,语法真够接近的

5
Author:  k1000j1000 | Date:  August 18, 2008 | Time:  11:50 am

可以建议个erlang的web开发框架吧?

6
Author:  Magicloud | Date:  August 18, 2008 | Time:  4:19 pm

ecma脚本当初也是在m$的把持下扶正的,而无论是m$的把持还是烂泥的控制,总之没有一个好东西。
ecma系列的东西也许表面上装的挺简单,但进一步的开发能力却糟糕透顶。这印证了“垄断”的坏处吗?
现在火狐已经开始尝试引入其它脚本语言的支持,我看这才是“更丰富的”客户端开发的未来。

7
Author:  jackyz | Date:  August 18, 2008 | Time:  4:24 pm

@Arbow,
第三个 Java?第二个是 AS?
在我这个 JS/FP 控的眼中,最好就是 JS 保持其便利的 FP 特性,别乱78糟的加上一大堆用不上的 OOP 设施。

@k1000j1000,
erlyweb? erlang-web? 你自己选。

8
Author:  小适 | Date:  August 19, 2008 | Time:  4:00 pm

恩。总算看到一篇把这事情说清楚的文章了!不得不顶下!
估计这也就是皆大欢喜的局面了吧。怪不得取名叫和_谐~!:)

9
Author:  jackyz | Date:  August 22, 2008 | Time:  12:56 am

@Magicloud,

在“和-谐”这单事上,除了“拆台的快感”,貌似 m$ 也不大可能从中捞到什么真正的实惠,“垄断惯犯”似乎并没有充分的“作恶动机”。姑且认为这是为数不多的一例“鹬蚌博弈,程序员得利”的好事吧。

firefox 引入多种客户端脚本语言的尝试,我则认为是被“吉尼斯记录”砸到了头。当年的 m$ 狂挖 netscape 台脚的时候不是也搞过 jscript 和 vbscript 的“多脚本支持”么?试问今天有谁还能记得这两兄弟?老实说,光一个“浏览器兼容”的事就已经让人一个头有两个大了,好容易出了几个库,喜欢 fp 的用 jquery 喜欢 oop 的用 mootool,大家各得其所其乐融融。可,好日志还没过上几天,又有人要开搞“脚本语言引发的血案”,绝对不得人心。有这个“引入多种客户端脚本语言”的功夫,还不如去学学人家 webkit,踏踏实实的遵循标准提升性能才是正经。把大量精力放在非关键的特性上,绝对是昏招。这没准又是受了什么“害死人不偿命”以及“出篓子就跳槽”的“砖家”蛊惑,firefox 如此下去恐怕是要栽到沟里。

10
Author:  Erlang-China » FF 的 TraceMonkey 加速 JavaScript | Date:  August 23, 2008 | Time:  1:04 pm

[...] 刚刚还在[上一篇]的回复中数落 FireFox 不务正业地搞什么“多脚本语言支持”,而不去专心加速 JavaScript 的运行。貌似这句话现在我就得自己吞回去了。因为 John Resig 同学博了一篇关于 FireFox v3.1 之中的 TraceMonkey 技术,这一新宣布的消息表明 FireFox 内部在 JavaScript 上的投资仍然保持了足够的“密度”。 [...]

11
Author:  hax | Date:  September 15, 2008 | Time:  3:12 am

我来补充一下。es4小组里其实还有不少其他人,譬如苹果的人。但是确实主体是moz和adobe的人。苹果的人似乎虽然身在曹营(es4)但心在汉(es3.1),在特性列表文档中可以看到apple的人投了最多反对票(注意,m$那一列是空着的),也就是说,他们也是保守派。

老实说,偶对adobe也没什么好感。在es4邮件列表刚刚开张的时候,我就跳出来说es4没有必要去兼容as3,当然我找的借口其实是一个比传统的java类型系统更激进的特性nullability(C#中有半吊子的nullability)。

我坚持建议所有类型默认都应该是非null的(即取值不能为null)。这充分说明偶绝不是一个站在落后腐朽的统治阶级m$、老顽固DC把持并且迟早要被m$吃掉的yahoo,还有三心二意的小资代笔苹果一边,偶代表了比贵族阶级adobe和流氓无产者的moz更激进的无政府空想主义,耶!



Write a Comment

Note: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>