Upload
lucas-leal
View
138
Download
3
Embed Size (px)
Citation preview
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.
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?
• 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?
• 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
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.