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.
[1] http://github.com/lvivski/hart [2] http://github.com/lvivski/gloss
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.
I suspect that's why you haven't seen many projects in Dart.
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...
* 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?