lars bak gilad bracha
play

Lars Bak & Gilad Bracha Monday, October 10, 2011 DART: A - PowerPoint PPT Presentation

Lars Bak & Gilad Bracha Monday, October 10, 2011 DART: A STRUCTURED WEB PROGRAMMING LANGUAGE New programming language New programming tools New open source project WARNING: THIS IS ONLY A TECHNOLOGY PREVIEW Monday, October


  1. Lars Bak & Gilad Bracha Monday, October 10, 2011

  2. DART: A STRUCTURED WEB PROGRAMMING LANGUAGE • New programming language • New programming tools • New open source project WARNING: THIS IS ONLY A TECHNOLOGY PREVIEW Monday, October 10, 2011

  3. SPEAKER INTRODUCTION Lars Bak Gilad Bracha Text Beta Dart Self JLS Strongtalk OOVM Newspeak JVMs 25 years 25 years V8 Monday, October 10, 2011

  4. DART AGENDA • The motivation • The language • Code samples • Demos • The open source project Monday, October 10, 2011

  5. CURRENT WEB: THE GOOD PARTS • Developing small applications is easy • Platform independence • No installation of applications • Supports incremental development • ... and it is everywhere Monday, October 10, 2011

  6. CURRENT WEB: THE BAD PARTS • Developing large scale applications is hard • Hard to fi nd the program structure • Lack of static types • No support for libraries • Tools support is weak • Startup performance is bad Monday, October 10, 2011

  7. INNOVATION IS ESSENTIAL • We believe Dart fi lls a vacuum • The competition is NOT JavaScript • ... but fragmented mobile platforms Monday, October 10, 2011

  8. HISTORY BEHIND DART I’m Kasper • After several years working on V8 for Chrome • Last year, Kasper Lund & I experimented with Spot • a new simple language for the web • based on the experiences from JavaScript • Spot was the prelude for the Dart project Monday, October 10, 2011

  9. SO WHAT IS DART? • A simple and unsurprising OO programming language • Class-based single inheritance with interfaces • Optional static types • Real lexical scoping • Single-threaded • Familiar syntax Monday, October 10, 2011

  10. A DIFFERENT TYPE-CHECKER • A conventional type-checker is a lobotomized theorem prover • Tries to prove program obeys type system • If it can't construct a proof - program is considered invalid “Guilty until proven innocent” • In Dart, you are innocent until proven guilty Monday, October 10, 2011

  11. DART TYPES AT RUNTIME • During development one can choose to validate types • T x = o; assert(o === null || o is T); • By default, type annotations have no e ff ect and no cost • Code runs free Monday, October 10, 2011

  12. OPTIONAL TYPES • Static checker provides warnings; tuned to be unobtrusive • Type annotations have no e ff ect except ... • During development, you can check dynamic types against declarations Monday, October 10, 2011

  13. ISOLATES • Inspired by Erlang, Dart has isolates • Lightweight units of execution • Each isolate is conceptually a process • Nothing is shared • All communication takes place via message passing • Isolates support concurrent execution Monday, October 10, 2011

  14. DART IS NOT DONE • Re fl ection support? • Rest arguments and enums? • Pattern matching for easy message decoding like in Erlang? • What about Chrome? • ... please give feedback by joining the discussions Monday, October 10, 2011

  15. DART EXECUTION Dart Source Tools DartC Text JavaScript Snapshot Dart VM Engine Monday, October 10, 2011

  16. DART PERFORMANCE Relative performance compared to JavaScript on V8 Benchmark VM DartC Mandelbrot: 18.2% 88.7% DeltaBlue: 56.6% 52.2% Richards: 46.0% 70.9% NBody: 35.8% 63.6% BinaryTrees: 77.3% 104.3% Fannkuch: 53.8% 22.3% Meteor: 50.3% 42.1% Details: - V8 revision 3.5.5. - DartC used with the -optimize flag Monday, October 10, 2011

  17. SNAPSHOTTING IN THE DART VM • Process of serializing the heap after loading the application • Loading 54173 lines of Dart code takes 640 ms • Loading same application from a snapshot takes 60 ms • Startup > 10x faster Monday, October 10, 2011

  18. WEB APPLICATION IN DART • Newsreader completely written in Dart • App code: 3210 LOC • UI library code: 13200 LOC • Animation yields 30 fps • Code is part of the open source project Monday, October 10, 2011

  19. DART EDITOR • Editor for constructing and browsing Dart applications • Lightweight editor based on Eclipse components • Code is part of the open source project Monday, October 10, 2011

  20. DART OPEN SOURCE PROJECT • The Dart web site: http://dartlang.org • Dart language speci fi cation • Dart language tutorial • The Dart project: http://dart.googlecode.com • Libraries and code samples • Dart virtual machine • Dart to JavaScript compiler Monday, October 10, 2011

  21. DART IS A TECHNOLOGY PREVIEW • Dart: a programming language for the web • Two execution modes, Dart VM or JS Engine • Compatible with the current web • Please try it out and participate Monday, October 10, 2011

  22. Q & A Monday, October 10, 2011

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend