SlideShare a Scribd company logo
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…
Dart presentation
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.
Dart presentation
Dart presentation
Dart presentation
Dart presentation
Dart presentation
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.

More Related Content

PPTX
Dart programming language
PPTX
Dart and Flutter Basics.pptx
PPTX
History of Computer
PPTX
GitLab.pptx
PDF
Flutter beyond hello world
PPTX
Mechanics of solids
PDF
Dart workshop
PPTX
Flutter Intro
Dart programming language
Dart and Flutter Basics.pptx
History of Computer
GitLab.pptx
Flutter beyond hello world
Mechanics of solids
Dart workshop
Flutter Intro

What's hot (20)

PPTX
Dart ppt
PPTX
Flutter presentation.pptx
PPTX
Flutter workshop
PDF
Introduction to the Dart language
PDF
What is flutter and why should i care?
PPTX
PDF
flutter.school #HelloWorld
PDF
Introduction to flutter
PDF
The magic of flutter
PDF
Introduction to Flutter - truly crossplatform, amazingly fast
PPTX
Flutter Festival - Intro Session
PDF
Build beautiful native apps in record time with flutter
PPTX
Flutter introduction
PDF
Pune Flutter Presents - Flutter 101
PDF
1.-Introduction-to-Dart.pdf
PDF
Native mobile application development with Flutter (Dart)
PPTX
What is Flutter
PPTX
Introduction to Flutter
PPTX
Flutter
Dart ppt
Flutter presentation.pptx
Flutter workshop
Introduction to the Dart language
What is flutter and why should i care?
flutter.school #HelloWorld
Introduction to flutter
The magic of flutter
Introduction to Flutter - truly crossplatform, amazingly fast
Flutter Festival - Intro Session
Build beautiful native apps in record time with flutter
Flutter introduction
Pune Flutter Presents - Flutter 101
1.-Introduction-to-Dart.pdf
Native mobile application development with Flutter (Dart)
What is Flutter
Introduction to Flutter
Flutter
Ad

Similar to Dart presentation (20)

PPTX
Dart Programming.pptx
PDF
Mobile development with Flutter
PPTX
Computer programminglanguages
PDF
Dart Jump Start
PPTX
Dart_Programming_language_and_Flutter_Framework.pptx
PPTX
330f15_AnsariJonesWilder_Dart.pptx
PPTX
Flutter talkshow
PDF
Game development using Flutter
PPTX
PDF
Why Flutter.pdf
PDF
Frontend Frameworks and Drupal
PDF
Dart By Example 1st Edition Davy Mitchell 2024 scribd download
PDF
Embarcadero's Connected Development
PPT
TypeScript - Javascript done right
PPT
Flutter-vs-React-Native_-Which-is-Best-for-Your-Next-Project.ppt
PDF
OWF12/PAUG Conf Days Dart a new html5 technology, nicolas geoffray, softwar...
PDF
Meetup. Technologies Intro for Non-Tech People
PPTX
ModernWeb 2019: Why we replace TypeScript with Dart
PDF
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
PDF
JavaScript debugging diagnostic web tools and firefox
Dart Programming.pptx
Mobile development with Flutter
Computer programminglanguages
Dart Jump Start
Dart_Programming_language_and_Flutter_Framework.pptx
330f15_AnsariJonesWilder_Dart.pptx
Flutter talkshow
Game development using Flutter
Why Flutter.pdf
Frontend Frameworks and Drupal
Dart By Example 1st Edition Davy Mitchell 2024 scribd download
Embarcadero's Connected Development
TypeScript - Javascript done right
Flutter-vs-React-Native_-Which-is-Best-for-Your-Next-Project.ppt
OWF12/PAUG Conf Days Dart a new html5 technology, nicolas geoffray, softwar...
Meetup. Technologies Intro for Non-Tech People
ModernWeb 2019: Why we replace TypeScript with Dart
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
JavaScript debugging diagnostic web tools and firefox
Ad

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PDF
KodekX | Application Modernization Development
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Modernizing your data center with Dell and AMD
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPT
Teaching material agriculture food technology
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
Empathic Computing: Creating Shared Understanding
KodekX | Application Modernization Development
20250228 LYD VKU AI Blended-Learning.pptx
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
MYSQL Presentation for SQL database connectivity
Encapsulation_ Review paper, used for researhc scholars
Spectral efficient network and resource selection model in 5G networks
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Modernizing your data center with Dell and AMD
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Encapsulation theory and applications.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Teaching material agriculture food technology
NewMind AI Monthly Chronicles - July 2025
Building Integrated photovoltaic BIPV_UPV.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
The Rise and Fall of 3GPP – Time for a Sabbatical?

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…
  • 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.
  • 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.

Editor's Notes

  • #5: 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.
  • #6: 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
  • #7: 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
  • #9: - 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
  • #10: 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
  • #11: Platform independence: it can run in any web browser installed in any OS without difficulties
  • #13: 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
  • #16: Previously called “Dartboard”, March, 2012. Embedded in the Dart website, so you can try it just going
  • #17: Simple Hello World iteration
  • #18: Hello World Example using HTML library
  • #19: Hello World Example HTML code
  • #20: Hello World Example CSS code
  • #21: 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
  • #22: A game example written in Dart using HTML library that runs in Dartium
  • #26: 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
  • #27: You’ll be able to at least runs as fast as JS, but it’s expected to run faster
  • #28: You’ll be able to at least runs as fast as JS, but it’s expected to run faster
  • #29: You’ll be able to at least runs as fast as JS, but it’s expected to run faster
  • #30: You’ll be able to at least runs as fast as JS, but it’s expected to run faster
  • #31: You’ll be able to at least runs as fast as JS, but it’s expected to run faster