SlideShare uma empresa Scribd logo
1 de 41
Tópicos em Tecnologia da Computação
Lucas Leal
Agenda
• What is Dart?
• Why did Google create Dart?
• Does the web really need another language?
• What is NEW about Dart?
• Why does Dart look so familiar?
• How can I play with Dart? Is there a real
editor?
Agenda
• What is in the platform? **
• Should I use Dart for my application today?
• Who is using Dart in production?
• Learn more…
What is Dart?
• Open-source web programming language
developed by Google.
• First appearing in GOTO conference in Aarhus,
Denmark, October 10-12, 2011.
• Class-based, single-inheritance, object
oriented language with C-style syntax.
• It supports interfaces, abstract classes, reified
generics, and optional typing.
What is Dart?
• “Batteries included.”
– Language and libraries
– Tools
– VM
– Compiler to JavaScript
Why did Google create Dart?
• “We want you to be able to create great web
apps. Great web apps improve the web, and
when the web does better, everyone wins.”
(Walrath, K; Ladd, S)
Why did Google create Dart?
• “Dart helps developers from all platforms
build complex, high performance client apps,
for the future web,” (Ladd, S)
– All platforms: iOS, Android, Java, .NET, C#, C++…
– More features, functionalities, integrated
– Zero latency, fast computational execution
Why did Google create Dart?
• In another words…
• “Runs web applications at least 2 times faster
as it’s possible with JS in V8”
• JavaScript makes the work hard when the
application
Does the web really need another
language?
• Yes, it does!
• Pros:
– Developing small applications is easy
– Platform independence
– Non installation of applications
– Supports incremental development
– It is EVERYWHERE…
Does the web really need another
language?
• Cons:
– Developing large-scale applications is hard
– No support for libraries
– Startup performance is bad
• That said, Dart comes to fill those gaps
– No competition with JavaScript (kind of…)
What is NEW about Dart?
• Dart uses a different type checker - “Innocent
until proven guilty”
• Nice and compact way to implement a
function that evaluates and return a single
expression
• Snapshots
• Generics, but easy!
• HTML library, reusability…
Why does Dart look so familiar?
• They want more than 5 users…
• Designed for mass adoption
• Scripting language users (JavaScripters), and
structured language users (Java developers)
• Anyone familiar with Java, or a C language
should be able to quickly understand Dart
Why does Dart look so familiar?
class Point {
Point(this.x, this.y);
distanceTo(other) {
var dx = x - other.x;
var dy = y - other.y;
return Math.sqrt(dx * dx + dy * dy);
}
var x, y;
}
main() {
var p = new Point(2, 3);
var q = new Point(3, 4);
print(‘distance from p to q = ${p.distanceTo(q)}’);
}
How can I play with Dart? Is there a
real editor?
• DartPad
– Executes Dart code interactive in any modern
browser
– dartpad.dartlang.org
– Provides some code examples
How can I play with Dart? Is there a
real editor?
How can I play with Dart? Is there a
real editor?
How can I play with Dart? Is there a
real editor?
How can I play with Dart? Is there a
real editor?
How can I play with Dart? Is there a
real editor?
• Dart Editor
– Available for Windows, Mac, and Linux
– It’s made simple: just select a file and click ‘Run’
– Dart Editor compile your Dart code to JavaScript
– Features and tools that helps editing Dart code
How can I play with Dart? Is there a
real editor?
• ]
How can I play with Dart? Is there a
real editor?
• Dartium
How can I play with Dart? Is there a
real editor?
• Dartium
How can I play with Dart? Is there a
real editor?
• It’s integrated with Chromium (also
nicknamed Dartium)
• Dart SDK
What is in the platform?
• Language specifications
• Libraries
• Compiler to JavaScript
• VM
• Integration with Chromium
• Dart Editor
Should I use Dart for my application
today?
• The definitely is YES!
• There are a lot of companies using Dart in
production
• The benefits are relevant as showed
Should I use Dart for my application
today?
Should I use Dart for my application
today?
Should I use Dart for my application
today?
Should I use Dart for my application
today?
Benchmarking
• DeltaBlue is a one-way constraint solver, originally
written in Smalltalk by John Maloney and Mario
Wolczko. The main focus in DeltaBlue is on
polymorphism and object-oriented programming.
• FluidMotion is a 2D Navier-Stokes equations solver,
originally written in JavaScript by Oliver Hunt. The main
focus is on accessing numeric arrays, as well as doing
floating-point arithmetic.
• Havlak algorithm is an extension of Tarjan’s interval-
finding algorithm that deals with irreducible graphs,
and constructs a loop-nesting forest for an arbitrary
flow graph
Benchmarking
• Richards is an OS kernel simulation benchmark, originally written in
BCPL by Martin Richards. The main focus in Richards is on property
access and calling functions and methodspolymorphism and object-
oriented programming.
• Tracer is a ray tracer benchmark, originally written in JavaScript by
Adam Burmister. Both Adam’s and the Octane version in JavaScript
use the class emulation pattern from the prototype.js library.
Because Dart has a native class system, it’s unfair to do a direct
performance comparison with the Octane version. We therefore
compare Dart performance with an improved JavaScript version
called Tracer. The improved version uses only constructors and
prototypes without any abstraction layers in between; it runs 50%
faster than the original Raytrace JavaScript benchmark in Octane.
Who is using Dart in production?
• A bunch of companies listed on Dart’s website
https://www.dartlang.org/community/who-
uses-dart.html
• Google Fiber
Learn more…
• The main place to go for Dart information is
dartlang.org
• Official news: Dart News & Updates
• Dartosphere (single feed of many Dart blogs)
• Good interviews and videos about Dart:
– InfoWorld interview with Lars Bak (15 Nov 2011)
– Dartisans hangout with Seth Ladd, Vijay Menon, and
Anton Muhin (15 Feb 2012)
– Transcription of Gilad Bracha’s quick tour of Dart (2
Nov 2011)
References
• Dart’s website: https://www.dartlang.org.
• Walrath, K; Ladd, S. What is Dart? O’Reilly, March 2012,
CA, EUA.
• Walrath, K. What is Dart? Available on:
http://radar.oreilly.com/2012/03/what-is-dart.html.
O’Reilly, March 21, 2012. Accessed on May 27, 2015.
• InfoWorld interview: Why Google Dart beats JavaScript,
by Paul Krill. Available on:
http://www.javaworld.com/article/2078464/mobile-
java/infoworld-interview--why-google-dart-beats-
javascript.html.
References
• IODev Blog. Dart… Dart… Dart… What is Dart?. June
11, 2012. Available on: http://iodev-
blog.blogspot.com.br/2012/06/dartdartdartwhat-is-
dart.html.
• Seth Ladd’s Blog. Available on:
http://blog.sethladd.com.

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Dart and Flutter Basics.pptx
Dart and Flutter Basics.pptxDart and Flutter Basics.pptx
Dart and Flutter Basics.pptx
 
