本站已关停,现有内容仅作科研等非赢利用途使用。特此声明。
查看: 2770|回复: 3
打印 上一主题 下一主题

再见2012,你好2013

[复制链接]
跳转到指定楼层
1#
发表于 2012-12-29 22:55:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2012年是 Dart 快速发展的一年,10月发布了第一个里程碑版 M1,年底又发布了 M2。而2013年将是 Dart 开始普及的一年。

快速变化对于一门处在发展初期的语言很正常,而且是好的现象。但是对于写书作者而言,变化太快内容就会不稳定;对开发者而言,也不敢用于正式的工作环境。而现在 Dart 语言开始逐渐稳定,主要的语言特性已经确立,核心库不断完善。预计2013年 Dart 将开始普及,并实际应用于各种项目中。

下面谈一谈 Dart 最近的主要变化(M2)。

在Dart M2中,dart2js 生成的 JavaScript 代码比以前平均减少了一半!Dart 显著改进了生成的 js 代码的大小,这得益于①利用 tree-shaking 技术自顶向下检查 html 库的使用,将不需要的代码排除出去,②支持代码最小化(需要--minify参数)。例如在一个实际项目中:
  • Dart size: 302k
  • JavaScript size: 505k (167% of Dart size)
  • Minified JS size: 238k (79% of Dart size, 47% of JS size)
  • Gzipped minified size: 71.2k (23% of Dart size, 14% of JS size)


Dart VM 性能提升。Dart VM 现在比 JavaScript V8 引擎快 50% !在JavaScript的性能测试 Octane 标准中的两项测试 Richards 和 DeltaBlue 中,Dart VM 比 V8 快了 50%,而 VM 的性能优化工作还在不断改进中,详见这个 Dart Performance

Dart VM 支持 SSL 了,这样就可以使用 https 了。

Web UI(之前被称为Web Components)包是一个构建 Web 应用的 Dart 库,起源于Web Components 和 Model-driven Views(MDV) 技术,提供Web组件、动态模版、数据单双向绑定等功能。详见:介绍FeatureToolsSpecificationSourcePub 以及 Codelab

包管理工具 Pub 现在已允许开发者上传自己的包到 pub.dartlang.org 。你需要有一个 Google 账号用作认证,然后在你的包目录下运行 “pub publish” 命令。

基于镜像(mirror-based)的反射已部分实现,正如名字的暗示,镜像是用来反射另一个实体的独立对象,它在安全、分布和部署方面有许多优势,但用起来会略微麻烦一点。详见文章:http://www.dartlang.org/articles/reflection-with-mirrors/

Gilad Bracha 写了一篇新文章 Mixins in Dart,介绍了将来 Dart 语言中 Mixin 的样子,并有可能在 Dart M3 中实现。Mixin 是对传统面向对象语言单继承缺陷的有益补充,在 Ruby 和 Scala 中都有实现。

Dart 团队现在考虑让核心库统一实现一个新的 Streams API ,这会影响IO和迭代的处理模式,值得关注。

核心库还有一些结构调整,如:
  • 按照新的命名规范重命名了部分,如 innerHTML 现在是 innerHtml
  • 庞大的 dart:html 库中,有部分内容被迁到外面作为独立的库,如svg、indexed_db、web_audio。

Dart Editor方面,现在支持代码主题风格的设置,并提供大量代码配色方案,如 Notepad++、Sublime Text 2 等主题。具体在设置里的 Visual Themes 选项中设置。还支持对 pubspec.yaml 文件的可视化编辑功能,具体使用方法是:鼠标右键点击 pubspec 文件,然后选择 "Open with Pubspec Editor"。


ChinaGDG.com
回复

使用道具 举报

2#
 楼主| 发表于 2012-12-29 23:20:59 | 只看该作者
另外,原先在 SDK 的 pkg 目录下的各种工具很多都已经发布到 Pub 上了,如 unittest、logging、js 等,这样就不用使用文件路径引入它们了,而是按照标准包管理的方式导入即可。
ChinaGDG.com
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2012-12-30 00:10:37 | 只看该作者
Dart 新增了3个工具包:serializationhttpoauth2,分别用于序列化对象、发起 http 和 oauth2 请求。这些是Dart团队在自己的项目中提炼出来的库,已发布到了Pub上,在SDK的pkg目录中也能找到。
ChinaGDG.com
回复 支持 反对

使用道具 举报

4#
发表于 2012-12-30 04:36:20 | 只看该作者
韩国恺你好! 非常感谢你与大家不断做的Dart语言的分享!

你上载在其它地方的分享文档,你也可以直接上载在这个Dart版面,或者上载到这个文档下载版面: http://www.chinagdg.com/forum-89-1.html ,  让我们GDG社区成员们可以方便参照。

另外,我想推荐你成为我们中国Dart 语言的DGE专家,让我们Dart技术工程师和你建立长期的联系,你有问题可以随时问他们,我们也可以邀请你参加我们明年在总部举办的全球GDE专家的高峰会议。你给我工作信箱发个邮件吧: bluan@google.com

祝你和大家都新年快乐!

Bill
ChinaGDG.com
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表