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

More Related Content

What's hot

Flutter Intro
Flutter IntroFlutter Intro
Flutter Intro
Vladimir Parfenov
 
Flutter presentation.pptx
Flutter presentation.pptxFlutter presentation.pptx
Flutter presentation.pptx
FalgunSorathiya
 
Getting started with flutter
Getting started with flutterGetting started with flutter
Getting started with flutter
rihannakedy
 
Flutter talkshow
Flutter talkshowFlutter talkshow
Flutter talkshow
Nhan Cao
 
The magic of flutter
The magic of flutterThe magic of flutter
The magic of flutter
Shady Selim
 
Introduction to flutter
Introduction to flutter Introduction to flutter
Introduction to flutter
Wan Muzaffar Wan Hashim
 
Flutter introduction
Flutter introductionFlutter introduction
Flutter introduction
Võ Duy Tuấn
 
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
RobertLe30
 
Flutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaFlutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | Edureka
Edureka!
 
Pune Flutter Presents - Flutter 101
Pune Flutter Presents - Flutter 101Pune Flutter Presents - Flutter 101
Pune Flutter Presents - Flutter 101
Arif Amirani
 
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)
Priyanka Tyagi
 
Introduction to Flutter
Introduction to FlutterIntroduction to Flutter
Introduction to Flutter
Apoorv Pandey
 
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?
MohammadHussain595488
 
flutter.school #HelloWorld
flutter.school #HelloWorldflutter.school #HelloWorld
flutter.school #HelloWorld
Frederik Schweiger
 
Introduction to the Dart language
Introduction to the Dart languageIntroduction to the Dart language
Introduction to the Dart language
Jana Moudrá
 
Flutter session 01
Flutter session 01Flutter session 01
Flutter session 01
DSC IEM
 
Google flutter and why does it matter
Google flutter and why does it matterGoogle flutter and why does it matter
Google flutter and why does it matter
Ahmed Abu Eldahab
 
Typescript ppt
Typescript pptTypescript ppt
Typescript ppt
akhilsreyas
 
Flutter
FlutterFlutter
Flutter introduction
Flutter introductionFlutter introduction
Flutter introduction
SheilaJimenezMorejon
 

What's hot (20)

Flutter Intro
Flutter IntroFlutter Intro
Flutter Intro
 
Flutter presentation.pptx
Flutter presentation.pptxFlutter presentation.pptx
Flutter presentation.pptx
 
Getting started with flutter
Getting started with flutterGetting started with flutter
Getting started with flutter
 
Flutter talkshow
Flutter talkshowFlutter talkshow
Flutter talkshow
 
The magic of flutter
The magic of flutterThe magic of flutter
The magic of flutter
 
Introduction to flutter
Introduction to flutter Introduction to flutter
Introduction to flutter
 
Flutter introduction
Flutter introductionFlutter introduction
Flutter introduction
 
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
 
Flutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaFlutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | Edureka
 
Pune Flutter Presents - Flutter 101
Pune Flutter Presents - Flutter 101Pune Flutter Presents - Flutter 101
Pune Flutter Presents - Flutter 101
 
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)
 
Introduction to Flutter
Introduction to FlutterIntroduction to Flutter
Introduction to 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.school #HelloWorld
flutter.school #HelloWorldflutter.school #HelloWorld
flutter.school #HelloWorld
 
Introduction to the Dart language
Introduction to the Dart languageIntroduction to the Dart language
Introduction to the Dart language
 
Flutter session 01
Flutter session 01Flutter session 01
Flutter session 01
 
Google flutter and why does it matter
Google flutter and why does it matterGoogle flutter and why does it matter
Google flutter and why does it matter
 
Typescript ppt
Typescript pptTypescript ppt
Typescript ppt
 
Flutter
FlutterFlutter
Flutter
 
Flutter introduction
Flutter introductionFlutter introduction
Flutter introduction
 

Similar to Dart presentation

Dart Programming.pptx
Dart Programming.pptxDart Programming.pptx
Dart Programming.pptx
AnanthalakshmiN4
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
Awok
 
1.-Introduction-to-Dart.pdf
1.-Introduction-to-Dart.pdf1.-Introduction-to-Dart.pdf
1.-Introduction-to-Dart.pdf
SamySiddhan
 
Computer programminglanguages
Computer programminglanguagesComputer programminglanguages
Computer programminglanguages
PaulineGayVillarama
 
Dart Jump Start
Dart Jump StartDart Jump Start
Dart Jump Start
Haim Michael
 
330f15_AnsariJonesWilder_Dart.pptx
330f15_AnsariJonesWilder_Dart.pptx330f15_AnsariJonesWilder_Dart.pptx
330f15_AnsariJonesWilder_Dart.pptx
praxyvines
 
Game development using Flutter
Game development using FlutterGame development using Flutter
Game development using Flutter
Shady Selim
 
Dart
DartDart
Why Flutter.pdf
Why Flutter.pdfWhy Flutter.pdf
Why Flutter.pdf
Randal Schwartz
 
Frontend Frameworks and Drupal
Frontend Frameworks and DrupalFrontend Frameworks and Drupal
Frontend Frameworks and DrupalNicolas Borda
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
Jim McKeeth
 
TypeScript - Javascript done right
TypeScript - Javascript done rightTypeScript - Javascript done right
TypeScript - Javascript done right
Wekoslav Stefanovski
 
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
 
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
IT Arena
 
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
Jumper Chen
 
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
Scott Abel
 
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 firefoxGennady Feldman
 
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)
Oursky
 
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
 
Flutter alegria event gdsc pillai college of engineering
Flutter alegria event gdsc pillai college of engineeringFlutter alegria event gdsc pillai college of engineering
Flutter alegria event gdsc pillai college of engineering
AnandMenon54
 

Similar to 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
 
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 ...
 
Flutter alegria event gdsc pillai college of engineering
Flutter alegria event gdsc pillai college of engineeringFlutter alegria event gdsc pillai college of engineering
Flutter alegria event gdsc pillai college of engineering
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 

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.

Editor's Notes

  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