
Dart in 2016: Fastest growing language at Google, 2nd fastest in TIOBE - pauljonas
http://news.dartlang.org/2017/01/dart-in-2016-fastest-growing.html
======
ceronman
You don't always have to jump to the hype train! Yes, you don't hear much
about Dart here on HN, but the project is far from dead. The most important
thing is that Dart works, it's stable and production ready and it's being used
in production not only by Google but also by other companies.

Dart is a very refreshing change for front-end development. No fatigue! Great
tooling, nice language without surprises and optional static typing.

On the backend you get probably the fastests dynamic language out there, maybe
competing only with LuaGIT.

The new Flutter for high performance mobile app development looks seriously
awesome. I specially love the instant live reloading.

Dart's package ecosystem (pub.dartlang.org) seems healthy with constant
updates and new packages.

I have no idea how TIOBE works, but I find weird that people accuse Google of
manipulating it to promote Dart. I believe it's the opposite, Google has done
very little to promote Dart, and that's why you don't hear about it very
often. I believe the project deserves more promotion because it's seriously
good. Give it a try one of these days!

EDIT: I do _not_ work for Google

~~~
pjmlp
For me the project died when Google decided it wasn't worth it to support it
any longer in Chrome and Angular team decided to use TypeScript instead.

Regarding Flutter, I watched the conference where it was presented and none of
the devices I own was able to launch the application.

[https://play.google.com/store/apps/details?id=io.flutter.gal...](https://play.google.com/store/apps/details?id=io.flutter.gallery)

Unless Google does actually use the language to the point a few well known
companies think it is valuable to use in their own products and talk about it,
e.g. "X rewrote Z in Dart", I don't see much of a future to the language.

~~~
devsquid
I feel your sentiment. But I always thought getting browsers to adopt Dart was
a crazy and impossible idea. I was actually glad when I heard they had
abandoned that plan.

Flutter confuses me. Its annoying you have to use their DSL for layouts rather
than HTML and what about native widgets, like WebViews or VideoPlayers?

With them drastically speeding up the Dart2JS compiler and implementing a
strong typed mode, I am quite pleased with Dart's direction.

I do still fear for its future. It would be really to sad to see Dart die. The
last web app I made, I was able to make the entire thing in under 90kbs,
including HTML, CSS, SVGs, and JS. Dart allows me to write desktop like
applications for the web with any extra overhead.

~~~
zeveb
> But I always thought getting browsers to adopt Dart was a crazy and
> impossible idea.

I don't know — browsers are _already_ planning to adopt a non-JavaScript
language (WebAssembly); it's entirely possible that maybe, _just_ maybe they
might start to support more than just the late-90s mistake which is
JavaScript.

~~~
pjmlp
As someone that enjoys more developing native apps than web ones, I imagine
Web Assembly will eventually be the revenge of plugins.

How long it will take for Canvas/WebGL + WebAssembly frameworks to appear?

~~~
devsquid
Eventually someones going to create a XML based layout language to use to
construct views in the Canvas, we could even call it HTML ;)

I'm not a web developer either and I look forward to WASM and its potential.
But I really like HTML, I've used lots of layout languages before and I think
HTML is the best I've used. The only thing I find HTML to be obtuse about is
complex animations.

------
myth_drannon
Looking at HN's Who is hiring job posts there is zero interest in it.
Typescript , Elm on the other hand are going up. [http://www.ryan-
williams.net/hacker-news-hiring-trends/2017/...](http://www.ryan-
williams.net/hacker-news-hiring-
trends/2017/january.html?compare1=Dart&compare2=Elm&compare3=ClojureScript&compare4=TypeScript)

Yeah, you can say HN is startup echo chamber etc.. Well StackOverflow's job
board has more mature companies and again zero interest in Dart. Here is the
latest scraped data. [https://github.com/aparij/soCareers-
Data/blob/master/result/...](https://github.com/aparij/soCareers-
Data/blob/master/result/tags/tags-jobs2016-12-31.json)

~~~
Sammi
Thanks for those two links. Great stuff.

------
markdog12
Dev lead here for a tiny startup. I selected Dart for front and back end,
sharing code between them. It has been a great experience and I don't have
many complaints. One of the designer's goals was familiarity. I believe they
definitely nailed that goal. We've had experienced devs contributing to the
codebase in 3 days without ever seeing a line of Dart code before. And they
absolutely love working with Dart. Here's some nice features to those who
aren't familiar with the language:

