Well, Start uses another project called Hart [1] template engine that has syntax similar to Slim or Jade. And I'm going to include Gloss [2] there too, it's a CSS preprocessor, but it's not stable yet.
Since Dart lacks the ability to extend built-in types using something like extension methods, categories or refinements as seen in other languages I think exposing a user-controlled class is the way to go as it lets you expose a framework-focused, value-added, user-facing DRY API.
I have to confess that after read through the Dart specs, all I could think was "meh". Google had a chance to throw their weight behind some powerful language advancements, but all I saw was a boring Java/Javascript hybrid. And given that Dart will never be natively embedded in Safari or IE, it's going to be very hard to get traction on it.
I suspect that's why you haven't seen many projects in Dart.
Agreed, the language syntax itself is very boring. Listening to talks from their language designers, I think they are even annoyed a little that they can't do more interesting things with the syntax. I've been following dart for a while now, and here's the feel I get from the language:
* Dart's goal is not to explore exciting new syntax, it's about giving developers a language that can quickly start being productive on.
* Cleaning up a lot of the messy syntax that exist in Javascript today.
* Be able to easily and efficiently compile to Javascript. This seems to be the reason for a lot of the language syntax decisions.
* Provide a full development experience (language, tools, ui, etc...) out of the box.
A very important feature is class-based object orientation, which the vast majority of developers are familiar with, thus it is more natural to use compared to prototype-based OO.
Also, tool-visible types allow for better/easier tool-assisted development, something that has been a stumbling block even in the most monstrous of IDEs. For example, ever ctrl-clicked a function assigned to a var in Eclipse?
Dart is supposed to be "boring". Their intention was to create a language which is familiar to anyone who used Java, C#, AS3, JavaScript, or any other C-like language in the past.
From my own experience, I'd say that this strategy worked exactly as intended. I was able to write code after skimming through some of the examples. To be honest, I only bothered with Dart because it used C-like syntax.
Also, it compiles to surprisingly fast JavaScript [1]. Support by all browser vendors isn't necessary. You can use it either way. The lack of support really doesn't change anything. You'd use a build/deploy script either way, wouldn't you?
You might be interested in checking out http://pub.dartlang.org which is our repository of Dart packages. Meanwhile, we're still in beta, so I hope to see more projects when we hit 1.0.
Dart is a language and a platform behind it. It's really easy do develop advanced applications in Dart and then translate them to javascript. But you are also able to run it in a separate VM.
Not really. Dart and Javascript are both languages, while Reader is an application that uses RSS.
Having spoken with one of the people who works on Dart, the idea is not to kill an open standard (why would Google do that?), but rather to fix the horrible mess that is Javascript.
Same thing for the shutdown of Reader - how does that prevent you from using any other RSS reader?
-> the idea is not to kill an open standard (why would Google do that?)
Controlling the language gives you unique power over the whole ecosystem. Google gets to decide what is permissible, and what is not. Google is tearing out their OpenWeb support and building walled gardens.
The more Dart becomes popular, the more we become locked in to Google, and the more our options and possibilities are constrained.
By your logic, Linux users are locked into a walled garden Linus Torvalds created. If Dart becomes popular, there's nothing stopping Mozilla and Microsoft from creating a Dart Compiler and VM. It's encouraged in fact. JavaScript will continue to be the target language of many transpilers such as Clojure and CoffeeScript. People will use whatever tool suits their needs.
-> By your logic, Linux users are locked into a walled garden Linus Torvalds created.
That's right. Linus defines what is possible. Witness the recent UEFI controversy. Had Microsoft (or Google) been in charge of Linux, you'd have to obtain a corporate license just to boot a freeware OS. The entity that controls the foundation technology is vitally important.
So-called enhancements like UEFI or Dart are always introduced with benign intentions. "to make the web more secure" "to improve performance" "to protect the children" The end result is more corporate control, more centralization, fewer options for individuals and small organizations.
A bunch of people who have downvoted my anti-Dart posts are Dart engineers. I think Dart engineers are really smart, and have produced a great technology. I don't think Dart engineers are scheming to bring down Javascript.
But I don't think Reader engineers built their product with a plan to wipe out alternative readers and damage RSS. I don't think Calendar engineers planned to vacuum up the competition then remove the CalDAV option to migrate their data. But that's what happened. It would be a shame if Javascript were similarly compromised.
Dart at this point is being directed by Google, but it is totally open source. So if Google decided they wanted to stop working on it, you would still be free to do what you'd like with it.
The Dart code[1], which includes the VM, dart2js, editor, analyzer, and all libraries are under new BSD license. The entire contents of the dartlang.org website are even on Github[2] under Creative Commons, so you can submit pull requests to have any page on the website updated.
While it's direction is being decided by Google, they are taking a lot of input from the community via the mailing lists and bug submissions. Though, it is not driven by committee like EMCAScript is, I'm ok with that for now. I believe when Dart was originally launched they said they would consider submitting the language as an ISO standard once it has become more stable, which may still happen.
Yes, one of the long term goals of the language is standardization. The project is open source, we have external committers, and we've taken numerous patches. Pull Requests welcome!
Since you're on the Dart team, something I always wanted to say re: Dart.
The main chance I see for the language getting adoption is to start from the server side, if Google could sponsor a full featured web framework in the language with async capabilities, talking to major DBs, and other batteries. Basically a Dart Rails or Django (maybe a little scaled back in the beginning).
Sure, you can let the community create several competing frameworks, like this one. But nothing will get traction like a Google-backed, with 1-2 full time employees behind it, nice documentation et al.
Conspiracy theorists -- you guys are such a bunch! Languages that compile to JS are very common in 2013 web dev. For a large section of web developers, JS is little more than "the VM of the web."
29 comments
[ 2.5 ms ] story [ 74.3 ms ] thread[1] http://github.com/lvivski/hart [2] http://github.com/lvivski/gloss
Since Dart lacks the ability to extend built-in types using something like extension methods, categories or refinements as seen in other languages I think exposing a user-controlled class is the way to go as it lets you expose a framework-focused, value-added, user-facing DRY API.
I made user-controlled classes that get populated with relevant data and middleware information. Like stuff from form parsing.
https://github.com/Daegalus/fukiya
I suspect that's why you haven't seen many projects in Dart.
* Dart's goal is not to explore exciting new syntax, it's about giving developers a language that can quickly start being productive on.
* Cleaning up a lot of the messy syntax that exist in Javascript today.
* Be able to easily and efficiently compile to Javascript. This seems to be the reason for a lot of the language syntax decisions.
* Provide a full development experience (language, tools, ui, etc...) out of the box.
Also, tool-visible types allow for better/easier tool-assisted development, something that has been a stumbling block even in the most monstrous of IDEs. For example, ever ctrl-clicked a function assigned to a var in Eclipse?
From my own experience, I'd say that this strategy worked exactly as intended. I was able to write code after skimming through some of the examples. To be honest, I only bothered with Dart because it used C-like syntax.
Also, it compiles to surprisingly fast JavaScript [1]. Support by all browser vendors isn't necessary. You can use it either way. The lack of support really doesn't change anything. You'd use a build/deploy script either way, wouldn't you?
[1] https://plus.google.com/u/0/114943499066504644906/posts/WXNL...
You might be interested in checking out http://pub.dartlang.org which is our repository of Dart packages. Meanwhile, we're still in beta, so I hope to see more projects when we hit 1.0.
Having spoken with one of the people who works on Dart, the idea is not to kill an open standard (why would Google do that?), but rather to fix the horrible mess that is Javascript.
Same thing for the shutdown of Reader - how does that prevent you from using any other RSS reader?
Controlling the language gives you unique power over the whole ecosystem. Google gets to decide what is permissible, and what is not. Google is tearing out their OpenWeb support and building walled gardens.
The more Dart becomes popular, the more we become locked in to Google, and the more our options and possibilities are constrained.
That's right. Linus defines what is possible. Witness the recent UEFI controversy. Had Microsoft (or Google) been in charge of Linux, you'd have to obtain a corporate license just to boot a freeware OS. The entity that controls the foundation technology is vitally important.
So-called enhancements like UEFI or Dart are always introduced with benign intentions. "to make the web more secure" "to improve performance" "to protect the children" The end result is more corporate control, more centralization, fewer options for individuals and small organizations.
A bunch of people who have downvoted my anti-Dart posts are Dart engineers. I think Dart engineers are really smart, and have produced a great technology. I don't think Dart engineers are scheming to bring down Javascript.
But I don't think Reader engineers built their product with a plan to wipe out alternative readers and damage RSS. I don't think Calendar engineers planned to vacuum up the competition then remove the CalDAV option to migrate their data. But that's what happened. It would be a shame if Javascript were similarly compromised.
The Dart code[1], which includes the VM, dart2js, editor, analyzer, and all libraries are under new BSD license. The entire contents of the dartlang.org website are even on Github[2] under Creative Commons, so you can submit pull requests to have any page on the website updated.
While it's direction is being decided by Google, they are taking a lot of input from the community via the mailing lists and bug submissions. Though, it is not driven by committee like EMCAScript is, I'm ok with that for now. I believe when Dart was originally launched they said they would consider submitting the language as an ISO standard once it has become more stable, which may still happen.
[1] https://code.google.com/p/dart/
[2] https://github.com/dart-lang/dartlang.org
Yes, one of the long term goals of the language is standardization. The project is open source, we have external committers, and we've taken numerous patches. Pull Requests welcome!
The main chance I see for the language getting adoption is to start from the server side, if Google could sponsor a full featured web framework in the language with async capabilities, talking to major DBs, and other batteries. Basically a Dart Rails or Django (maybe a little scaled back in the beginning).
Sure, you can let the community create several competing frameworks, like this one. But nothing will get traction like a Google-backed, with 1-2 full time employees behind it, nice documentation et al.
Here is a nice list:
https://github.com/jashkenas/coffee-script/wiki/List-of-lang...