The OpenUI5 framework offers a library with the goal of delivering a complete set of components for building web applications. There are other frameworks which offer this, and others which have better offerings on some facets. But, because this is the first JS library offered from a massive enterprise like SAP without a tight linkage to a backend (so let’s ignore Microsoft’s offerings for now), there are some places where OpenUI5 shines compared to other frameworks.
Being “enterprise grade” means these things according to SAP:
- extra quality assurance
- internationalization and right-to-left support
From here on out in the presentation, the SAP offering looked better and better despite my initial cynicism. Ignoring supportability (perhaps this translates into something sensible in German), the fact that SAP mentions internationalization and right to left support is import. Other JS frameworks and libraries offer these tools, but they are almost always community supported. The AngularJS story for internationalization is finally in a good place, but it has never been a first class citizen, and never had a reliable roadmap. SAP delivers solutions worldwide with this toolkit and I expect their i18n and RTL support to be tolerable at the least and well supported at best.
Large organizations often legally have to support accessibility (adding information to the markup for screen readers, for example) in their applications, but open source projects are not bound by the same requirements and often fall short with accessibility features. Any toolkit can support accessibility, and the SAP team did not demo accessibility, but I expect this has occupied the time of someone internal to (and paid by) SAP more than other alternative JS library hackers. If I were considering a library and needed to support accessibility, I would strongly consider OpenUI5.
Finally, the SAP team showed a tool called “SAP UI5 Diagnostics” which seemed similar to Batarang, an AngularJS tool which allows deep inspection into AngularJS technologies. I was surprised to see a powerful tool like this, and it evidently allows introspection of the 180 components SAP delivers with OpenUI5 in addition to custom components you have built yourself. The JS interfaces for creating custom components make it possible to deliver a tool like this that knows about custom components, a tool which even allows you to change data in the model and update it inside a preview client view.
It should be noted that this library occupies a strange place in the open source ecosystem. If you go to the GitHub page you’ll see only a README which points back to a project download page. The presenters noted that they were not yet accepting forks (though there are strangely 38 forks) and so it is impossible to contribute back to this library (or at least using a pull request on GitHub). This makes this library open source in name, but not entirely in the sense of community that usually arises around a project. Nowadays most people think of open source as something you can use freely, modify freely, AND contribute changes back freely (GitHub has made this possible in a way that Richard Stallman probably never imagined). At first glance this choice seems strange as I assume open source projects get free marketing and exposure by accepting contributions. People promote the things they patch. But, after seeing the recent talk at ng-conf by Igor Minar, a core AngularJS team member, describing “patch overwhelm,” the SAP team might be preserving some team sanity by at least strategizing in advance on how they will accept contributions differently than communities like AngularJS do. For context, Vice President and Global Head of Developer Relations Thomas Grassl said to The New Stack’s Alex Williams that they will begin accepting contributions in about a month. He said SAP originally developed OpenUI5 for internal purposes and has had to change the build process before accepting contributions from the community. Regardless, for all the reasons stated, it would make sense for SAP to resolve this contributor question as soon as possible.