Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Dart has been out for ages (in internet years), but judging by Google Trends , it hasn't gotten much hype, and the fact that it only works in Chrome doesn't help either. Nonetheless, Chrome is gaining market share every day, which lends itself to a better view on Dart.

What is the big picture now? What state is the language in? Do people regard highly of it? Market share? Web App showcase? Some feature implementations that make you go "I have to use it"?

share|improve this question

closed as not constructive by Matthieu, David Thornley, Jarrod Roberson, Walter, ChrisF Jan 17 '12 at 10:36

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

2  
This question may be judged as too localized in time, and not sure how to make it less localized without asking for opinion on the language itself. –  Matthieu Jan 16 '12 at 21:33
1  
@Matthieu: Too localized? Seriously? –  Jim G. Jan 16 '12 at 22:52
1  
@JimG. : For a language that is in its 0.06 version, and that is updated every month, I think it's fair to say that this language might not be the same in the next 6 months, and that any judgment passed today will be useless then. –  Matthieu Jan 17 '12 at 3:06
1  
Dart works in modern browsers by compiling it to JavaScript. –  Seth Ladd Jan 17 '12 at 3:34
2  
I don't really understand the reason this was closed. It does require facts (market share/usage), references (online examples, etc), the state the language is in (technical preview as noted in answers), feature implementations (fact/reference/specific expertise). The post even provides some info similar to the info it is expecting, which is clear concise and to the point –  Mihalis Bagos Jan 17 '12 at 13:20

5 Answers 5

up vote 27 down vote accepted

The short answer to "What's the state of Dart?" is: it's in Technology Preview. That's a special way of saying, "we launched early so we can open source everything and work in the open." "Technology preview" also means "we're not even in Alpha yet, we have a lot of work to do, but there's enough there for you to play with and give feedback."

Internet time may work for news stories or consumer product iterations, but probably not for something as ambitious and broad as the Dart effort. Remember, Dart is more than just a language. It's also a set of libraries, a better DOM interface, a virtual machine, an Editor, and integration with Chrome. The team is working very hard on a lot of parallel threads, but I personally expect it'll be six months before we have most of the pieces in place.

It's not true that Dart only works in Chrome. Dart compiles to JavaScript and targets modern browsers. Sure, Chrome will be the first to launch with native Dart support, but ensuring Dart compiles to performant and effective JavaScript is a core constraint and feature of the project.

The big picture is that Dart will become a "batteries includes" development environment for modern web apps. Dart's driving goal is to help ensure the web remains a productive and enjoyable platform for app development and deployment. This means a lot of pieces need to fall into place: language, libraries, editors, virtual machines, and browser integration. Put all together, we believe Dart will be a compelling option for modern web app developers.

The big big BIG picture is that we want to bring app developers to the web, and we want web developers to write more complex web apps. If they use Dart, that's great. But at the end of the day, the language doesn't matter. The only thing that matters is that complex, client side, high fidelity, low latency, beautiful modern web apps are being built.

The language is in a state of development. We see new releases to the spec approximately once per month. Major features are missing, such as reflection, but we keep iterating. We just added map() support to Collection, for example. Gilad Bracha, a guy who knows his languages (having created NewSpeak and worked on the Java Lang Spec) and Josh Bloch, a guy who knows his libraries (having written Effective Java and worked on the Java Collection libraries) are working on the language and libraries, along with the greater team.

Do people regard highly of Dart is hard to generalize, and it probably doesn't matter too much to you. You should draw your own conclusions after having played with Dart. My experience is that app developers from other platforms such as Java, C#, or Flex find Dart attractive and familiar. My experience with JavaScript developers is split. If that JavaScript developer has also built apps on other platforms, they are cautiously optimistic about Dart (or, at least, the solution it's trying to provide). If that JavaScript developer grew up on JavaScript and has only programmed in JavaScript, there's more hesitation. This could be some fundamental concern about the language, or hesitation in leaving a comfort zone, or simply just not running into edge cases with JavaScript. This is just generalization, but I've seen plenty of people become productive in Dart extremely quickly.

As for market share, it's extremely early in the game. It's probably not the right question to ask, as Dart isn't even shipping. A more interesting question would be, "What is the market share of apps on the web?" and then go figure out how we can address that.

As for a Web App showcase, the Dart team built Swarm, a slick newsreader. Unfortunately, we only have it in source code right now: http://www.dartlang.org/samples/index.html

