This blog post will contain a comparison between the SAP framework OpenUI5 and the Google Framework Polymer. On my current work project I am mainly using OpenUI5. I was the guy to decided to use it around 2 years ago and I am still very happy with that decision. Nevertheless I try to keep up to date all the time. So in my vacations I started a small polymer application.
The polymer application is a reminder for medication. It is mainly using components from the 188.8.131.52 branch from the polymer CDN project. It is powered by a material design interfaces and uses some new HTML5 features. These features are not limited to polymer nevertheless I want to mention them:
- Service Workers for Notifications
- The awesome QuaggaJS to read bar codes
- WebCompoments (this is the basis for polymer)
As an example for an OpenUI5 application I will use my BPMN-2-FunctionsPoints example.
Polymer concentrates mainly on the view part and makes it possible to build independent encapsulated web components. OpenUI5 takes a more general approach and also ships with server compliant model implementations and has a clear seperatation between a control and a controller.
Here are some comparison tables
Organizational and development process comparison
|Main driver||SAP SE||Google Inc.|
|Release velocity major releases||~3 month||~2 month|
|Release velocity bugfixes releases||weekly||weekly|
|Releases according to github||188||93|
|Contributors according to github||136||95|
You can see that both frameworks are developing with a phenomenal speed. It is more about you catching up then about them releasing new features.
|CSS Preprocessor||Central Less Theming files||Custom CSS properties|
|Design guide||SAP Fiori||Google Material Design|
|View language||XML (preferred), JS, HTML||HTML5|
|Official browser support||IE11 further the newest and long-term-support releases of Chrome, Firefox, IE Edge and Safari||Polymer 1.0+ works in the latest two versions of all major browsers: Safari 7+, IE 11+, and the evergreen Chrome, Firefox, and Edge.|
|Consumable from CDN||Yes, officially supported||No, some hacks exist|
So polymer is a little bit more modern in the choice of technologies but OpenUI5 has broader support.
|Recommendation for standardized server communication||X (OData)||O|
OpenUI5 has more features but for polymer it is easy to pull in some third party libraries that help with server communication.
|Amount of components in main library||172 (sap.m)||91 (PolymerElements)|
|Responsive components||Yes, Use: sap.m||Yes, Use: app-layout and paper components|
|Extensive Testing Concept||Yes||Yes|
|Main component repository||N/A||https://www.webcomponents.org/|
|Themable||Yes, as a whole||Partly, on a control basis with custom css properties|
Currently OpenUI5 comes with a lot more components by default but in polymer it is easier to pull third party components.
|Stackoverflow Tags||sapui5 2805||Polymer 6320|
Both frameworks are well documented but in my opinion the documentation for OpenUI5 is still better. Polymer is better known in the public.
|IDE||any (SAP Web IDE, UI Theme Designer, SAP Development Tools)||any (Polymer Designer)|
|Works on JS snippet sites like jsfiddle or codepen||Yes||Yes, with CDN hack|
Both frameworks are developing there own tools. In my opinion a framework should work with every IDE which is the case for both.
Overall polymer and openui5 use a lot of similair concepts. OpenUI5 is more mature and better suitable for enterprise application that need a lot of forms, master data management, and long term support. Polymer is a good choice for live style applications that benefit from the newest technologies.