Flutter
FlutterFlutter
Flutter
 
What and Why Flutter? What is a Widget in Flutter?
What and Why Flutter? What is a Widget in Flutter?What and Why Flutter? What is a Widget in Flutter?
What and Why Flutter? What is a Widget in Flutter?
 
Flutter Intro
Flutter IntroFlutter Intro
Flutter Intro
 
Introduction to flutter
Introduction to flutter Introduction to flutter
Introduction to flutter
 
Building beautiful apps using google flutter
Building beautiful apps using google flutterBuilding beautiful apps using google flutter
Building beautiful apps using google flutter
 
A flight with Flutter
A flight with FlutterA flight with Flutter
A flight with Flutter
 
Flutter workshop
Flutter workshopFlutter workshop
Flutter workshop
 
Pune Flutter Presents - Flutter 101
Pune Flutter Presents - Flutter 101Pune Flutter Presents - Flutter 101
Pune Flutter Presents - Flutter 101
 
flutter.school #HelloWorld
flutter.school #HelloWorldflutter.school #HelloWorld
flutter.school #HelloWorld
 
Flutter
FlutterFlutter
Flutter
 
Flutter talkshow
Flutter talkshowFlutter talkshow
Flutter talkshow
 
Hello Flutter
Hello FlutterHello Flutter
Hello Flutter
 
Flutter beyond hello world
Flutter beyond hello worldFlutter beyond hello world
Flutter beyond hello world
 
Flutter workshop
Flutter workshopFlutter workshop
Flutter workshop
 
Dart PPT.pptx
Dart PPT.pptxDart PPT.pptx
Dart PPT.pptx
 
Flutter
FlutterFlutter
Flutter
 
What is Flutter
What is FlutterWhat is Flutter
What is Flutter
 
Flutter
FlutterFlutter
Flutter
 
Developing Cross platform apps in flutter (Android, iOS, Web)
Developing Cross platform apps in flutter (Android, iOS, Web)Developing Cross platform apps in flutter (Android, iOS, Web)
Developing Cross platform apps in flutter (Android, iOS, Web)
 

Semelhante a Dart presentation

