Disclaimer: I led development of gaming.youtube.com. We chose Polymer at the time for non-technical reasons.<p>Some downsides:
Performance is not great.
Lack of coherent data architecture (e.g. Redux).
Difficult to manage state change (as opposed to React) due to a more limited programming model - e.g. template ifs and repeats don't know to reevaluate in many cases. This makes it harder to integrate with third party js libraries.
Inferior tooling vs React.<p>Philosophically Polymer is more about the DOM and React is more JS-focused. Some of this is personal preference.
It pretty much requires you to use the babel/crisper/vulcanize toolchain, which in my limited experience doesn't do nearly a good a job of minifying Javascript than other tools (because it can't do symbol renaming). I haven't found a way to use browserify with web components, for example, so no ES6 modules.<p>Polymer is made of magic. It uses magic cutting-edge browser features where available, and where they aren't it fakes them using magic. Some of its APIs like Polymer.dom(x) are completely magic. When it works, it works really well. When it doesn't you are going to waste so much time trying to find out why.<p>It also assumes that everything you're doing is through Polymer; so you won't get much mileage out of, say, JQuery. While it admits the existence of other Javascript libraries it tends to blank them at parties.<p>If I were to do my current project again... I'd probably still choose Polymer, although I'd take another look at the other Javascript UI toolkits. Web components are so, so nice for designing UIs --- I can finally use actual computer science techniques like abstraction and modularity for building UIs! --- and it's got the best consistent look and feel that I've ever seen in a Javascript UI toolkit.
We use it pretty extensively at Cloudstitch and like it on the whole.<p>A few commenters mentioned poor browser support, but we haven't experienced any problems other than IE<=10.<p>In many ways Polymer is just a shim for the WebComponents spec with data binding added in, along with a standard library of web components. The resulting framework-style is basically plain-JS/HTML with a la carte use of Web Components where appropriate. Unlike [my perception of] React or Angular, you can use Polymer a bit without going all in. (Ironically the one thing you can't currently do is mix Polymer Elements from Source A with Polymer Elements from Source B at runtime if they have common, but separately hosted, dependencies).<p>WebComponents feel a bit like Java swing, in that making HelloWorld is high overhead, but once you've got a nice toolbox of components going, you can pull them out and use them flexibly. This is not unlike React components, except Polymer/WebComponents use an HTML-centric definition format while React uses a JS-centric definition format.
If you are using the shady dom (web components lite, rather than the low perf full polyfill), the library requires you to do dom manipulation through the polymer local DOM API. [0]<p>That means without shimming other libraries, polymer is incompatible with any other libraries you might use to manipulate the DOM. For example, you can't easily mix angular, react, or ember templates with some polymer elements, because (e.g.,) angular's ng-if directive doesn't use polymer.dom to inject created nodes.<p>This is currently my biggest beef with polymer. Someday, webcomponents will be great, principally due to composability and portability. Just plug the one component you need in to your extant work. But for now, that promise is not quite realized.<p>[0]: <a href="https://www.polymer-project.org/1.0/docs/devguide/local-dom.html#dom-api" rel="nofollow">https://www.polymer-project.org/1.0/docs/devguide/local-dom....</a>
I've never used it, because the official demo site was incredibly slow. If the resources of google can't even make their own library feel responsive, then I'll spend my time hitting my head against a different platform.
Slow as hell in Firefox because Firefox doesn't natively support web components so they use a JavaScript polyfill.<p>Also it is over-complicated for simple websites. You'll end up in bower-npm-grunt-etc-etc hell very quickly.
For those who (like me) have never heard of it, here's a link: <a href="https://www.polymer-project.org" rel="nofollow">https://www.polymer-project.org</a>
For the moment, it doesn't really have great browser support and less intent to implement than some other features of the OWP. Whereas service workers at least had Mozilla pushing along with it, Google seems to be "going it alone" a bit more on Polymer and having a tougher time building a coalition for it.
you are kind of forced to use bower.<p>lacks older browser support<p>mixing it with other virtual-dom libraries like react is not easy or straightforward.
I recently used Polymer for a large project. Performance is ok on chrome with full web-components, but unsurprisingly the full webcomponent polyfill is very slow elsewhere. Stick to the ShadyDom polyfill if possible.<p>Vulcanize is pretty cool, though we had a hard time getting it to work right in a gulp workflow.
Excluding the performance issue, which largely seems to be confined to instances where polyfills are required, the cons don't seem so bad. The tooling will improve as the library and community mature, and other problems are being addressed already by the looks of it.<p>I've got a project in the pipeline for which I was planning to use Cycle.js, but I've always had a niggling interest in Polymer.<p>What I'd like to know is whether Polymer offers any significant pros, because after consuming some of the docs the offer seems to be a <i>better</i> reimagining of ASP.NET WebForms. What are the benefits?
An issue we faced is with different versions. Each new major version changed so much that we had to rewrite some things. I will wait for a stabler release
I've used Polymer.dart for browser game consiting mainly of simple windows. From that I can say the most important downside is the poor performance on mobile (even with shady DOM). Despite that I'd probably still choose Polymer if I need browser framework because webcomponents encapsulation feels great from developer perspective.
Don't forget to take a look at <a href="http://x-tag.github.io" rel="nofollow">http://x-tag.github.io</a> especially if you're looking for alternatives to Polymers take on a Web components. Haven't used either extensively yet but x-tag seems more bare metal.