Google Groups

Re: [web-ui] Re: heads up: polymer.dart source code moving into main dart svn


John Messerly Aug 22, 2013 11:13 AM
Posted in group: [ZZ DEPRECATED LIST] Dart Web UI
Matt, great question!

As far as keeping web_ui package stable, it's definitely something we're keeping an eye on. When I've forgotten about implications for the web_ui codebase, Siggi always remembers and keeps me honest ;-)

In terms of feature parity with web_ui, I'd say it's in really good shape now, thanks to Terry landing scoped styles :)
Of the top of my head the only things that are missing compared to web_ui:
  • Polymer.dart only has observers, not watchers.
  • Generated JS is bigger compared to a web_ui app
    • fixed soon by adding @MirrorsUsed
  • XSS protection for attributes is missing (https://github.com/Polymer/TemplateBinding/issues/58).
    • I think this can be worked around in polymer_expressions (formerly fancy_synatx).
  • SafeHtml is not supported (https://github.com/Polymer/TemplateBinding/issues/57).
    • idea for working around this, create safe-html element: <safe-html>{{bindSafeHtmlHere}}<safe-html>
  • indentation=remove is not supported.
    • this could also be addressed in a custom element, e.g. <template-noindent>
Definitely let us know if you see or think of any other gaps.

The things that are better in polymer.dart:
  • Edit+refresh without compiler
    • Observers use dirty-checking in development, optimized for deployment
  • Shadow DOM always available (polyfill or native)
  • <template> is available at runtime with full control. Can be created/changed/bound to models.
  • <content> works correctly inside templates, responds to DOM mutation
  • Custom elements can override data binding behavior
  • Can bind to custom events
  • Dedicated template syntax (polymer_expressions) has filters & we can add more cool features
  • You can implement your own binding syntax or subclass existing ones
  • Scoped styles without mangling.
  • Ability to have multiple <script> tags in same isolate & ability to run code before/after elements are loading
  • Last but not least: we haven't changed polymer.dart yet, but ability to "extend HtmlElement" is supported in dart:html. So you can add your Dart objects to the DOM tree. WIN.
When you're ready to take the plunge, we're ready to help. :-)

Cheers,
- John


On Thu, Aug 22, 2013 at 6:47 AM, Matthew Butler <butler....@gmail.com> wrote:
I wanted to follow up on this with a question. Where does Polymer stand now with feature parity with web_ui? I love seeing work on it steaming ahead and I think this change will make keeping Polymer up-to-date with changes in dart:html and other internal changes we don't see and just take for granted. However I have a comfortable sized project already in production that's written with web_ui. And I'm concerned that moving Polymer into the svn, will also delay, or even just leave forgotten, any related web_ui changes that may be needed. 

I knew that soon I would have to change this to polymer and I don't mind that. One of the factors that's been holding me back from doing so is that we didn't have feature parity between the two, and 2, the documentation. I can now get around point 2 with the great examples that Seth has been working on. But I'm concerned about starting if point 1 hasn't been reached yet. I would rather not have to implement a bunch of work-arounds to get by until they are implemented and go back and patch them properly. 

If we're not quite at point 1 yet, should I be concerned about web_ui not being maintained until that transition period is reached.

Any advise for a concerned, but enthusiastic, developer?

Matt



On Tuesday, August 20, 2013 12:45:52 AM UTC-3, John Messerly wrote:
Hello Dart Web App-ers,

(this concerns https://github.com/dart-lang/web-ui, if you don't use that site you can stop reading.)

You've probably been burned by Pub version mismatches at one point or another. It's that frustrating "the packages are broken" feeling that happens far too often.

Here's what we're doing about it: polymer.dart source code and its dependencies are moving to "dart/pkg". That's the same place where many other Dart packages live (such as args, serialization, unitttest, and yaml, just to name a few). The upshot is we get testing on the Dart buildbots, which means more browser coverage and no more releasing Editor/SDKs without the corresponding packages working.

If you prefer GitHub as your open source hosting provider, never fear, you can still find our code there: https://github.com/dart-lang/bleeding_edge/tree/master/dart/pkg. Contributions are welcome, either using the contributing to Dart instructions, or by submiting a pull requests to the bleeding_edge github repository (we'll make a patch for you on the Dart SVN side).

Bug tracking is being consolidated too. From now on bugs in these packages should go to http://dartbug.com/new:
  • custom_element
  • fancy_syntax (soon renamed: polymer_expressions)
  • html_import
  • mdv
  • observe
  • polymer.dart
Personally I have mixed feelings about this, but I think the testing/reliability goodness will outweigh the downsides.

Thanks!
- John

--
To contribute to, or file an issue against Web UI, visit https://github.com/dart-lang/web-ui
 
Consider asking HOWTO questions at Stack Overflow: http://stackoverflow.com/tags/dart-webui
---
You received this message because you are subscribed to the Google Groups "Dart Web UI" group.
To view this discussion on the web visit https://groups.google.com/a/dartlang.org/d/msgid/web-ui/14572388-42f2-41d2-bed4-6a6bc851f029%40dartlang.org.

To unsubscribe from this group and stop receiving emails from it, send an email to web-ui+un...@dartlang.org.