主页 > 知识库 > 网页基础 > Javascript/Ajax >
栏目列表

重思JavaScript的好与坏(2)

来源:中国IT实验室 作者:佚名 发表于:2012-12-27 13:14  点击:
语法糖 JavaScript社区很快就抛弃了语法糖。语法糖是极富创造力的。将重复逻辑代码抽象出来,可以通用,帮助程序员以更好的方式编写代码。 ● 让代码更加简洁 ● 有助于表达代码背后的意思,而不是算法。我已经知道

 语法糖  JavaScript社区很快就抛弃了语法糖。语法糖是极富创造力的。将重复逻辑代码抽象出来,可以通用,帮助程序员以更好的方式编写代码。
  ● 让代码更加简洁
  ● 有助于表达代码背后的意思,而不是算法。我已经知道了数组迭代算法,好吧,谢谢你,但是请你不要告诉我这些,我只想知道你要做的东西。
  作为一名编码人员,你的主要观众不是电脑,而是其他程序员,也包括将来的自己。书写冗长的for循环很爽,但说实话,for (var i=0; i<arr.length; i++)与for e in arr 比起来,人们更愿意读后者。顺便说一下,这里的JavaScript版的循环比CoffeeScript速率要慢,你知道为什么吗?
  JSLint
  如果程序员使用JavaScript尚未感到痛苦,那JSLint成功做到了这点,而且非常"成功"! 想象一下,在某个编码的新兵训练营里,想要对JavaScript进行尴尬的惩罚,然后在其身上进行拔毛,这好比是拿着牙刷在刷厕所。事实上,我宁愿从牦 牛身上拔毛。这是原文中的例子,小编的理解是JSLint的出现是给JavaScript挑刺的,而这样还不如直接在JavaScript身上拔毛。
  更值得注意地是,作为程序员,我们应该寻找自动化,难道你不希望自己可以自动化JSLint吗?当然,你可以。CoffeeScript可以完美的生成linted代码,正如Jeremy.
  OOP
  JavaScript对象模型还是不够成熟,原型(Prototype)继承是一个低级别的功能,可以创建一些非常有意义的对象模型,但却无法基于本身进行构建。
  这也可能是JavaScript API为什么会那么糟糕的原因,当你所使用的语言甚至没有类时,该如何记录面向对象代码呢? 最重要的是,当我们甚至不知道实例化对象时,JavaScript开发人员该如何实行互操作?
  有什么可选项吗?
  年复一年,笔记本逐步成为主流、政坛也发生了不少的变化,而JavaScript仍然保持不变。你愿意等一些基本特性多少年?在这篇悲观论调的文章里,让我们先看看下面这个列表:
  1、Mozilla发布了自己JavaScript1.7或1.8,前者是在6年半之前发布的,且不向后兼容,但并无人使用且永远不会有,同样也适用于后者。
  2、ECMAScript Harmony.最近,由于设计委员会的原因,发布新版ECMAScript将会有一个极其缓慢和痛苦的过渡过程,特别是它有一些特效是与JavaScript不兼容的。没有解决方案,除非你愿意再等数十年。
  下面列出一些可选项
  1、CoffeeScript语法非常漂亮且支持类。我认为CoffeeScript并未结束,只不过是刚刚华丽地开启。
  2、TypeScript一种编译到JavaScript的语言,可以在JavaScript中构建并且添加了静态类型。个人而言,我是它的大 粉丝。正如Mohamed Mansour和Dave Hodder在评论中指出的那样,TypeScript正在进一步实施ECMAScript的一些建议,也许ECMAScript最终会从 TypeScript中借鉴可选的静态类型。
  3、Google Dart一个全新的语言,附带JavaScript编译器和一些JavaScript互操作,但整体上并未整合到JavaScript生态系统中。
  4、HaXe这是一个高级语言,可以编译JavaScript、Flash、NekoVM、PHP、C++、C#和Java(不久后),虽然我从未使用过,但它真的令人印象深刻。
  总结
  最后,我敢押注,最终的获胜者肯定是编译为JavaScript的语言。虽然我们还没真正准备好这样的过渡,但是所取得的进展仍是有目共睹的。 尽管也存在些偏离,但他们正在替未来的Web发展铺平道路。不管最终哪门语言会胜出,我都想强调一下我的主要观点:JavaScript目前仍然存在许多 不足,我们需要拥抱一个新语言并且推进它。

有帮助
(1)
100%
没帮助
(0)
0%