Technology

SAP’s OpenUI5 JavaScript Library is Surprisingly Well Done, Comparable to AngularJS

24 Jul 2014 10:42am, by

I really wanted to hate the SAP OpenUI5 Javascript library introduction at OSCON yesterday. I’m an AngularJS zealot (and I love the brilliance of ReactJS). The SAP team started off with such great fodder for my expectations with their presentation with an unexciting application that bragged about the German victory over Brazil in the semi finals of the World Cup.  That did not sit well with me. Despite my German heritage, after living in Brazil for a year, I now consider “meu coração é brasileiro.” So just a few minutes in, SAP was already down a goal in my book.

There are things about the SAP UI5 library that worry me. Often times they said things like “very little code” when the font size was so small no one in the first row could see the text and this obviously represented only a portion of the code for that particular demo. The SAP team has a strange approach to open source and forks (more on this below). Their testing story was uninspiring when compared to something like AngularJS. There are issues with the SAP UI5 library, but in the end, there are a lot of good things. Actually, a lot more than I would have imagined, and that says a lot about a new open source entry in the world of full stack client-side JavaScript libraries.

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
  • supportability
  • internationalization and right-to-left support
  • accessibility
  • extensibility
  • theming

Situating QA as the first offering is a high standard to reach, a standard set by AngularJS. No other framework offers the test coverage that AngularJS does, and no other framework offers the ability to test JavaScript better than AngularJS. But, the SAP team is thinking about testing and stated they test their code against a large matrix of browsers, including IE9, which means they are at parity with AngularJS. Though SAP does not publish their test statistics (this is a big deal to me!), the test cases are included in the download of the OpenUI5 framework. When I asked in the QA session about their testing recommendations, they said they recommend Qunit and Selenium. I’d say they get a C+ for their testing story: their intentions are good, but the delivery is lacking (but could easily improve given their trajectory). And, given the wide variety of needs that enterprise customers of a company like SAP, I would bet they will iron out the kinks and have good either through manual or automated QA.

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.

I was less impressed with the code examples and “extensibility.” Without digging deeply into the documentation, it would be difficult to compare the component libraries and there was code which was not explained fully in the demo. I liked that there were imperative code samples (pure JavaScript) and an XML declarative syntax, offering both methods of building applications using the SAP components. If you are worried about usage of the word “XML”, it looked closer to custom defined tags like AngularJS directives than namespace hell tinged XML documents like you might see in a Microsoft specification. I can’t vouch for the efficacy of the declarative code but I liked that these options were available.

Theming was very impressive. The SAP team displayed their “theme designer” which was tightly integrated with the component library. Their demonstration about how to change theming was powerful, looked simple, and displayed a deep integration with the SAP JavaScript components. I am sure SAP sales engineers will be demoing this hard when they do on-site client explanations. Most importantly, the theming is built on LESS, a standardized and open tool for maintaining CSS libraries. Coupling a great GUI like the theme designer with tried and true command line tools like LESS is a winning combination that will attract all types of developers and designers to the OpenUI5 library.

Screen Shot 2014-07-23 at 3.16.47 PM

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.

I came in with low expectations, but the SAP team delivered a beautiful presentation showcasing the power of their newly open sourced OpenUI5 tools. If I were considering an enterprise class JavaScript toolkit for building responsive and powerful web applications, SAP OpenUI5 would be at the top of my list. I would even recommend it to my Brazilian friends.

Feature image via Flickr Creative Commons


A digest of the week’s most important stories & analyses.

View / Add Comments