

Evolving the Dart Language with Dart Enhancement Proposals - sethladd
http://news.dartlang.org/2015/03/evolving-dart-language-with-dart.html

======
munificent
Hey, gang! I'm on the Dart team and am one of the people who worked on getting
this squared away. Holler if you have any questions. I'm super pumped to have
a process that's easier for people to get involved with.

~~~
keypusher
Are there any lessons you have learned from existing language projects that
use this process such as PEP (Python) and JEP (Java)? Personally, I like the
fact that you have them in Github so it's easy to tag, comment, revise, etc.

~~~
munificent
> Are there any lessons you have learned from existing language projects that
> use this process such as PEP (Python) and JEP (Java)?

Nothing that I can think of that's particularly insightful. Just the basics
that, yes, people want to be involved, and that it takes a good amount of
effort—technical, mental, and social—to get a proposal to the state that it
needs to be in to land in the language.

> Personally, I like the fact that you have them in Github so it's easy to
> tag, comment, revise, etc.

Thank you! I have to give credit to a team-member who suggested this, but I
really really like this model. It lets each proposal be its own little mini-
ecosystem and, I hope, should make it easier for multiple people to
collaborate on a proposal.

------
joeld42
This is great. I'm using Dart on a (smallish) project, and I really like it.
I'm a little nervous about whether it will be around in five years, and stuff
like this really help reassure me on that front.

~~~
sethladd
There are business critical apps built in Dart here at Google. You're in good
company. :)

~~~
shockzzz
In your experience, are Dart apps primarily ones that compile to Javascript
and run in the browser, or server-side apps?

~~~
cbracken
Most of the use of Dart at Google is client-side code running in the browser,
but there's server-side use too. One example: Google Fiber settop boxes run
server-side code on the Dart VM.

------
ceronman
This is really exciting. I love that they decided to follow this kind of
community supported evolving of the language. This is what Python has been
doing for years and it has worked very well. Congrats to the Dart community!

~~~
munificent
Yup, we based this process in large part on what the Python ecosystem does.
Those folks are smart.

------
baldfat
I am someone that just can't stand java script I am wondering are we getting
to the point where I have an option to use something like this instead? Last
time I looked 18 months ago everything that was to replace java script caused
me to have to go through the compiled code and deal with java script more then
if I just wrote in java script in the first place.

~~~
sethladd
You'll need to compile to JavaScript to use Dart on the web. Lots of our
developers say that the net win for them is the language, libraries, and tools
they use while developing their app.

~~~
amoiseev
I really like and appreciate how Seth _clearly_ says that you _will_ need to
compile Dart to JS for the deployed apps. Thank you!

For a long time Dart community were awaiting when Dart VM will be finally
built-in into Chrome, and it was one of the selling points we often heard -
Dart will be natively executed by the browsers. However, I personally don't
think it's a big deal. Even if tomorrow Chrome... even if all the browsers
tomorrow will be shipped with Dart VM inside, we still will have to deploy
compiled to JS version for the next 3-5 years (the same with ES6 btw).

Don't get me wrong, I am looking forward to see Chrome with Dart VM onboard, I
just don't think it's critical for real business apps.

I also second @jenscow's opinion, compilation to JS is a feature that has some
important advantages. For the last 1,5 year I've been working on a business
web app written in Dart, it's deployed into production. Most of the time we
use dev channel to get access to the latest features. For 1,5 year we _never_
had an issue caused by compilation to JS. Actually 2 times we had issues
reproducible only in JS version, but the errors were in our own code, had
nothing to do with compilation process, regular race conditions that had
higher chances to occur in JS.

------
bsaul
It's funny, but now that i've used golang, i can't help that think that
async/await or any concurrency primitive isn't the kind of thing you add to a
language in an update, but rather the things you build the language around.

Edit : of course that comment applies to server-side oriented languages. For
client-side code running in a browser, this is less of an issue. Actually,
dart-to-js on the client + golang for the api could be a good combo...

~~~
xxgreg
The team are also working on an experimental VM with support for coroutines
and channels, threads will also have growable stacks, that will allow a
similar programming style as used in go. See: [https://github.com/dart-
lang/fletch](https://github.com/dart-lang/fletch)

Async/await is just sugar, it doesn't actually change APIs at all. Note C#
also added async/await long after their first release.

------
coldtea
Can you make Dart better for scripting / server side purposes? Batteries (a
standard library) with the breadth of Python's or at least Go's would be
handy.

~~~
sethladd
Dart is great for scripting and server-side today.

Check out [https://api.dartlang.org](https://api.dartlang.org) for our core
libraries... lots of good stuff in there (collections, async, networking,
files, sockets, etc).

And if you don't find what you're looking for, check out
[https://pub.dartlang.org](https://pub.dartlang.org) for third-party packages.
Everything from crypto to game loops to graphics to frameworks to database
drivers, etc.

As for scripting, you can definitely use Dart for console scripts. You can
write really simple scripts with just functions. You can read stdio and
stdout. (you can even do it synchronously, which is much easier for console
scripts :)