As for some "killer" features, I would say there are a few pretty interesting ones:

  • optional types are slick, they add annotations and documentations for humans and machines.
  • Isolates is a great way to achieve concurrency in a safe manner.
  • Libraries (modularity) is sorely needed for the web stack, and Dart has libraries and classes.
  • Snapshots will allow for extremely fast start-up
  • Bundled libraries (like collections, Stopwatch, etc) will unify code bases and shrink shippable code
  • Nice new DOM interface, which makes working with DOM much more enjoyable. It feels like native Dart code.

I hope I've answered your questions. I think the only question that matters is, "Does my language help me build complex, high fidelity, low latency, modular, modern web apps?" The end state of all of this is simply helping more app developers deliver more successful apps to the modern web.

share|improve this answer
    
Thanks for the most extensive and comprehensive reply! –  Mihalis Bagos Jan 17 '12 at 13:02
    
came to this thread while watching your video Introduction to Dart. Ready for some hands-on on Dart. :) –  SachinG May 25 '13 at 17:54

Dart has been out for ages (in internet years)

It isn't even used extensively and it is immature. Production ready technologies have existed for 10-15+ years... for Dart you can't even say it's a pre-alpha. New technologies always look good, on paper, when no one is using it.

it hasn't gotten much hype

I think the opposite. It's a shame such a bad, backward language got so positive reviews. It's going back from beautiful Ecma/Java Script OOP with parasitic inheritance, closures and callbacks to some wooden, decade old OOP taken from Java with all horrible programming practices Java comes with.

Some feature implementations that make you go "I have to use it"?

None. If you know java and you have intolerance for knowledge to learn Ecma/JavaScript properly Dart is probably only thing that'll work for you.

You know how google works. They use Java a lot, so probably that's why they produced such horrible language... they're just acustomed to it.

Beside it's further fragmenting the web and i can only hope Mozilla and Opera never implement this (because MS won't add support for some google java like language for sure). Beside the whole concept is DATED, we should get rid of languages like C++ or Java at least when coding UIs because these are very ineffective. It's like replacing C++ with Assembler, because coders in their late 50s refuse to learn new things.

share|improve this answer
2  
You may want to tone down your language biases a bit; your first paragraph makes a good summary and you end up with a nice observation but those get lost in all the "horrible." –  Patrick Hughes Jan 16 '12 at 22:54
    
+1 on the toning down, c++ is still very much alive (as is assembler) for specific applications. It might not be the best tool for every job, but in a lot of of circumstances it is awesome. Assembler is for example used in game engines I believe. –  Paul Hiemstra Jan 16 '12 at 23:14
    
I didn't say Java or C++ is bad... both are bad for user interfaces which is what JS is used (primarly) to program. Both are good in other areas. Dart is just a naive approach by people that only program in Java so they probably think Java is good for everything. Beside i worked with MFC and Java on UIs so i think im entitled to say so :) It's like saying Assembler is more advanced than C because ASM is all that you know :) –  Slawek Jan 16 '12 at 23:18
    
I have worked with Java and JavaScript and I can say that your post is horrible and naive. Programming languages are not religion, and Dart has a pretty good approach. I don't think we can or should get rid of languages like Java. This is just hacker-speech without any reasoning. –  Christian Jan 16 '12 at 23:30
    
Reasoning? You can do same thing in JS that in Java... just a couple of TIMES faster + the code is much easier to manage and change, if we're speaking about UIs. Time = Money. It was bad enough when we had VBScript and ECma on the browsers together... why go back to the 90's? JS is specific language for very specific case why replace it with something general-and-crappy? –  Slawek Jan 16 '12 at 23:38

You can't measure programming language age in "internet years". In fact, you can't measure any actual technology in internet years. All you can really measure in internet years are hypes, but hypes don't reflect reality.

Dart is public since 3 months now. Compare that to the "fresh" and "hot" techs in the field, like CoffeeScript or Node.js, which are public since 2 years and almost 3 years respectively. Also it's worth noting that both are relatively small steps compared to Dart. Basically CoffeeScript meant plugging a JavaScript-generator into a Ruby-based parser and Node.js meant binding non-blocking I/O to the Google V8.

Dart is an attempt to redesign front end web programming at all levels, i.e. syntax, language features, runtime environment, APIs. Comparing Dart to CoffeeScript for example, is like comparing a prototype of a solar energy powered, auto-piloted personal aircraft with a 1968 Shelby GT. Sure, the former has far more potential, but investing in it, let alone boarding it requires a lot of audacity. The latter has a lot of known deficiencies, but they are known, which makes the whole thing predictable and reliable.

