Dart intro

1,758 views
1,639 views

Published on

Dart语言简介

Published in: Technology, Sports
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,758
On SlideShare
0
From Embeds
0
Number of Embeds
70
Actions
Shares
0
Downloads
14
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Dart intro

  1. 1. Dart 编程语言简介 @yinhm TechParty February 25, 2012 @yinhm Dart 1/27
  2. 2. Dart: Structured Web Programming @yinhm Dart 2/27
  3. 3. Dart 之新• 新的编程语言 @yinhm Dart 3/27
  4. 4. Dart 之新• 新的编程语言• 新的开发工具 @yinhm Dart 3/27
  5. 5. Dart 之新• 新的编程语言• 新的开发工具• 新的库 @yinhm Dart 3/27
  6. 6. Dart 之新• 新的编程语言• 新的开发工具• 新的库• 开源 • 2011 年 10 月公开预览版 • Dart 规范:0.07 草案 @yinhm Dart 3/27
  7. 7. Dart 开发团队和社区生态• Lars Bak:V8 引擎作者 @yinhm Dart 4/27
  8. 8. Dart 开发团队和社区生态• Lars Bak:V8 引擎作者• Gilad Bracha:第二、三版 JAVA 规范作者之一 @yinhm Dart 4/27
  9. 9. Dart 开发团队和社区生态• Lars Bak:V8 引擎作者• Gilad Bracha:第二、三版 JAVA 规范作者之一• 80+ Google 工程师,部分来自 GWT 团队 @yinhm Dart 4/27
  10. 10. Dart 开发团队和社区生态• Lars Bak:V8 引擎作者• Gilad Bracha:第二、三版 JAVA 规范作者之一• 80+ Google 工程师,部分来自 GWT 团队• 少量社区成员 @yinhm Dart 4/27
  11. 11. Dart 开发团队和社区生态• Lars Bak:V8 引擎作者• Gilad Bracha:第二、三版 JAVA 规范作者之一• 80+ Google 工程师,部分来自 GWT 团队• 少量社区成员• 讨论组:1055 成员,非常活跃 @yinhm Dart 4/27
  12. 12. Web 开发现状之弊端 @yinhm Dart 5/27
  13. 13. Dart 目标:结构化且灵活的 Web 编程语言 @yinhm Dart 6/27
  14. 14. Dart 目标:易学,对程序员来说 是熟悉且自然的 @yinhm Dart 7/27
  15. 15. Dart 目标:高性能、快启动 @yinhm Dart 8/27
  16. 16. Dart 目标:适合 Web 上的各类设 备 @yinhm Dart 9/27
  17. 17. Dart 目标:各种主流浏览器支持 @yinhm Dart 10/27
  18. 18. Dart 编程语言 @yinhm Dart 11/27
  19. 19. Dart 编程语言 简单无惊讶的面向对象编程语言• Class、Interface @yinhm Dart 12/27
  20. 20. Dart 编程语言 简单无惊讶的面向对象编程语言• Class、Interface• 可选静态类型 @yinhm Dart 12/27
  21. 21. Dart 编程语言 简单无惊讶的面向对象编程语言• Class、Interface• 可选静态类型• Isolates @yinhm Dart 12/27
  22. 22. Dart 编程语言 简单无惊讶的面向对象编程语言• Class、Interface• 可选静态类型• Isolates• Single-threaded• first class functions @yinhm Dart 12/27
  23. 23. 传承• 面向对象受 Smalltalk 启发 @yinhm Dart 13/27
  24. 24. 传承• 面向对象受 Smalltalk 启发• JIT 受 Self 启发 @yinhm Dart 13/27
  25. 25. 传承• 面向对象受 Smalltalk 启发• JIT 受 Self 启发• 可选类型受 Strongtalk 启发 @yinhm Dart 13/27
  26. 26. 传承• 面向对象受 Smalltalk 启发• JIT 受 Self 启发• 可选类型受 Strongtalk 启发• Isolates 设计受 Erlang 影响 @yinhm Dart 13/27
  27. 27. 传承• 面向对象受 Smalltalk 启发• JIT 受 Self 启发• 可选类型受 Strongtalk 启发• Isolates 设计受 Erlang 影响• 语法接近 JavaScript C @yinhm Dart 13/27
  28. 28. 可选类型• 动态类型,类似 JavaScript @yinhm Dart 14/27
  29. 29. 可选类型• 动态类型,类似 JavaScript• 静态类型 • 不导致程序编译或运行失败(除非开发时设置为 checked 模 式) • 提高易读性 • 机器友好:IDE 补全,效验 • 更早检测到错误 @yinhm Dart 14/27
  30. 30. 可选类型• 动态类型,类似 JavaScript• 静态类型 • 不导致程序编译或运行失败(除非开发时设置为 checked 模 式) • 提高易读性 • 机器友好:IDE 补全,效验 • 更早检测到错误 @yinhm Dart 14/27
  31. 31. 来点代码@yinhm Dart 15/27
  32. 32. Classes and interfacesi n t e r f a c e Shape { num p e r i m e t e r ( ) ;}c l a s s R e c t a n g l e i m p l e m e n t s Shape { f i n a l num h e i g h t , w i d t h ; R e c t a n g l e (num t h i s . h e i g h t , num t h i s . w i d t h ) ;// Compact c o n s t r u c t o r s y n t a x . num p e r i m e t e r ( ) => 2* h e i g h t + 2* w i d t h ;// S h o r t f u n c t i o n s y n t a x .}c l a s s Square extends Rectangle { S q u a r e (num s i z e ) : s u p e r ( s i z e , s i z e ) ;} @yinhm Dart 16/27
  33. 33. Optional typesc l a s s Point { var x , y ; Point ( t h i s . x , t h i s . y ) ; s c a l e ( f a c t o r ) => new P o i n t ( x * f a c t o r , y * f a c t o r ) ; d i s t a n c e ( ) => Math . s q r t ( x * x + y * y ) ;}main ( ) { v a r a = new P o i n t ( 2 , 3 ) . s c a l e ( 1 0 ) ; print (a . distance ());} @yinhm Dart 17/27
  34. 34. Static typesc l a s s Point { num x , y ; P o i n t (num t h i s . x , num t h i s . y ) ; P o i n t s c a l e (num f a c t o r ) => new P o i n t ( x * f a c t o r , y * num d i s t a n c e ( ) => Math . s q r t ( x * x + y * y ) ;}v o i d main ( ) { P o i n t a = new P o i n t ( 2 , 3 ) . s c a l e ( 1 0 ) ; print (a . distance ());} @yinhm Dart 18/27
  35. 35. 如何使用? @yinhm Dart 19/27
  36. 36. 推荐:编译成 JavaScript 方式 sdk/bin/frogc test.dart @yinhm Dart 20/27
  37. 37. Dashboardhttp://try.dartlang.org/ @yinhm Dart 21/27
  38. 38. Dart VMsdk/bin/dart test.dart @yinhm Dart 22/27
  39. 39. 浏览器运行,可回退至 JSMIME type: application/dart http://www.dartlang.org/dartium/index.html @yinhm Dart 23/27
  40. 40. 自带库• Dart Core 常见数据结构接口 • Iterable, Collection:, List, Set, Queue @yinhm Dart 24/27
  41. 41. 自带库• Dart Core 常见数据结构接口 • Iterable, Collection:, List, Set, Queue • Map: HashMap, LinkedHashMap @yinhm Dart 24/27
  42. 42. 自带库• Dart Core 常见数据结构接口 • Iterable, Collection:, List, Set, Queue • Map: HashMap, LinkedHashMap • Comparable: Date, Duration, String @yinhm Dart 24/27
  43. 43. 自带库• Dart Core 常见数据结构接口 • Iterable, Collection:, List, Set, Queue • Map: HashMap, LinkedHashMap • Comparable: Date, Duration, String • Hashable: num, String @yinhm Dart 24/27
  44. 44. 自带库• Dart Core 常见数据结构接口 • Iterable, Collection:, List, Set, Queue • Map: HashMap, LinkedHashMap • Comparable: Date, Duration, String • Hashable: num, String • Pattern: String, RegExp @yinhm Dart 24/27
  45. 45. 自带库• Dart Core 常见数据结构接口 • Iterable, Collection:, List, Set, Queue • Map: HashMap, LinkedHashMap • Comparable: Date, Duration, String • Hashable: num, String • Pattern: String, RegExp• core 实现:Array, Collections, EventLoop... @yinhm Dart 24/27
  46. 46. 自带库• Dart Core 常见数据结构接口 • Iterable, Collection:, List, Set, Queue • Map: HashMap, LinkedHashMap • Comparable: Date, Duration, String • Hashable: num, String • Pattern: String, RegExp• core 实现:Array, Collections, EventLoop...• dom, html @yinhm Dart 24/27
  47. 47. 自带库• Dart Core 常见数据结构接口 • Iterable, Collection:, List, Set, Queue • Map: HashMap, LinkedHashMap • Comparable: Date, Duration, String • Hashable: num, String • Pattern: String, RegExp• core 实现:Array, Collections, EventLoop...• dom, html• io, json @yinhm Dart 24/27
  48. 48. Questions? @yinhm Dart 25/27
  49. 49. Links• Dart 官网: http://www.dartlang.org/• Intro to Dart• Dart: a new programming language for structured web• A Walk on the Dart Side• Dart Technical Overview @yinhm Dart 26/27
  50. 50. About Created in L TEX using the beamer class, TeX Live and Emacs. A Published under the Creative Commons Attribution 3.0 License http://creativecommons.org/licenses/by/3.0/ by @yinhm http://yinhm.appspot.com Document version February 25, 2012 @yinhm Dart 27/27

×