\- Class-based, object-oriented

\- Static typing

\- Generics

\- Async/await that makes your asynchronous code look like synchronous code -
(avoids callback hell)

\- Generators

\- Future-based, non-blocking APIs

\- Positional, named, optional parameters with default values

\- Arrow syntax for brevity

\- Type inference

\- Packages facilitate modularity

\- Named constructors

\- Functional programming features (map, fold, reduce, where, take, forEach,
etc...)

\- Cascade operator

\- String interpolation

\- Implicit interfaces

\- Mixins (Code re-use without complex inheritance hiearchies)

\- Reflection

\- Streams

\- Operator overloading

\- Metadata annotations

\- Concurrency through Isolates

\- SIMD

\- Call into JavaScript code and vice/versa

\- Generate nice documentation with /// dart comments

\- Built-in testing facilites - pub run test

\- Open source

\- Open standard

~~~
gcp
How many of these aren't available in ES2015 or TypeScript?

~~~
isoos
I have been exposed to TS a bit, so this list may not be exhaustive, but to
name a few that I use on a regular basis:

\- Consistent async API (incl. Future, Streams, async* for Streams,
async/await support everywhere). async.js is nowhere near to this.

\- Type inference and analyzer toolchain that works and don't need to fall
back on grep. The moment you start using anything like lodash or similar you
will lose your ability to explore the code reliably.

\- Isolates and Zones as higher-level constructs for dealing with complex
concurrency and parallelism constructs. Nothing comparable in the JS world.

\- Cascade operator.

\- 1 != "1" (have been burnt by JS several times, and TypeScript won't provide
a break from it)

I hope to use soon:

\- SIMD

~~~
TomMarius
> \- Consistent async API (incl. Future, Streams, async* for Streams,
> async/await support everywhere). async.js is nowhere near to this.

There now are Promises and Promise-based async/await keywords. Sure, there are
some legacy APIs, but this is no longer as true as it used to be.

> \- Type inference and analyzer toolchain that works and don't need to fall
> back on grep. The moment you start using anything like lodash or similar you
> will lose your ability to explore the code reliably.

TypeScript has introduced mapped and lookup types in its latest version, that
solves this problem.

~~~
isoos
We have a disagreement on the definition of "solves the problem". Having tried
to refactor a codebase with heavy lodash use, that battle seems to be lost.

