What's so special about Polymer?

Desktop visual coding tools (like Visual Basic), Server-side Content Management Systems (like Drupal), and package managers (like Node's NPM) have enjoyed the concept of modules and features for years, but due to the limitations of the current version of JavaScript, browser differences, and security restrictions, the possibility of a pure client-side equivalent has been elusive.

Although proprietary attempts were made (such as Flash components), Dojo was one of the first major open JavaScript attempts at bridging that gap.  By encapsulating logic in separate JavaScript files that were injected dynamically with dependency handling, it was now possible to develop complex, maintainable modular applications.  Unfortunately, Dojo was ahead of its time and the face-off between declarative and imperative finished with jQuery as the clear winner.

Recently, though, AngularJS has resurrected the declarative appeal by adding useful power boosters such as automatic two-way data-binding, filters, and feature encapsulation via directives.  Unfortunately, to perform this magic it creates under the hood a proprietary parallel universe called Angular execution context that implements a potentially expensive brute-force dirty-checking technique and a fairly steep learning curve.  That said, the library is gaining strong momentum and popularity so as the saying goes 'where the community drives, the specs will follow'.

To that end, the W3C and TC39 gurus have been working diligently at forging a bright future (full of Object.observe, Shadow DOM, and template awesomeness, among others).  ....All we have to do is wait 20 years for the browsers to catch up, right?

Well, there's hope that Polymer will not only polyfill / prollyfill our way across the void but provide just the right balance of opinionated guidance and a thin layer of sugar (pre-built web components, Mozilla X-Tag/Brick support, etc.) to point us towards success.

New?  No.  Unique?  Not particularly.  Helpful?  Yes.


Post a Comment

Keep it clean and professional...