Tip:
Highlight text to annotate it
X
MALE SPEAKER: So welcome back.
We're here at Devoxx with Seth Ladd, and we're here to talk
about Dart.
So welcome, Seth, to Devoxx.
So this is your first time?
SETH LADD: This is awesome, yeah.
Thanks for having me.
MALE SPEAKER: Working well for you?
So you just presented on Dart.
So for those people that have been living in a cave or under
a rock, can you give us a quick intro on Dart and how
you call this a new language for the web.
And it's one thing that I found interesting is that it's
meant to be enterprising.
So if you can elaborate on that, I'd love to hear you.
SETH LADD: Well, sure.
The quick version of Dart is--
one of our goals is to help more
developers come to the Web.
And you've got experienced developers on platforms like
Java and ActionScript, C++, C#, that really love the
exciting power of HTML5 in the modern browser, but would like
to build those apps in a language and with a set of
tools that feels more familiar, productive, and
powerful to them.
And so this is certainly what attracted me as someone who's
come from a Java structured background and moved to web
programming.
I think it's going to attract a lot of developers as well.
Yes.
MALE SPEAKER: So the language part is meant to be
unsurprising, so do you want to [INAUDIBLE]?
SETH LADD: Yeah.
There's two main core tenets of the Dart project.
One is that it has to be recognizable and familiar.
The second is that it must compile to logical and sane
JavaScript.
But in terms of the language being familiar, this is not
the opportunity to develop the world's next
Haskell, for instance.
This is an opportunity for us to, again, reach out to the
existing legions of developers on all these different
platforms and say, here's something that you can jump on
very easily, very quickly, you feel safe and comfortable
with, and still deploy to the modern web with HTML5.
And so it was a critical decision at the early parts of
the project to make something people can within an hour or
two get up and running.
MALE SPEAKER: Right.
As people have understood, I think, it's not just a
language, it's a platform.
So there's the language, there are tools around it.
There are testing tools.
Can you [INAUDIBLE]?
SETH LADD: Certainly.
You're absolutely right.
It's much more than just the language, although that's an
interesting part of it.
But we also have things like a full editor with code
completion, and refactoring, and quick fixes, and
debugging, and outlines-- again, trying to make a
familiar tool ability story to the developers out there.
We also have a package manager, Pub, so you can
discover and install and update your third party
dependencies We have a wide range of libraries that come
built into the SDK.
Certainly, the core libraries like collections, and dates,
and stuff, but also the libraries like unittesting,
and mocks, and JSON.
And the list goes on and on.
So all this comes out of the box as well.
We also have a virtual machine, so you can run Dart
programs natively on a Dart VM, which is really important
when you do your development cycle.
You want to just write some code and hit Reload, and it
just pops right up in your web page.
This is the kind of experience that web developers have had
since the beginning of time and it's
fantastic for iteration.
And then we also have a compiler to JavaScript so that
when you're done testing your app on the virtual machine and
you're ready to ship to production browsers that don't
Dart VM, you can run Dart to JS, the compiler to
JavaScript, and then deploy that out and actually run Dart
across the modern web on modern web browsers.
MALE SPEAKER: So if we step back and we look at HTML5,
which is this buzzword which encompasses a lot of different
technologies and their frameworks and JavaScript,
such as Backbone.
There are so many of them, and Angular is probably a very
popular one.
Can you try to position and explain how they relate to
Dart, to a platform like Dart?
SETH LADD: Well, sure.
I think it's a really good sign that the JavaScript
community is now embracing these more structured ways to
build Web apps.
As we need to continue to innovate and deliver the
really fantastic, high fidelity, complex, silky
smooth experiences that users demand,
we need more structure.
I think we need the frameworks out there.
So that's really cool.
So you mentioned Backbone.
Backbone is a simple way to construct
your models and views.
Angular puts a lot of the data binding into your actual HTML,
which is really cool.
But ultimately, at the end of the day, they're still running
on top of JavaScript, which for a ton
of people is fantastic.
But for developers familiar in other languages, we want to
give them a fantastic web development experience.
And so we talked about the language and
libraries and tools.
But we're also building to help them actually use it to
build modern Web apps.
We're building out Web components--
capabilities.
And this gives you the two way data binding, the
encapsulation of styles, behavior, and structure, the
ability for you to extend HTML classes.
Like, you can extend button and create fancy button,
create your own custom elements.
And this is all stuff being baked into the web platform
today by the browser vendors.
But we can use our compiler to JavaScript to actually make
the future of web components available today and deploy in
modern browsers today.
So it's really, really cool.
MALE SPEAKER: Great.
So talking about browsers and maybe future browsers, when
can we expect something that actually comes with a Dart VM?
Maybe performance that is a great motivation.
SETH LADD: Yeah.
The VM is a great development and debugging story.
Very quick iterations, but there's also a performance
story there as well.
We use a system called Snapshots, that have about of
10x performance increase for start up time, because it
doesn't have to reparse the source code.
It can start from the binary, serialized snapshot.
But there's also a story around just the raw
computation performance of the Dart VM.
We're already beating V8 on a bunch of
different benchmarks, and--
MALE SPEAKER: You know a thing or two about V8.
It's the same people.
SETH LADD: Yeah, that's the really cool thing, right?
If anybody knows speed, it's these original developers that
did V8 and Hotspot and now they're working on Dart.
I mean, that that's a good sign.
But it's super early there, but we have optimistic about
the performance getting better.
And as far as actually landing in browsers, we still have
work to do.
We have a build of Chromium with a Dart VM in it.
So it all works today, but we have more stability work to go
to prove to the Chrome guys that his is something that
they want to put in.
And then as far as the other browsers, I think the
important thing to remember is Dart's success is really tied
to developer success.
So if developers using Dart develop really awesome HTML5
modern apps and they're compiling to JavaScript with
Dart, then that's a win.
If Dart just brings in more developers to the Web
platform, that's good for everybody.
MALE SPEAKER: So you mentioned performance.
Can you talk about maybe adoption and where we are in
the road map and milestone one [INAUDIBLE]?
Does it mean the language is actually
stable completely now?
SETH LADD: It's pretty stable.
So about a year ago, we had a technology preview, and we
listened to a lot of feedback.
We love the community feedback.
And then we had the M1 launch, which was our first public
beta of the SDK.
And the language is fairly stable.
We don't anticipate any backwards breaking changes
unless we run into some massive bug.
We do anticipate new language features as long as they don't
break backwards compatibility.
And then the future milestone releases as we kind of march
towards a 1.0, we'll be working on things like the
maturity of the platform, adding in a couple of new
language features, better performance, library
refactoring factoring.
So we're not at 1.0 yet, but the M1 was a great milestone.
It's like, hey, developers, you can now come check out
Dart, and we're not going to rip up the language on you
underneath.
MALE SPEAKER: So we're looking at six-week
cycles, releasing updates?
SETH LADD: I'm not exactly sure what we've committed to,
but it does look like that we're going to have a
Chromesque or Firefoxesque fast iteration cycle and get
these new releases out to developers.
We do push a new build every week, which is really great.
But I think the milestones are going to come pretty quickly,
which is nice.
MALE SPEAKER: OK, great Any final thoughts on what the
next year will look like and what you want developers--
other try Dart, what kind of feedback you're looking for?
SETH LADD: We're really looking for feedback on web
components.
MALE SPEAKER: [INAUDIBLE] a good time.
SETH LADD: Web components is a big thing that
we're working on.
And again, this is going to come down the web platform
anyway, but we're making this available to developers.
Thanks for your compiling to JavaScript.
And just keep working on libraries that publish into
Pub or Package Manager.
I mean, this has helped really everyone get
up and running by--
I mean, what's the best productivity enhancement?
That is not to write code.
So if you can use other people's code and use other
packages, it's fantastic.
So give those a shot.
Join us on the mailing list.
We're on Google+.
And we're an open source project, and so you can jump
right into the issue tracker and just file bugs.
It's all good.
MALE SPEAKER: OK.
Stack Overflow, [? mailing list? ?]
SETH LADD: Stack Overflow is really good.
Stack Overflow I'd probably prefer, but numerous ways to
get ahold of this.
MALE SPEAKER: [INAUDIBLE] where people are.
SETH LADD: We're very eager to hear the feedback.
MALE SPEAKER: Great.
Well, I guess that's all the time we have for it.
Thanks, Seth.
Good luck for the rest.
SETH LADD: Thank you very much.
MALE SPEAKER: Thank you.