1.-Introduction-to-Dart.pdf
1.-Introduction-to-Dart.pdf1.-Introduction-to-Dart.pdf
1.-Introduction-to-Dart.pdf
SamySiddhan
 
Dart Jump Start
Dart Jump StartDart Jump Start
Dart Jump Start
Haim Michael
 
Frontend Frameworks and Drupal
Frontend Frameworks and DrupalFrontend Frameworks and Drupal
Frontend Frameworks and Drupal
Nicolas Borda
 
OWF12/PAUG Conf Days Dart a new html5 technology, nicolas geoffray, softwar...
OWF12/PAUG Conf Days Dart   a new html5 technology, nicolas geoffray, softwar...OWF12/PAUG Conf Days Dart   a new html5 technology, nicolas geoffray, softwar...
OWF12/PAUG Conf Days Dart a new html5 technology, nicolas geoffray, softwar...
Paris Open Source Summit
 
JavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefoxJavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefox
Gennady Feldman
 
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
jward5519
 

Semelhante a Dart presentation (20)

Dart Programming.pptx
Dart Programming.pptxDart Programming.pptx
Dart Programming.pptx
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
 
1.-Introduction-to-Dart.pdf
1.-Introduction-to-Dart.pdf1.-Introduction-to-Dart.pdf
1.-Introduction-to-Dart.pdf
 
Computer programminglanguages
Computer programminglanguagesComputer programminglanguages
Computer programminglanguages
 
Dart Jump Start
Dart Jump StartDart Jump Start
Dart Jump Start
 
330f15_AnsariJonesWilder_Dart.pptx
330f15_AnsariJonesWilder_Dart.pptx330f15_AnsariJonesWilder_Dart.pptx
330f15_AnsariJonesWilder_Dart.pptx
 
Game development using Flutter
Game development using FlutterGame development using Flutter
Game development using Flutter
 
Dart
DartDart
Dart
 
Why Flutter.pdf
Why Flutter.pdfWhy Flutter.pdf
Why Flutter.pdf
 
Frontend Frameworks and Drupal
Frontend Frameworks and DrupalFrontend Frameworks and Drupal
Frontend Frameworks and Drupal
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
 
TypeScript - Javascript done right
TypeScript - Javascript done rightTypeScript - Javascript done right
TypeScript - Javascript done right
 
OWF12/PAUG Conf Days Dart a new html5 technology, nicolas geoffray, softwar...
OWF12/PAUG Conf Days Dart   a new html5 technology, nicolas geoffray, softwar...OWF12/PAUG Conf Days Dart   a new html5 technology, nicolas geoffray, softwar...
OWF12/PAUG Conf Days Dart a new html5 technology, nicolas geoffray, softwar...
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
ModernWeb 2019: Why we replace TypeScript with Dart
ModernWeb 2019: Why we replace TypeScript with DartModernWeb 2019: Why we replace TypeScript with Dart
ModernWeb 2019: Why we replace TypeScript with Dart
 
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty MarketAPIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutter
 
JavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefoxJavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefox
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)
 
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 