Also, take a look at the async* construct here:
[https://www.dartlang.org/articles/language/beyond-
async](https://www.dartlang.org/articles/language/beyond-async)

Nothing similar is in TypeScript, and this is roughly a two-years old feature
in Dart, not a fancy-new hype. I have used it couple of times, it is useful,
and again: consistent across the board.

Of course if you are happy with the limited promise support in TypeScript, go
ahead with it. However saying that they are on-par is far from the truth.

------
sushisource
And yet, I very very rarely hear anyone talking about it? I assume it's pushed
heavily internally at Google, but anecdotally it seems nigh-unused outside of
Google.

Am I totally off?

~~~
unknownsavage
Yeah, this is my impression too. This is the first mention of it I think I've
heard in the last year, and I'm in the web development scene. Meanwhile I
seemingly can't get away from rust mentions, which seems to have people really
excited.

~~~
isoos
Apparently there is at least one reddit moderator that doesn't like Dart and
actively bans users when they try to post legitimate articles in webdev
forums:

[https://plus.google.com/+MontyRasmussen/posts/UWyjF5S14Uo](https://plus.google.com/+MontyRasmussen/posts/UWyjF5S14Uo)

I'm not saying that this is general to moderators, but some people try to deny
it exists or is relevant (probably because they have invested in other
toolchains), and if your filter-bubble is controlled by them, you will miss
out.

~~~
mst
Equally possible: the user was posting so many dart articles it was crowding
out higher quality non dart stuff from the 'new' queue.

Assuming the moderation action was due to "not liking dart" when we've nothing
except the complaining of the newly-banned to substantiate it doesn't strike
me as particularly fair.

------
isoos
If somebody has an interest on what's new with Dart, I'd suggest to peek into
the Dart Developer Summit 2016 videos. Previous HN link and discussion here:
[https://news.ycombinator.com/item?id=12838749](https://news.ycombinator.com/item?id=12838749)

TL;DR: great developer tooling, hyper-focus on web and mobile.

------
leftrightupdown
We are writing spa frontend for email marketing service in dart. No angular,
react, just lots of plain dart. Strong analyzer mode is used and dartium is
always in checked mode. Dart shined most when we created drag and drop html
editor. We like using it anl if anyone wants to know why we used dart ask for
details. Check our app at listshine.com

~~~
devsquid
Yea I found just using plane Dart to work really well. I preferred it over
Angular. I had an entire functioning web app in about 80kbs, including all
images, html, css, and JS. That was a while back, I'm sure its only gotten
better.

~~~
leftrightupdown
What i personally liked is that we write once and in 99.9% cases generated js
is compatible with all browsers. Also type checking and strong analyzer mode
helped catch ton of bugs. Im sure if you bet your next project on this tech
you wont be sorry. Fast code and fast development with webdev batteries
included.

~~~
devsquid
Yea actually I forgot about how slow it was to compile to JS. They are saying
it should around 100MS now to do a dev compile. So its feasible to use other
browsers actively during development. That is probably the biggest thing for
me they announced at the Dart Con.

------
naansensical
I'm more than a little skeptical of a rating scheme that puts JavaScript use
at 2.85% and Assembly Language at 2.7%. Clearly JS programmers outnumber
assembly programmers 1000 to 1.

[http://www.tiobe.com/tiobe-index/](http://www.tiobe.com/tiobe-index/)

------
shavenwarthog2
Dart's fascinating. It feels high level and object-oriented like Python, and
can be used both web server- and client-side. Check it out!

------
fsloth
So AdWords is implemented on Dart. Well, that certainly moved my understanding
of the positioning of the language from the large zoo of obscure
experimentations to the rare class of industrial and production ready in a
single bang.

In the classification of computer languages, this is like a new nova burst in
the night sky.

------
thewhitetulip
Okay so a naive and stupid question, why do I use Dart? what does it replace?
does it have any frameworks other than angular? can I use it with Vue.JS
(since I have spent considerable time learning Vue)

I tried reading their website multiple times, each of the time I was left
confused as to where the language fit

~~~
jayflux
I think the original idea of dart was to replace JavaScript, back when the
language looked stale and had no future. Now that the JS community/committee
have sorted themselves out and we have ES6 etc, there's not much need for dart
now.

------
greenspot
Don't want to be the jerk here. The problem with languages is that it's not
enough to be just great, feature-rich or thought-trough. At some point they
must create their own ecosystem, the bigger the better. The more open, the
better.

I see other languages which could create bigger ecosystems in less time and as
a result attract more influential contributors than Dart did.

Just based on its specs, Dart is a wonderful language but again, this is just
one part of the story.

------
lacker
Dart is also the 41st largest language on GitHub, growing slower than the
average. [http://githut.info/](http://githut.info/)

~~~
13years
Looks like that data hasn't been updated in over 2 years

------
shams93
Soundtrap used dart to build the first webaudio/webmidi DAW in the browser
pretty impressive haven't seen anyone build anything that complex without
dart.

------
usernam
Year after year, I've never found the TIOBE index to reflect what I personally
experienced in reality. By _far_.

But I'm not in the US. Can somebody comment about their perception on this
index?

~~~
stonemetal
Mostly meaningless garbage. The top of the list kind of follows my general
awareness of language popularity, but it goes off the rails pretty quickly.
Python above VB and JasvaScript seems off in particular. Below that it just
gets wacky, Dart above Objective-C for instance.

------
13years
However, Dart didn't make the list for PYPL
[http://pypl.github.io/PYPL.html](http://pypl.github.io/PYPL.html)

or the RedMonk ranking, although this is 6 months ago.
[http://redmonk.com/sogrady/2016/07/20/language-
rankings-6-16...](http://redmonk.com/sogrady/2016/07/20/language-
rankings-6-16/)

------
shams93
If you want to see an amazing demo of what can be done with Dart, look at
soundtrap.com, a full DAW running on webaudio/webmidi built with Dart.

------
bitmapbrother
Dart is also a first class language in Google's new OS codenamed Fuchsia.

~~~
the_duke
I haven't heard about it since the repos went public, do you have any more
info?

------
kelvin0
OK, so I started dabbling with Dart and wanted I've been wanting to do this
for 3 years. Please bear in mind, I want to use Dart because coding in JS
directly is not something I thoroughly enjoyed the last time I built a 'real'
Web App. This is not a critique of Dart, it's just my recent experience ... if
any of the points I make here make no sense, please correct me (I really don't
want to use JS anymore!)

So I start by installing the Dart SDK on my Windows PC. First surprise, I
noticed they no longer package the Dart-IDE when you install Dart SDK, a minor
disappointment. But I get it, the Dart team explains they want to focus on
core tools and let you use any editor (Web Storm is suggested but costs $$$,
and remember I'm only scouting at this point). So decided to use the plugin
for Dart in Sublime Text 3. Not perfect, but it works fairly well.

Other surprise, Polymer seems to be fading away. What Widget framework shall I
choose? I chose React for it's one way binding which seems to make sense to a
web n00b like me, since it will simplify the flow of data. The Dart team
pushes Angular really hard, but I still install the Dart-react modules. Adding
dependencies to a Dart project is fairly straight forward so far.

Using Dart-React does not bring the happy unicorns knocking at my door. Dart
React does not (yet?) process JSX, which is a pretty big feature I intended to
use with Dart. JSX allows you to define your components and reuse them. Oh
well, no JSX, but I'll just have to resort to coding React components in Dart
(which turns out to be a bit of a mess ...)

Now my shiney new Dart app needs to display some huge lists of Data in
tables/grids. I could build my own, but surely some smart dev has done this
before me! Found Slick Grid, but it's for JS (the Dart port is not as
performant). Dart tools mentions that there is a JS Interop 'shortcut': If a
JS component has been annotated (Typescript) you can use the annotated files
to generate Dart Modules!

So I run the tool on the annotated Slick Grid typescript files. Success! It
does generate the Dart libs! Ouuups, my boiler plate Dart project does not
compile anymore since adding the Slick grid modules. Dig some more, fix the
compilation issues (some obscure option was missing when converting from TS to
Dart).

We're back on track, my project compiles but... no grid ever show up. Looks
like it's time to test the debugging features for Dart. I get Dart to generate
.map files for my project. This basically allows you to debug Dart code in
browser (FF for me), and the debugging begins. I can spot exactly on which
line of my Dart code the grid is supposed to be instantiated, but this
requires me to move through the Dart to JS interop code and try to understand
why there is a JS exception thrown somewhere.

So, maybe for some Dart gurus out there this is simple and run of the mill
stuff. I would like to hear from you. So far I still don't have any data grids
to show my huge data set ... and am still wondering if I'm going to install
Typescript which seems more tightly coupled (in a good way) to JS.

Calling all Dart gurus, give me your thoughts on this, I want to use Dart and
have it succeed.

Dart Noob

~~~
leftrightupdown
what we do at listshine is run code on dartium in checked mode. when it works
100% then we build js version in staging and after that is confirmed to work
then we do production build. debugging dart code is faster and better in
dartium

~~~
kelvin0
OK, but what if I am using JS interop code? Dartium still won't help me,
because I still need to go through the layer which allows to 'glue' my Dart
code to the JS code.

~~~
leftrightupdown
That is true but part that is in dart will be easier to debug

------
garaetjjte
Don't use Dart for web applications. It is horrible. Hard to integrate with js
libraries, lacking features from js, big fat runtime and buggy. It may be good
language as replacement for server side javascript, but definitely not for web
apps using dart2js.

~~~
munificent
> lacking features from js

What features do you find lacking?

~~~
garaetjjte
Not language features, but it lacks some HTML DOM objects. Eg. thead, tfoot
constructors, style.setProperty don't work for css variables, etc. Small
things, but extremely irritating because it defeats whole purpose of having
sane wrapper around DOM API when it needs to be workarounded sometimes anyway.

I recently tried to access window content opened by window.open and it was
absolute nightmare. It cannot be done purely from Dart and requires JS
interop, but what's worse passing browser objects between dart and js is
buggy. I haven't found a solution that works both on dart2js and dartium, when
it works on dartium it is broken on dart2js and vice versa. And debugging
dart2js-generated code is almost impossible, just obfuscated mess.

------
bhouston
How is fastest growing defined?

By percentage? That is easy for niche languages with small markets. By lines
of code? That is impressive.

~~~
gefh
[https://xkcd.com/1102/](https://xkcd.com/1102/)

------
cutler
Indeed.com has 0 Dart jobs by title and TIOBE is a joke. Given that Google
uses about 4 languages routinely (Go, Java, Python & Dart) this is nothing
more than internal back-patting with no relevance outside the Googleplex.

~~~
pseudosavant
I don't want to dog on anyone's language, but any list that purports that
Typescript is significantly less popular than Scheme, Haskell, Alice, Lisp,
COBOL, Ada, Logo, and a few dozen other languages you probably haven't ever
heard of, is a complete waste of time.

I don't even use Typescript and even I know that especially with Angular 2
Typescript is gaining a lot of popularity and it was already doing well before
they picked it too. I mean it isn't even on their list in the top 100. How is
that possible?

It says that VB.net is more popular than Javascript too. Like that is even
possible.

~~~
flukus
> I mean it isn't even on their list in the top 100. How is that possible?

I'm guessing that most people would google "angular ..." instead of
"typescript ...", that's why it doesn't show up in tiobe.

------
lostmsu
If you join my religion, it will be the fastest growing with at least 100% per
day!

------
proteinbased
[https://xkcd.com/1102/](https://xkcd.com/1102/)

------
xiphias
It doesn't show how much Rust inproved in usage compared to last year.

~~~
xiphias
Why the downvote? Rust is on 41th place on the linked TIOBE index and I would
expect it to be growing faster than Dart from the HN articles that were
popular last year. Dart was compared to last year on the index, but Rust
wasn't, so I don't think saying that Dart was the second fastest growing
language is fair.

~~~
steveklabnik
It did say that, "Rust kept its top 50 position (from 47 to 41)."

But also, Rust and Dart are very different languages, so bringing Rust up here
feels very offtopic.

~~~
xiphias
Thanks, I didn't see it..I thought it's interesting because every few days
there's a new library ported to Rust shown on HN, which gave the impression to
me that it's the fastest growing language.

~~~
dunkelheit
Rust people are very good at marketing and community building and you have
experienced it yourself. Which is a great thing, it would be sad for such a
promising language to fail because "people just didn't get it".

~~~
flukus
> Rust people are very good at marketing and community building and you have
> experienced it yourself.

This is why languages succeed and fail, not technical merits.

------
ClayFerguson
The absolute LAST thing the world needed in 2016 was another programming
language. Google did with Dart precisely what Microsoft tried to do when they
(MSFT) created a proprietary JavaScript back in 1997(ish). Big tech companies
just have a lot of hubris and want to "own" everything they touch. Any large
software company, given enough time and success, will eventually create it's
own programming language. It's just in their nature. It's the natural
progression of market domination.

They COULD contribute their efforts to improving EXISTING languages (like MSFT
finally did to their credit with TypeScript, building on non-Proprietary JS,
which is great) but there is a seemingly irresistible allure to the thought of
owning the design and molding a language to perfectly fit your own company's
desires. You never have to deal with standards, when you're just making it up
as you go along. PLUS the massive benefit of the anti-competitive foot-hold
(monopolistic foot-hold) that having its own language gives to a company, is
just too tempting. They cannot resist.

However most developers are sick of the lanuage-Thrash. 99% of it is not
innovative in the slightest, but just somebody reinventing and resolving
problems that have already been invented and solved countless times before. I
really really hope dart dies (and GO can also go). In my opinion there are
three languages that need to still exist: Java, JavaScript/TypesScript, and
C++. Those fill EVERY need, and if the innovators would ADD TO THOSE rather
than starting from scratch and pushing the reset button the software world
would be a MUCH better place, and so would overall software quality.

~~~
benley
You are aware that Dart was not released in 2016, yes? The first public
release was in 2011.

Feel free to stick only to your company's Recommended Best Practices Industry
Standard Languages and Libraries. But, there are lots of languages out there,
and many of us have good reasons for using them. Deal with it.

~~~
ClayFerguson
Well if you jump from language to language, you'll never build a strong
resume. Keep that in mind. I'm nearly 50yrs old now and have stayed on course
with either C++ or Java, and never needed or wanted any of the "Flavor of the
Week" crap the script kiddies love piddling in. Personally I think not being
able to stick to something is a form of A.D.D. but that's just me. Deal with
that. And no I didn't give a shit about nor claim I knew when Dart was
invented.

