
Dart 1.9 - tosh
http://news.dartlang.org/2015/03/dart-19-release-youve-been-await-ing-for.html
======
tosh
This is imho the most exciting release since 1.0 :)

In a nutshell:

    
    
        * async/await
        * generators
        * enums
        * Dart Analysis Server (accessible through IntelliJ/WebStorm & Sublime)
        * New RegEx engine, 150x speed up in Dart VM
        * …

~~~
notsony
Unfortunately yesterday's announcement about stopping development of Chrome
Dart VM has put a dampener on things for me. I'm not particularly interested
when there are other projects like TypeScript which also transpile to
Javascript.

It's also making me question the long-term viability of Golang, given Google's
history of shutting down projects abruptly.

Are any important teams inside Google using Golang for heavy-lifting? At least
Dart talked about the Google Ads team using Dart. One of the goals behing
Golang was go have C++ programmers move to the language, but instead it's
Python and Ruby programmers picking it up. So if C++ Googlers aren't using the
language, it might imply that no critical systems are being built with Golang.

Also look at the resources that were initially put behind Dart. Meanwhile look
at Golang, after all these years there is no official IDE. You would think
that if Google were serious about Golang they would have put more resources
into developing the ecosystem. It seems like Google want to have their
celebrity employee, Rob Pike, in order to attract worker bees to apply for the
grunt work at Google. Much like yesterday's post about Bjarne Strostroup
working at Morgan Stanley.

~~~
EugeneOZ
All is pretty fine with Golang, especially inside Google. Tweet to illustrate:
[https://twitter.com/rob_pike/status/575853496592826369](https://twitter.com/rob_pike/status/575853496592826369)

And I think all will be fine with Dart too. Today's release is very
interesting for server-side development. In both cases, on the server and on
the client side, people will use Dart when they prefer Dart to JS. And
difference not only in syntax or amount of sugar, but in "how the whole system
works" (don't know how to say it). And when you know that most profitable web
project in human history is committed to Dart, then you can be sure, Dart is
here to stay :)

~~~
notsony
That tweet has no information - why is it of any significance?

~~~
EugeneOZ
Maybe because Rob Pike (one of Go authors) works at Google and many Google
developers often write how they glad to write things in Go for Google needs.
Next step is up to you - use search engines to get more information :)

~~~
EugeneOZ
Last what I remember: [https://blog.twitter.com/2015/handling-five-billion-
sessions...](https://blog.twitter.com/2015/handling-five-billion-sessions-a-
day-in-real-time) (not Google, Twitter, but still big company).

------
spankalee
dartlang.org has two articles on async/await support by Gilad Bracha. The
Stream and generator support is particularly awesome.

[https://www.dartlang.org/articles/await-
async/](https://www.dartlang.org/articles/await-async/)

[https://www.dartlang.org/articles/beyond-
async/](https://www.dartlang.org/articles/beyond-async/)

------
ahoge
This is the biggest release since 1.0. Async/await and generators are a
welcome addition. Shareable server sockets and better isolates are also nice
to have.

Enums are currently rather disappointing though. They went with the simplest
possible implementation... _minus_ 1\. You can't assign integers. Which is a
problem because you can do that everywhere else. Naturally, there are many
protocols and formats which use ints to represent specific enum values.

I hope they'll fix this in the future.

Speaking of the future, there are a bunch of other interesting things on the
horizon such as null-aware operators, non-nullable types, and union types.

The upcoming "Fletch" runtime for iOS and similar restrictive environments is
also very exciting. It might turn Dart into the perfect language for video
game scripting. It's small, fast, and it supports atomic program changes via a
wire protocol.

------
shepard
Anybody knows if async/await is supported by dart2js yet?
[https://www.dartlang.org/tools/dart2js/](https://www.dartlang.org/tools/dart2js/)
says that it's not, but I'm not sure if that page was updated or not.

~~~
floitsch
Yes. Dart2js in v1.9 supports async/await.

~~~
shepard
Thank you for clarifying! Since you work on Dart, could you please update the
dart2js page as well?

~~~
floitsch
Will do.

------
mark_l_watson
I used to play with the Dart language - really nice having a client and server
project in one code base and in one language.

BTW, it seems odd that Dart is not supported server side on AppEngine.
Sandboxing problem? You need to use a compute engine.

~~~
spankalee
You can use it on App Engine Managed VMs:

[https://www.dartlang.org/server/google-cloud-platform/app-
en...](https://www.dartlang.org/server/google-cloud-platform/app-engine/)

App Engine decided to go that route to add new languages, rather than sandbox
each language individually like with Python and Java (The Go backend was
created by the Go team before Managed VMs).

------
edgyswingset
I've never used Dart before, but since this is the exact pattern that C#
follows I may have to five it a whirl in the future. I'd love to see more
languages adopt this pattern.

~~~
skybrian
There are a few differences. Here's a fairly theoretical article about the
details:

[http://queue.acm.org/detail.cfm?id=2747873](http://queue.acm.org/detail.cfm?id=2747873)

Skip down to: "While async functions may remind us of the async/await feature
in C#, note that there are differences."

The first author is Erik Meijer who worked on C# (among other things) at
Microsoft.

~~~
edgyswingset
This is a really excellent article. Thanks!

------
bovermyer
As someone who gave a tech talk on Dart and how awesome it is, I wish I could
back it as a tool of choice for web projects.

However, I even abandoned PHP for its fractured community in the past couple
months. I don't see how I can back Dart when its creator is so publicly
disinterested.

I apologize if that seems harsh, but it's just how I feel.

~~~
technofiend
As someone interested in DART for web projects, I wish I could try it out. But
it's tied to the Chrome ecosystem (it installs a local copy) and Chrome is not
one of our corporate standards.

~~~
spankalee
I don't understand this complaint. Dart is not tied to Chrome at all. The
local copy of Chromium is just an optional development tool included with the
SDK download. You don't have to use it.

You can use Dart with any modern browser. Use it with IE if that's your
standard.

~~~
technofiend
It may be a circular dependency problem, but when I start DART I get an error
from my local workstation nanny that Chrome startup is blocked and then DART
exits. So if there's a way to set DART to another tool than Chrome I can't
seem to get there.

I haven't tried it with DART 1.9 so maybe that problem is no longer there.