Dart presentation

  • 1. Tópicos em Tecnologia da Computação Lucas Leal
  • 2. Agenda • What is Dart? • Why did Google create Dart? • Does the web really need another language? • What is NEW about Dart? • Why does Dart look so familiar? • How can I play with Dart? Is there a real editor?
  • 3. Agenda • What is in the platform? ** • Should I use Dart for my application today? • Who is using Dart in production? • Learn more…
  • 4.
  • 5. What is Dart? • Open-source web programming language developed by Google. • First appearing in GOTO conference in Aarhus, Denmark, October 10-12, 2011. • Class-based, single-inheritance, object oriented language with C-style syntax. • It supports interfaces, abstract classes, reified generics, and optional typing.
  • 6. What is Dart? • “Batteries included.” – Language and libraries – Tools – VM – Compiler to JavaScript
  • 7. Why did Google create Dart? • “We want you to be able to create great web apps. Great web apps improve the web, and when the web does better, everyone wins.” (Walrath, K; Ladd, S)
  • 8. Why did Google create Dart? • “Dart helps developers from all platforms build complex, high performance client apps, for the future web,” (Ladd, S) – All platforms: iOS, Android, Java, .NET, C#, C++… – More features, functionalities, integrated – Zero latency, fast computational execution
  • 9. Why did Google create Dart? • In another words… • “Runs web applications at least 2 times faster as it’s possible with JS in V8” • JavaScript makes the work hard when the application
  • 10. Does the web really need another language? • Yes, it does! • Pros: – Developing small applications is easy – Platform independence – Non installation of applications – Supports incremental development – It is EVERYWHERE…
  • 11. Does the web really need another language? • Cons: – Developing large-scale applications is hard – No support for libraries – Startup performance is bad • That said, Dart comes to fill those gaps – No competition with JavaScript (kind of…)
  • 12. What is NEW about Dart? • Dart uses a different type checker - “Innocent until proven guilty” • Nice and compact way to implement a function that evaluates and return a single expression • Snapshots • Generics, but easy! • HTML library, reusability…
  • 13. Why does Dart look so familiar? • They want more than 5 users… • Designed for mass adoption • Scripting language users (JavaScripters), and structured language users (Java developers) • Anyone familiar with Java, or a C language should be able to quickly understand Dart
  • 14. Why does Dart look so familiar? class Point { Point(this.x, this.y); distanceTo(other) { var dx = x - other.x; var dy = y - other.y; return Math.sqrt(dx * dx + dy * dy); } var x, y; } main() { var p = new Point(2, 3); var q = new Point(3, 4); print(‘distance from p to q = ${p.distanceTo(q)}’); }
  • 15. How can I play with Dart? Is there a real editor? • DartPad – Executes Dart code interactive in any modern browser – dartpad.dartlang.org – Provides some code examples
  • 16. How can I play with Dart? Is there a real editor?
  • 17. How can I play with Dart? Is there a real editor?
  • 18. How can I play with Dart? Is there a real editor?
  • 19. How can I play with Dart? Is there a real editor?
  • 20. How can I play with Dart? Is there a real editor? • Dart Editor – Available for Windows, Mac, and Linux – It’s made simple: just select a file and click ‘Run’ – Dart Editor compile your Dart code to JavaScript – Features and tools that helps editing Dart code
  • 21. How can I play with Dart? Is there a real editor? • ]
  • 22. How can I play with Dart? Is there a real editor? • Dartium
  • 23. How can I play with Dart? Is there a real editor? • Dartium
  • 24. How can I play with Dart? Is there a real editor? • It’s integrated with Chromium (also nicknamed Dartium) • Dart SDK
  • 25. What is in the platform? • Language specifications • Libraries • Compiler to JavaScript • VM • Integration with Chromium • Dart Editor
  • 26. Should I use Dart for my application today? • The definitely is YES! • There are a lot of companies using Dart in production • The benefits are relevant as showed
  • 27. Should I use Dart for my application today?
  • 28. Should I use Dart for my application today?
  • 29. Should I use Dart for my application today?
  • 30. Should I use Dart for my application today?
  • 31. Benchmarking • DeltaBlue is a one-way constraint solver, originally written in Smalltalk by John Maloney and Mario Wolczko. The main focus in DeltaBlue is on polymorphism and object-oriented programming. • FluidMotion is a 2D Navier-Stokes equations solver, originally written in JavaScript by Oliver Hunt. The main focus is on accessing numeric arrays, as well as doing floating-point arithmetic. • Havlak algorithm is an extension of Tarjan’s interval- finding algorithm that deals with irreducible graphs, and constructs a loop-nesting forest for an arbitrary flow graph
  • 32. Benchmarking • Richards is an OS kernel simulation benchmark, originally written in BCPL by Martin Richards. The main focus in Richards is on property access and calling functions and methodspolymorphism and object- oriented programming. • Tracer is a ray tracer benchmark, originally written in JavaScript by Adam Burmister. Both Adam’s and the Octane version in JavaScript use the class emulation pattern from the prototype.js library. Because Dart has a native class system, it’s unfair to do a direct performance comparison with the Octane version. We therefore compare Dart performance with an improved JavaScript version called Tracer. The improved version uses only constructors and prototypes without any abstraction layers in between; it runs 50% faster than the original Raytrace JavaScript benchmark in Octane.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38. Who is using Dart in production? • A bunch of companies listed on Dart’s website https://www.dartlang.org/community/who- uses-dart.html • Google Fiber
  • 39. Learn more… • The main place to go for Dart information is dartlang.org • Official news: Dart News & Updates • Dartosphere (single feed of many Dart blogs) • Good interviews and videos about Dart: – InfoWorld interview with Lars Bak (15 Nov 2011) – Dartisans hangout with Seth Ladd, Vijay Menon, and Anton Muhin (15 Feb 2012) – Transcription of Gilad Bracha’s quick tour of Dart (2 Nov 2011)
  • 40. References • Dart’s website: https://www.dartlang.org. • Walrath, K; Ladd, S. What is Dart? O’Reilly, March 2012, CA, EUA. • Walrath, K. What is Dart? Available on: http://radar.oreilly.com/2012/03/what-is-dart.html. O’Reilly, March 21, 2012. Accessed on May 27, 2015. • InfoWorld interview: Why Google Dart beats JavaScript, by Paul Krill. Available on: http://www.javaworld.com/article/2078464/mobile- java/infoworld-interview--why-google-dart-beats- javascript.html.
  • 41. References • IODev Blog. Dart… Dart… Dart… What is Dart?. June 11, 2012. Available on: http://iodev- blog.blogspot.com.br/2012/06/dartdartdartwhat-is- dart.html. • Seth Ladd’s Blog. Available on: http://blog.sethladd.com.

