设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 Google 查看内容

Dart之于JavaScript正如C#之于C++

2011-10-21 11:12| 发布者: joejoe0332| 查看: 3371| 评论: 0|原作者: 开源中国社区|来自: 开源中国社区

摘要:   Dart之于JavaScript正如C #之于C++  在谷歌工程师拉尔斯·巴克(Lars Bak)的V8 JavaScript解释器颠覆了Firefox所宣称的速度这一背景之下,我们有理由相信,谷歌新的网络开发语言很可能与Smalltalk类似。但是 ...

  Dart之于JavaScript正如C #之于C++

  在谷歌工程师拉尔斯·巴克(Lars Bak)的V8 JavaScript解释器颠覆了Firefox所宣称的速度这一背景之下,我们有理由相信,谷歌新的网络开发语言很可能与Smalltalk类似。但是这可能会引领网络走向一个截然不同的方向。在今天丹麦举行的网络开发者大会上,谷歌和Chromium开源开发团队的成员揭开了谷歌寄予厚望的新的、更为结构化的网络编程方法——Dart的神秘面纱。Dart的正常运行需要一个新的虚拟机,这就使得Dart处于与Java、Adobe Flash以及Microsoft、Silverlight竞争的地位。但是从结构上说,至少是现在,Dart将会更依赖于浏览器。

  谷歌计划使Dart虚拟机作为浏览器现在使用的JavaScript引擎的补充。也就是说,它可以把Dart代码转变成JavaScript代码。谷歌尽量去回避关于Dart被嵌入所有的浏览器的可能性,不过在今天早上发表的一篇博文里,拉尔斯·巴克提及关于将Dart虚拟机整合到谷歌浏览器的问题,并明确表示:“我们将计划去探索这个项目。”

  终于有了类

   与C#和java等更加结构化、面向对象的语言相比,JavaScript往往会有很多累赘;与Python、Ruby以及D等更加智能化的动态语言相比,JavaScript又显得比较冗长,无法快速地切入主题。因此随着时间的推移,JavaScript在“开放式网络”的分布式应用程序功能上的统治地位似乎有所动摇。而Dart的存在似乎正是为了弥补JavaScript的这些不足。

  随着第一部Dart教程的问世,拉尔斯·巴克和他的开发团队从JavaScript的基础做起,加入了一些关键的java元素并提高了解释器的潜在假设能力来使其变得更为简洁。另外非常关键的补充就是使用了真正的类结构以及java开发人员所熟悉的类关键字。

  JavaScript中有一些使用关键 字函数的方法来使其偏向于面向对象。例如,我们可以声明一个恰好具有属性的函数,并且它的功能是作为一种方法嵌入其中,但问题是方法本身并不会得到重载而 是每次都要重新创建,所以就要把方法作为一种附加方式添加到函数原型。或者,我们可以声明一个使用通用实例的对象,它可能要用常量来定义内部结构,然后我 们可以选择一个常量来为这个函数赋值,以使其具备变量的特征。或者我们可以假定该函数是对象的唯一组成部分,然后声明一个变量,把函数值赋给它。

  但是这些方法并不够完美。许多由最新一代的JavaScript引擎例如V8和Mozilla的TraceMonkey等执行的任务,事实上就是把压缩了的繁琐的“垃圾代码”转变成相对简洁精确的代码。

  所以从理论上说,由浏览器运行Dart虚拟机所导致的性能下降问题可以在代码方面得到补偿,因为这些代码对于JavaScript解释器来说更容易分析。但这仅仅是理论上。

  Dart以一种大多数java程序员所熟悉的方式再次引入了类。并且其中的一些调整使得定义更加简洁;例如自反指示符this会被用在声明用户方法的内部(例如用Ball.throw(this.distance);而不用Ball.throw(distance); this.distance = distance;)。同时接口也支持创建用户属性和多个类的公用方法;还有如人们所期待的那样一个类实现一个接口。


酷毙
1

雷人

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部