Online Mind Mapping and Brainstorming

Create your own awesome maps

Online Mind Mapping and Brainstorming

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account? Log In

Why Nick ♥ Dart #dartlang by Mind Map: Why Nick ♥ Dart
0.0 stars - reviews range from 0 to 5

Why Nick ♥ Dart #dartlang

Batteries Included Platform

Enhancing productivity

Fresher approach learning from all the tools used to help scale js

Dart Editor

Based off eclipse

There is also an IntelliJ/WebStorm Plugin, Created by IntelliJ, Created in 2011, many contributors, 10+ from JetBrains, at least a few from google, probably more, Steady updates every month since Aug 2013


Testing came with launch, wasn't added later


assertion, inspired from hamcrest

Package Manager - PUB

Because you play darts... in a pub

Is the Maven/NPM/Bower built in,

uses pubspec.yaml file instead of pom.xml package.json etc, yaml = yet another markup language, AngularDart Pubspec Example

over 1k published libraries, over 800 updated & published in past year, over 500 updated & published in past 3 months


Client, Dartium, DartVM built into Chrome, Supports fast change and refresh development cycle

Server, A lot lot lot like nodejs, also can just run dart scripts

JS Compiler

Core part of dart, .

Was not originally written in dart... now it is

tree shaking

Can call it manually with many different options

has source mapping so it can map back to the dart code for debugging in other browsers or chrome proper

But FIRST... Background

"Dart is a new platform for scalable web app engineering"

What it looks like, .

Open Source since 2011

Ultimate Goal

Enable better apps for the modern web

Built with 3 Perspectives in Mind

Performance, Overcome performance problems that all EcmaScript VMs have, Devs wrote Chrome's V8 (Kasper Lund & Lars Bak) are writing Dart, V8 is over half a million lines of code, Most performance is guess optimization, Dart is being built with performance as a feature

Developer Usability, Stay dynamic - easy to get started, no compile nature of Javascript, Add structure, optional types, can still have: var i = 24;, generics, implied interfaces, for each..., Easily recognizable syntax, Not attempting to force number of spaces per tab

Ability to be tooled, Tooling, Supports large-scale projects, Enables code-comprehension features, refactoring, finding usages, debugging, etc, BUT does not require tooling, You can still use vim, or sublime, or something else even less effective =)

How it relates to Javascript

Dart compiles to js for production builds

Assembly language of the web, one of the widest spread technologies across devices and platforms

It's an 'and' world, not an 'or' world

There is a js Interop library to talk to js libs, not pretty, but works

Google Suggested waiting for version 1.0

no more waits!!

Version 1.0 - Nov 2013

Clean Code

Read Clean Code

seriously... don't be that guy, it's addictive

Javascript can often be not so clean code

wrapper safety


Any language can be written unclean though...

Dart has clean code as a feature

They chose recognizable syntax and clean code syntax at times so that it would be easier to work with and lower the barrier to entry

Idiomatic Dart Article

Named Constructors & Automatic Field Intialization




Single Line

Anonymous Still

Getters & Setters

just in time decisions var right = rectangle.right; left.rectangle = 3;

Optional Args and Defaults

all built in


less hideous

Operator Overload

yahhh bringing back the old

Cascading operator

no more awkwardly building it into complex apis

more and more

go look at dart code, it's pretty awesome

Differentiating Features



Continuous Integration of Performance Metrics

Dart can be faster because at compile time dart can know what is intended vs javascript guess optimizations

Dart2JS has many times been faster than the equivalent Javascript code

true is the only truthy value

Yah Truth

also NO undefined, ONLY null

also no type coercion so we can use == again

Optional Static Types

production mode vs checked mode

compiler warnings in checked mode but still will run to the best of it's ability ignoring types, because

Implicit Interfaces

No more "just in case interfaces", Default Implementations Too

Also has Abstract Classes

Also has Mixins

No primitives

Function Interface

We want functions to be first class ... then let them act like it =)

Tree Shaking

& minifying

Futures & Streams

Futures == promises


Concurrency via Isolates

Separate Memory Heaps Uses Messages, web workers in js

Lexical Scoping & Closures

And has LEXICAL 'this' no more _bindAll(this)

Useful Error Messages

Many bug reports simply to have error messages say what the stack overflow answer says

As opposed to seeing this all day long


Memory snapshot of app startup

or script

or isolate

Get Started

What's Next?


Go To

Well organized site, lots of useful info

Find libs at

Core APIs at

or just auto complete it...

Try Angular Dart

simple web dart runner

this launched day 1 of dart

has had some updates but hasn't gotten a ton of love

Next Projects?

Definitely Personal

Siris of the Future?

Garage Projects?

Anything else you can think of?