Who is behind Dart?

Written by Thomas Schranz, CEO and Product at Blossom

When I stumble upon an interesting tool I usually find it also very exciting to learn more about the people behind it.

I find this especially insightful when it comes to fundamental building blocks like programming languages and runtimes.

Why? Because they aren’t built in a day but rather melded over the course of many many years and in a way they tend to reflect the personalities and beliefs of their creators.

When you look at Python you will find Guido van Rossum.
When you look at Scala you will find Martin Odersky.
When you look at Ruby you will find Matz and DHH.
When you look at Clojure you will find Rich Hickey & David Nolen.
When you look at Go you will find Rob Pike.

Who is behind Dart?

So let’s take a look at the people behind Dart and what they care about.

After consuming hours of conference talks, interviews, blog posts, code and books from the Dart team I can tell that they care about a ton of things from the very abstract down to little big details but if I’d had to put it in a nutshell they care about the following …

  • Developer Sanity
  • Developer Productivity
  • Developer Tool Performance
  • The Web as a Platform

To save you some googling I’ve assembled a few brief bios as well as links to videos and further reading so you can take a look at some of the many master minds behind Dart.

Gilad Bracha

In the 90s Gilad together with Urs Hölzle, Lars Bak and others created a high performance Smalltalk implementation called Strongtalk. One very unique thing about Strongtalk was that it supported gradual type annotations. A concept that would take many many years to achieve mainstream popularity and can now be found in Dart, Hack/PHP, Python 3 and TypeScript.

After their company got acquired by Sun Microsystems the rising popularity of Java unfortunately led to the Strongtalk efforts being put on halt.

The team got reassigned to improve Java. Their Smalltalk implementation evolved into Hotspot which is now the official Java Virtual Machine and Gilad co-authored the specifications for the Java language and Java Virtual Machine.

Fortunately Gilad’s fascination with gradual type annotations and language design in general did not disappear after working on Java and he joined Cadence Design Systems to create Newspeak a modern object oriented programming language inspired by Self & Smalltalk. Again featuring support for gradual type annotations. Unfortunately the funding for Newspeak dried up in 2009.

But as one door closes another one opens and Gilad joined Google and was reunited with Lars et al to work on an ambitious project to create a new language & platform for the web called Dart.

Here is Gilad’s QCon San Francisco talk on Deconstructing Functional Programming.

Lars Bak

Lars is the creator of several high performance virtual machines for popular programming languages like Smalltalk (Strongtalk), Java (HotSpot), JavaScript (v8) and Dart.

By now it is hard to imagine what the current state of JavaScript runtimes would look like if Chrome’s v8 had not entered the market. Lars focused many years on improving the performance of v8 while staying faithful to the semantic constraints of JavaScript.

Eventually he felt that it was about time to pursue bolder steps forward if the web as a platform wants to stay competitive in comparison to native alternatives like iOS and Android.

By founding the Dart project they finally had the chance to not only question but change many of the fundamental design decisions of JavaScript and to explore what a language and runtime would feel like if it was designed for the web as we know it today.

Here is a brief video from 2008 of Lars explaining v8 and how they’ve managed to create a fast JavaScript runtime.

Kasper Lund

Kasper also worked at Sun Microsystems and focused on CLDC Hotspot, a version of the Java Virtual Machine optimized for mobile phones and similar environments.

In 2002 Kasper and Lars went on to found a company called OOVM to further explore the challenges of building high performance embeddable virtual machines for object oriented languages. While at that time mobile was already a super interesting space it was still pre-iPhone (2007) and hard to grasp how important mobile and mobile optimized runtimes were going to be going forward.

Eventually they joined Google to work on a project that would shake up the browser market; the Chrome browser and its v8 JavaScript runtime. Kasper was tech lead for Crankshaft, an optimized compilation infrastructure for v8 that got released in 2010 which used type feedback to dramatically improve Chrome’s JavaScript performance.

I find his enthusiasm for developer sanity and how tooling can help very inspiring and Kasper has given quite a few talks and interviews on this topic over the years and that aspect really shows when you work with Dart on a daily basis.

Here is an interview with Kasper on platforms and developer productivity from the 2012 GOTO conference in Copenhagen.

Bob Nystrom

Bob was a game developer at Electronic Arts and is the author of Game Programming Patterns. He has a very pragmatic approach to programming languages and really cares about how software gets designed and feels in the day to day.

He is the author of Dart’s Style Guide and responsible for a lot of the sensible defaults and recommendations that shape the experience of writing and reading Dart code. Recently he also helped to formalize the process for how proposals for improving Dart are managed (similar to Python’s PEPs).

One additional artifact that Bob worked on is Dart’s package management system pub which is inspired by JavaScript’s npm and Ruby’s bundler. Another one is the fact that you can use markdown in Dart comments which makes writing and reading great inline documentation way easier.

These things form the little big details of the day to day Dart experience that you only really notice when you’ve worked in other languages that got some of these wrong or don’t have them at all. In that vein I like to think of Bob as Dart’s dungeon master. He keeps things in order.

Here is a talk by Bob on Dart and how it relates to various programming languages from StrangeLoop 2014.

Vyacheslav Egorov

Vyacheslav worked on Excelsior JET, a fully compliant third party Java Virtual Machine implementation including an AoT (ahead of time) compiler.

He later joined Google to work on Chrome’s v8 JavaScript runtime and now works on the optimization pipeline for the Dart VM.

Vyacheslav regularly gives insightful and entertaining talks on virtual machine performance. If you’re interested in how the JavaScript virtual machines in modern browsers are designed and how the Dart virtual machine can be even faster than that make sure to check out his talks.

Here he talks about v8 and the Dart VM from Dart Flight School 2014 in Oslo.

John McCutchan

John is the creator of inotify. He contributed to the Gnome project as well as to the Bullet physics engine. Before joining the Dart team he worked on PlayStation game performance optimization at Sony Computer Entertainment.

Recently John added SIMD support to Dart (and EcmaScript) and currently works on Observatory which is an advanced profiler for Dart applications.

Peter von der Ahé

Peter is a first class compiler engineer and all-round tooling enthusiast.

Back at Sun Microsystems he was the tech lead for javac (Sun’s Java compiler). During that time together with Gilad, Gafter and Gosling he drafted a proposal to add closures to Java 6.

Peter also put a lot of effort into making Java IDEs more powerful and Java itself more toolable. Last but not least he was an avid supporter of open sourcing the JDK, no small feat.

Currently Peter is working on things like incremental compilation support for Dart as well as on an experimental Dart runtime called fletch.

Here is a brief demo by Peter showing a proof of concept for incremental compilation and code changes that are pushed to the browser.

Want to learn more about Dart?

Go to dartlang.org and take it for a spin or subscribe to our mailing list about Dart.