Google simply cannot create a good, usable programming language, and when it does, it always kills it with something else (usually an unintuitive editor, or Java), so the whole language and its libraries barely survive and nobody uses them. A few bullet points of thoughts on Dart:
- Google killed Dart Editor – I tried plenty of Dart code editors, some of which remotely resembled an advanced IDE, but the best one was still Dart Editor. I have rather mixed feelings about Dart.
Not about the language itself, which is great apart from the upper/lower case conventions (but that may just be habit from C#), considering it is built on untyped JS, but about Dart Editor, which is built on Java-based Eclipse, which is terrible, except Dart editor is even less polished; it is a completely stripped-down Eclipse and in practice very hard to use.
It annoys me how it autocompletes variables that appear in the name even though they do not exist at all in the calling context. It also annoys me how an object’s variables are displayed – first in a small window that you can enlarge by dragging, but woe betide you if you move outside it for a millisecond – the whole little window disappears instantly. It annoys me that it does not automatically generate handler methods with typed parameters.
It can be done, but you have to write it yourself – in C# and VS you just type the event name and press tab 2 times – and you have a typed handler created. I also tried Eclipse with the Dart editor plugin, but it is a horrible behemoth.
It took 10 minutes just to download information on whether the program had any updates. On top of that it is really ugly, just like all Java programs. - There are no MasterPages – This is a flaw of Dart itself. Like everything in programming, it can usually be worked around somehow, here too, through some handlers and so on. But that is inconvenient. Single-page applications do not mind, but which website has only one page these days.
Sure, it occurs to me that you could create a kind of master page asindex.htmland load content into it dynamically. That only just occurred to me, and it is quite a good solution, but when the page loads you have to load all the JS of every page on the site, which on larger sites is pretty wild. Admittedly, part of that will be the Dart SDK. - Everything is Java-based.
So it is slow, complicated, demanding on the CPU and other HW components, and all of it just makes you nervous. - Not even AtScript will save it – AtScript is a superset of TypeScript. That looks like a better path than Dart, because existing JS code is valid AtScript and TypeScript code.
But once again Google will not be able to sell it or push it through; the IT world is already fed up with Dart, so it will approach AtScript with suspicion. The only people cheering for AS will be Google fanatics. - I do not think even Google develops in Dart – long ago I read somewhere that Google was rewriting all of Gmail in Dart.
I never heard about it again. That was the only mention I ever saw of anyone at Google using Dart for development. - Packages point to the AppData folder of the user profile via junctions – many IDEs and programs have a problem with that.
For example, on Windows you cannot runpub getfrom Chrome Dev Editor; you probably have to do it from the command line. I do not know how it works on Chrome OS and other OSes. - Dart2js output – I do not know what this is supposed to mean, why the code is obfuscated like this, and instead of the 2 lines I write there are at least 1000 more. Admittedly, part of that will be the Dart SDK, but couldn’t Google make 1 file on a CDN with the Dart SDK for each version and distribute it that way.
Who is supposed to debug that code in the browser when they do not know where their code is (all variable names are changed). - I think Google will soon kill Dart completely – they will realize it is a dead end.
- If you publish an original Dart project/code somewhere, you have to upload hundreds of Dart SDK files.
On top of that they are made for Unix-based OSes, so if you have, say, FTP on Windows Server, some files will fail to upload (Polymer, which is also backed by Google, suffers from this the most). - Google will probably never get around to implementing the Dart VM in Chrome.
On the one hand it expects this from the companies behind the other browsers, yet it would be enough to merge Dartium and Chrome. - You can use JS code in Dart, but I have not tried it yet.
In any case, it will probably not be possible to write headers for typed access like the*.d.tsfiles in TS, so you will be stuck writing methods that call the JS method.
So I am off to rewrite my 8 Dart websites and programs in TypeScript. I hope Google shuts Dart down soon, so that it never tempts me again.