Notas do Editor

  1. This is the book I used to prepare this presentation. It’s written by Kethy Walrath and Set Ladd (It’s a free copy – at least I think) Kathy is a technical writer who's worked on docs for Chrome and other developer APIs at Google since 2006. Before that, she worked at Sun, NeXT, and HP. Back when the web was young, she wrote the first doc to help developers write Java applets. She also co-created The Java Tutorial and maintained it for a very long time. Seth is a web engineer and is currently a Chrome Developer Advocate, helping developers of all sizes launch awesome modern web apps. He produced Aloha on Rails, the Hawaii Ruby on Rails and Web Development Conference, and New Game, the conference for HTML5 game developers. Seth has also authored Dart Up and Running and Expert Spring MVC.
  2. GOTO conferences are conferences that take place all around the world and to discuss about software development Class based, different than JavaScript that is prototype based Reified generics – types can be defined later Optional type doesn’t relay on language to get tasks done Operator overriding -> class + class – Not possible with JavaScript
  3. It’s not only a language, but it also has standard libraries that supports the language Tools: editor that gives auto completion VM that helps startup web apps more rapidly If the browser doesn’t the Dart VM, your code can be compiled to JavaScript easily and still runs faster than usual JavaScript Engines
  4. - All developers platforms should be developing for the web Complex means: more features, more functionalities, more HTML benefícios, all integrated to your app, so your app can use better all features of file systems, webGL, CSS3 More apps developed for the modern browsers and mobile browsers
  5. Architecting web apps is quite challenging, specially when they’re complex and has to be large-scalable, so Dart comes to make it easier to bring those kind of web apps to reality Make the web faster, “Our goal is to make applications run at least 2 times faster, as it’s possible with JS” as John McCartin said, he’s a Google Engineer that works on VM
  6. Platform independence: it can run in any web browser installed in any OS without difficulties
  7. Conventional type checker is a lobotomized theorem proven: Trying proving a program obeying type system If it can’t construct a proof – program is considered invalid “Guilty until proven innocent” Snapshots: Currently, web browsers parse web app’ source code before running it. Dart code can be snapshotted to speedup startup around 10 times faster Native Dart library to access and manipulate HTML DOM – interface for updating the content, structure and style of a webpage - , so elements, attributes and nodes feel natural to work with
  8. Previously called “Dartboard”, March, 2012. Embedded in the Dart website, so you can try it just going
  9. Simple Hello World iteration
  10. Hello World Example using HTML library
  11. Hello World Example HTML code
  12. Hello World Example CSS code
  13. Runs your Dart code via the Dart Virtual Machine or it can compile it to JavaScript and launch it in your web browser if it doesn’t have the Dart VM embedded. It’s the way some companies are doing today: when ready for production, just compile it to JS and make the code available to the entire modern web. Features such as auto-completion, Dart editor highlights Dart syntax, quickly shows APIs and Types declarations, it also outlines program’s classes, fields, and methods
  14. A game example written in Dart using HTML library that runs in Dartium
  15. Language specifications: Dart language is familiar as we could see, there’s just a few new features such as optional typing and isolates Libraries dedicated to make the process faster Compiler to JS: Reutilization of JS codes, Dart2JS Compiler VM: Runs command-line for server-side applications and can also be embedded into browsers for client-side applications Integration with Chromium: It has VM embedded, allowing applications to run without first being compiled to JS Dart Editor: Lightweight editor, syntax highlighting and code completion, launch the application in the VM or the web app in Dartium, and also it can compile your web app to JavaScript to be use in another web browser
  16. You’ll be able to at least runs as fast as JS, but it’s expected to run faster
  17. You’ll be able to at least runs as fast as JS, but it’s expected to run faster
  18. You’ll be able to at least runs as fast as JS, but it’s expected to run faster
  19. You’ll be able to at least runs as fast as JS, but it’s expected to run faster
  20. You’ll be able to at least runs as fast as JS, but it’s expected to run faster