Polymer is a really cool framework which brings lots of goodies. I have used it during the past 5-6 months and i can say it is really cool. It gives us access to Web Components standard (Shadow DOM etc) through polyfills. Unfortunately, it is not that mature like AngularJS, EmberJS or ReactJS yet. The core team tries really hard to solve issues and upgrade things but it still needs some work i suppose.
For me the issue with PolymerJS is that it was not introduced as a fully functional framework but as the way to use today (meaning early enough), future technologies and standards (web components, Shadow DOM etc). Because of this the framework didn't offer some crucial features like a native routing system so developers could find themselves searching here and there or even testing a great variety of third party plugins to tackle this. A great resource to do so is customelements.io webpage. Another solution was to use Polymer alongside well-established js frameworks like AngularJS and use their routing system. The issue here is obvious. Why do we have to drop AngularJS or sth else for PolymerJS if i have to use AngularJS because of PolymerJS weaknesses and introduce an extra level of complexity in there? To be honest i never tried this because i knew i would drop PolymerJS right after.
Apart from that, the core team decided to upgrade the framework from version 0.5 to version 1 last May so many third party plugins got outdated at once. This caused some issues because the new version was not that compatible with the old one, but i guess this is the price you pay if you want to rely on sth that is not that stable yet. Fortunately, a native routing system was added 2 months ago so i guess the core-team has reconsidered some things.
The documentation is a little short. I mean there are not best practices guidelines and the community is still quite immature. When started using the framework this was a great pain since i couldn't find answers so i had to create tickets on Github, register myself to their slack channel to study other developers comments and so on. Unfortunately, there are not that many online resources to dig in some more and this is going to disturb you a lot i suppose. Believe me, i know.
So let's write some more about the nice ones. There is a library already prepared for us with lots of functional components like paper-button or iron-ajax etc. It has a great variety of well-prepared components which use the Material Design feeling and styling. This has some advantages and disadvantages too. On the one hand, we can prototype really fast and build something attractive without that much effort. On the other hand, everything is identical to Google's platforms (because of the Material Design styling) which might seem cool at first but in the end, it feels somewhat annoying (all apps are identical to each other) so i had to override lots of styling rules and so on to prevent this.
Coding is fast and painless. There are computed properties and observers, events emitters and handlers, dual data-binding and much more. A component contains its own styling, its template and its js logic. This helps us a lot in order to write abstracted code in a structured way. PolymerJS helped me a lot to grasp much better the whole logic behind web components and components communication. I had already an AngularJS and EmberJS background when started coding with PolymerJS. Another feature i enjoyed a lot is the usage of vanilla js. No reason to extend custom objects or use strange selectors. After all vanilla js has evolved a lot and we tend to forget or maybe ignore it.
The only thing that worries me about Polymer is that it keeps on having few stars on Github. Around 15000+ for some months now without any improvement. Other newly created frameworks like VueJS have doubled their stars in the same period (from 10000 to 21000+). I am not sure what this means but it is somewhat strange and worrying i guess since PolymerJS is supported by Google.
Wow, this is really long. I hope i helped someone out there :-)