
AngularDart is going all Dart - tweakz
http://news.dartlang.org/2016/07/angulardart-is-going-all-dart.html
======
zoechi
Dart is awesome. Just because currently the community is still small doesn't
mean much. Google is working on so much great stuff that Dart becomes more
compelling every month. They are lying low since awhile with public
announcements, but if you follow the commits there is so much work being done.
In a few months it will become hard to ignore Dart.

The combined development (TS+Dart) was slowing Angular development down and
contribution was painful because one needed knowledge of both languages. There
are notable downsides for the split development but I fully understand the
decision. Implementing everything in a way that it can be translated into the
other language was a real pain and limited both versions to a common
denominator which prevented both versions to benefit from the advantages of
their respective language.

~~~
themihai
A Dart-like language designed with WASM as target will make sense now but I
think Dart(as it is now)is already doomed to die. The performance promissed is
just not there.

~~~
korm
Javascript compiled from Dart is as fast as normal Js, in some cases faster.
And in the server it outperforms Node according to the Techempower benchmarks.
[https://www.techempower.com/benchmarks/](https://www.techempower.com/benchmarks/)

~~~
themihai
In some cases is slower. Last time I've checked large apps were freezing on
safari. The point is that it's not signifiantly faster than js so I think it's
safe to say that it failed its main objective.

~~~
mswift42
Dart's main objective has never been to be faster than js. Dart's goal was to
make a modern, 'sane' language.

~~~
Touche
Dart was only created to be faster than JavaScript. Here's the leaked memo
about why it was created:
[https://gist.github.com/paulmillr/1208618](https://gist.github.com/paulmillr/1208618)

tldr; JavaScript has "baggage" and can't be made any faster than it currently
is, need a different VM + language with types.

Btw, the Dart creators are compiler engineers, not language designers. It
explains a bit about why it has failed to catch on.

~~~
themihai
I think this[0] summarises the main objective of Dart. Having said that I fail
to see how it succeeded. Maybe it helped JavaScript evolve a bit but IOS
development experience and performance is still vastly superior to
Dart/JavaScript/Web.

[0] `The emergence of compelling alternative platforms like iOS has meant that
the web platform must compete on its merits, not just its reach. Javascript as
it exists today will likely not be a viable solution long-term. `

------
pfooti
My initial reactions upon hearing this.

    
    
      * wait, is dart still a thing?
      * this can't be good for angulardart.
    

Basically they're splitting the project into two projects, claiming that both
sides will benefit from lots of support. I suppose if the typescript half of
angular was held back by any needs to cross-compile into dart, then the
typescript half will be losing shackles.

I honestly don't see how a low-penetration language is going to benefit much
here - are we going to see a resurgence of interest in dartlang just because
now there's a more native-feeling angular library for it? I've been wrong in
the past, I guess.

~~~
wstrange
> are we going to see a resurgence of interest in dartlang

It is hard to predict the future, but I do think this is a very positive move
for Dart that will drive adoption.

Dart frameworks were always playing second fiddle to the needs of Javascript
developers - resulting in compromises.

A Dart first framework (with some awesome Material widgets thrown in) will
offer a compelling developer experience.

Combine that with Dart on Mobile (flutter.io), Dart on IoT (dartino.io) and
Dart on the server, and you have a very nice story.

~~~
ramses0
Rectify dart and go for me, please.

Why should I learn one or the other?

If the ideas and concepts behind dart are so good why isn't golang taking
input from it?

If golang is so good why does dart even exist?

~~~
skybrian
Well, for example, you could use Go on the server and Dart in the browser. (I
quite like using Go with App Engine.)

Of course that means you can't share code between client and server, but not
everyone needs that.

~~~
weberc2
Both Dart and Go can be run in the browser or on the server, so you can share
code between client and server regardless of which language you choose, so
long as you don't mix them.

~~~
skybrian
Well, maybe. I have not kept up with GopherJS; how are they doing on code
size? And while you can certainly run Dart on an App Engine Managed VM, there
is no free tier like with Go.

~~~
weberc2
Not sure about GopherJS. I'm confused about how App Engine's pricing model
relates to whether or not Dart is well-suited to server tasks?

~~~
skybrian
Well, it's relevant to those of us who are using App Engine. Where else can I
can I set up a service for a hobby project without a monthly charge if it's
barely used?

------
Touche
What a train-wreck. So now AngularDart has it's own dedicated team? Angular is
already swimming upstream having lost its position to React and it's respect
within Google to Polymer. That they are going to be supported 2 separate
language versions of the same giant framework is kind of hilarious.

~~~
ben_jones
Calling it a train wreck is massive hyperbole. Just because React is so
popular on hacker news or in the SF bubble does not mean it is anywhere near a
de facto superior choice. Using such hyperbole detracts from the conversation
and misleads young developers who may not yet know how to accurately weigh
software stack decisions for personal or professional projects.

And this is coming from someone who was really excited for 2.x (and TS for
that matter) but has resigned to probably staying with 1.x and es5/6 for the
foreseeable future.

~~~
seibelj
Totally my opinion but react is simply the best way to create user interfaces,
regardless of language. If someone made react using Python targeting GTK
components it would be the best. The one way data flow and flux architecture
is superior to other UI frameworks I've used.

~~~
Touche
I find flux to be a really bad way to organize an application. It removes the
good engineering practice of having self-contained components. So if you're
writing a tabs widget you can't put all of its code together, you have to
maintain a separate "reducer" or whatever for the tab state in a different
file usually in a completely different location, and the top level of the
application has to know about that reducer.

I think this architecture is an awful way to go, and I have no idea how it has
become popular.

~~~
seibelj
All of the components are totally independent. You pass functions as props for
events that happen inside of the component, and choose to use whatever storage
mechanism you want. Maybe you don't fully understand how react works.

~~~
Touche
I was talking about flux. You might have recognized it because I used the word
"flux" in the first sentence.

> I find flux to be a really bad way to organize an application.

~~~
sotojuan
To be fair, Flux != React. Plenty of people do fine with `setState` and
passing down props and you can get quite far. Honestly, I am with you that
Flux/Redux ecosystem seems quite overengineered not by their "leaders" and
creators (who ask people to keep things simple!) but by regular users. A lot
of people solving problems they don't have.

------
oceankid
I find Dart consistent, fun and the documentation very beginner friendly,
especially compared to Go.

I really want to use it and wish the community/IRC was slightly more active.

~~~
themihai
How is Dart more beginner friendly than Go? You can't do much with Dart
without an IDE for example. The language itself is also more complex than Go

~~~
oceankid
I wrote "Documentation" is beginner friendly.

Spend some time reading their docs. Dart has language, Web and Server
tutorials specifically for beginners. The style of writing in which they build
up to explain simple concepts to things like method chaining just click. Its
very natural.

Go is minimal and great for people already experienced.

I felt Dart docs were centered around human problems and Go around CS
problems.

------
rvijapurapu
"First they ignore you, then they laugh at you, then they fight you, then you
win." \- Mahatma Gandhi

Frankly, all these arguments are by people who never tried Dart in the first
place. Dart is perfect for large scale applications - especially enterprise
ones.

~~~
carterehsmith
"... But they also laughed at Bozo the Clown."

\- Carl Sagan

------
tkubacki
I tried both TS and Dart and Dart has just way better developer exp.
especially when using IntelliJ and doing lot of small apps which have to be
mantained.

~~~
carterehsmith
Would be great if you could provide some details.

I only have experience with Typescript, almost none with Dart, and I would
love to see a comparison of the two in practical use, especially with
Intellij.

~~~
tkubacki
[edit typos] This should be whole blog post, but I will try to show most
important points from top of my head. I do compare my exp using TS with VScode
and Dart IntelliJ.

Dart analyzer is usually able to show more common mistakes even if you are not
heavy type user. Shorter time to find simple typo.

It's easier to start debugging and it's more reliable. This could be IntelliJ
itself.

code in Dart is shorter for small apps since it has build in SDK - no need to
external libs. It's easier to back to this code after few weeks - easier to
mantain. Also time to start from scratch is shorter

Pub (external libs) is way superior to what we have in TS world

One library importing mechanism which doesn't confuse me

I'm not afraid if lib x confilts with lib y

await async works on non ES6 browsers - no wired settings in main config file!

There is one thing better in TS which I like very much - how interfaces can be
aplied to decoded Map

------
msoad
The big difference between Dart and TypeScript is that Dart has a standard
library for DOM.

But I'm not sure how that's different than .d.ts files for DOM that TypeScript
has in its core. After all DOM code is translated to JS code 1:1. Maybe Dart
does more magic?

~~~
isoos
TypeScript is evolving towards the same language and tooling goals as Dart has
already achieved. I have worked with both, and I find TypeScript tooling to be
years behind Dart (event with recent improvements of type inference and e.g.
VS's intellisense).

The main reason TypeScript got more adoption was the fact that it was built on
top of JavaScript, and people could easily start mix-and-match with their JS
code. While that is great for easier adoption, it may not protect your
engineers on the same level as Dart does.

------
Bahamut
Thank god - for anyone who has contributed to Angular 2, having to write code
a certain way because of dart sucks.

~~~
zoechi
Dart doesn't suck. Dart is different and developing in a way that meets both
language needs is a pain in many situations. If you say Dart sucks you also
have to admit that TS sucks. They just suck at different things. There are no
upsides without downsides. It's just about what upsides and downsides you are
more comfortable to live with.

~~~
Bahamut
I didn't say Dart sucks - I said having to write the code a certain way when
contributing due to Dart support, which is near non-existent outside Google,
sucks.

In addition, it has complicated a lot of stuff for a long time due to build
setups, bugs related to toolchains around Dart and Angular 2's repository,
lengthier CI runtimes, and more. It was a huge net negative for those looking
to contribute, even for simple changes.

~~~
munificent
> I said having to write the code a certain way when contributing due to Dart
> support

It sucks in both directions. If you're trying to fix things for Dart users,
it's also a real hassle to have to figure out how to back-translate that into
some kind of TypeScript that will then be compiled back into the Dart code you
have in mind.

Having a single source of truth that you translate to JS/TS and Dart makes a
lot of sense when the value you get from sharing outweighs the cost of dealing
with the pipeline. My impression is that that cost/benefit hasn't worked out
well for Angular. I think being split will enable both sides to move faster,
even if it means manually migrating some fixes between the two languages.

------
lacker
So there is now Angular 1, Angular 2, AngularDart. Next I predict they will
launch Angular 3 which is incompatible with all the others.

~~~
themihai
To me Angular2 is not really worth it. The magic was on Angular-1. It did good
but now Polymer and React have the mojo each for different reasons.
Unfortunately the web development is still a big mess even on new projects
with supoort for latest browsers only.

~~~
pluma
Angular1's USP was basically the magic that turned out to be a bad idea and
was removed or at least significantly reduced in Angular2: scopes and
dependency injection.

I can still see the appeal of Angular2 to non-JS developers (e.g. C# or Java
developers switching to JS) but it's a very different framework. It's
certainly no longer living up to its original claim "designers can write code
without being programmers" (though that was only ever really advisable for
prototypes to begin with).

One of the most frequent criticisms I have heard from JS developers about
Angular is that being a good JS developer and being a good Angular developer
are separate pairs of shoes (compared to e.g. React+Redux where most of the
learning curve is JS rather than React or Redux). I don't see Angular 2 having
done anything to change that.

~~~
cname
Having written a handful of apps using Angular 1, I would say it's true that
you have to learn Angular's way of doing things, but most of the code for the
apps I've written is plain JS.

Angular 2 no longer has its own module system, so that's one less Angular-
specific thing you have to learn about.

------
insulanian
> Dart was designed "batteries included" – it’s not just a programming
> language, but also a set of stable libraries, solid tools, a great framework
> — and soon, a repository of battle-tested UI widgets.

Clicked on _solid tools_ link. Got _404: Page not found_.

Not a _solid_ start.

------
andrewclunn
Just what the javaScript framework world needs, more competing standards!