Of course this is just speculation, but I think Dart is a dead end, that will eventually be salvaged for moving JavaScript forward, or other solutions. If you want a dynamic language, CoffeeScript and Parenscript already do what Dart promises. If you rather prefer a statically typed language, then haXe and Opa will do the trick. All the four have a head start on Dart. And all of them are designed to be compiled to JavaScript as a default, not just as a fallback.

share|improve this answer
2  
I think while Dart is new as a language, I haven't seen anything particularly innovative in it. As far as I can tell, it's mostly made up of features from older languages. So it really is not very much like a "prototype of a solare energy powered, auto-piloted personal aircraft". –  Tikhon Jelvis Jan 17 '12 at 1:22
    
@back2dos +1 "You can't measure programming language age in "internet years". In fact, you can't measure any actual technology in internet years." This opened a new insight for me to think. Why can't and how could technology be measured in pre and post internet eras? –  Ubermensch Jan 17 '12 at 4:34
    
@TikhonJelvis: The comparison was more about the maturity. Still, solar power, auto-piloting and aviation all exist, so the vehicle I described is similarly to Dart, "just" a recombination of existing ideas. The challenge of engineering is not to recombine, but to make it fly ;) –  back2dos Jan 17 '12 at 9:04
    
Comparing Dart to other languages is off from this discussion, and as far as I can imagine to any discussion, since they are different things anyway. Dart is more than a preprocessor and it certainly isn't server-side oriented. I do agree on the speculation about dart's future though, and that's one of the things I was looking forward to be answered –  Mihalis Bagos Jan 17 '12 at 13:08
    
@MihalisBagos: Well, since Dart can compile to JS, you could run it on Node.js already, so it can be used on the server side. Also time is hard to measure meaningfully, so to get an understanding of how far Dart can go in what time, a comparison to a given language at a further stage with a comprehensible number of features is pretty much the best reference frame you can get. –  back2dos Jan 17 '12 at 13:41

Dart is still in technical preview. At the moment the language specification has the version 0.0.6, a 0.0.7 is expected somewhere this week. It is far from "complete". There are several example in the repository: http://www.dartlang.org/samples/index.html

Here is one view on what is better in syntax terms than in JavaScript: http://www.grobmeier.de/10-reasons-why-dart-is-cooler-than-javascript-03012012.html Disclaimer: it is my post. I need to say here I like JavaScript, but at some points it has quirks, which I don't like very much.

There is also a growing community around it: http://www.dartosphere.org

Some people have managed to port Box2D to Dart, another guy connected to CouchDB. Anyway, there is nothing you should use in production.

Before a while Josh Blochua has joined the team to work on a refactoring of the API. You can expect some changes even in the Core API.

Browser support: you can transcompile Dart to JavaScript, preferably with Frog (not DartC, it compiles to huge javascript files). Dartium is one of the browsers which supports native Dart, a controvers discussed Webkit branch is somewhere too.

My personal expectation is to get something more concrete in the middle of next year. From my experience Google Devs are doing lots to make the language proper and good, borrowing not only from Java, but also from Erlang and JavaScript.

Here is an example, a game ported from JavaScript: http://blog.sethladd.com/2011/12/10-lessons-from-porting-javascript-to.html

One can expect Dart to arrive to Android, maybe even as a "main language". People are saying it will come to AppEngine.

Personally I think Dart is very elegant and already pretty nice. In addition I think it will have a marketshare once it is complete.

You'll find many of your questions answered in this FAQ: http://www.dartlang.org/support/faq.html#compare-to-coffeescript

share|improve this answer
    
Thanks for the hands-on oriented reply, very interesting links! –  Mihalis Bagos Jan 17 '12 at 13:10

Dart is a flawed concept following in Javascript's footsteps. Google should be collaborating on creating a standard runtime for web browsers (sort of like an HTML 6). Similar to java byte code or microsoft's IL.

We should not be standardizing on specific languages, but on runtimes. The "browser is an operating system". Right? WTF google? Follow your own vision!!!

share|improve this answer
1  
Java bytecode is a specific language. As is CIL. –  Jörg W Mittag Jan 17 '12 at 3:05

Not the answer you're looking for? Browse other questions tagged or ask your own question.