On 2017-03-28 I visited a local customer who have been using our CRM on-Premise since 2010. The reason for this visit is that they have finished some reorganization and there are some new business process to implement after it. As the current 10 CRM Fiori application could not 100% fit with their business scenario, they are considering the possibility to build some custom application using Fiori, and would like to refer to suggestions from SAP.
Below is the proof I present to our customers why Fiori is recommended ( I translate into English ):
(1). Fiori consists of a large number of UI controls aimed at Enterprise application developed by top JavaScript developers in SAP. Those UI controls pass strict testing by SAP regarding functionality, usability, accessibility and performance. By developing on top of those controls, Fiori application developers can really concentrate on the implementation of their business logic. The final built application have a consistent look and feel.
(2). Fiori is a responsive UI framework, which achieves that develop once, and can run on any supported terminals listed in SAP help. No additional pack and installation is necessary which is inevitable for other open source UI framework.
(3). Fiori won Red Dot Award out of 4680 competitors from 61 countries in Design Concept Competition in 2015, which proves that the UX idea of Fiori has completely been confirmed by UX professionals.
(4). Fiori provides robust role based access control and authorization where the concept of PFCG role is reused. Customer do not need to apply any third party authorization solutions.
(5). Fiori has its dedicated software component and thus the upgrade is decoupled from CRM backend. While the backend version can keep stable, Fiori can be free to keep to latest version to benefit from continuous function enhancement and performance improvement shipped by SAP, no worry about any risks that this UI upgrade can have negative impact on backend.
(6). The maintenance and continuous development ( new function iteration ) can never be ignored in Enterprise application development. There are also lots of tool-sets provided by Fiori to help customer with automation test and regression test, mock server to separate frontend / backend development. All of those help customer improve their development efficiency.
Different voice from customer
The interesting point here is, I do hear another kind of invoice from some developers in customer company. They have different proposals:
backend
still traditional ABAP development. Expose function module as web service via SOAMANAGER.
frontend: Vue

Their argument
(1). Fiori is too heavy especially when used in Mobile. Although Fiori has lots of built-in UI controls with product standard implemented by SAP, however the very controls customer frequently uses are only a small subset of them, and when building custom application especially in China, some product standard like accessibility are not so important. On the other hand Vue has lots of third party open source UI component library like element,



All those open source component library have lots of active contributors and can do the same good job as Fiori, at the same time they are very light weight.
(2). Use Weex ( A framework for building Mobile cross-platform UI, more than 13000 stars in GitHub ), frontend developers can now program with simple syntax to build JavaScript application which has almost the same performance and UX as native application.Its slogan is “Write once, run everywhere”.

UI5 – an “obsolete” framework?
I have free talk with their developers offline and they told me they have already finished some internal project using Vue + Weex and have the feeling that they really benefit from the improved development efficiency and better performance than Fiori. They have the opinion that the way to directly manipulate DOM in JavaScript code like jQuery and UI5 on top of jQuery, is obsolete now. The idea of MVVM in Vue and Angular is the future.
My personal opinion
As a developer myself, on the one hand I consider it is good to hear from customers that some of them have different technical proposal to fulfill their business requirement. On the other hand, during my presentation, I emphasize the fact that we are now building Enterprise application, not tiny application for personal users. Just take Fiori controls for example again. Although it looks quite trivial when taking each control out alone from end user point of view, such as a button, a text field, a label, however behind it the control developers in SAP do spend quite a lot of effort to ensure those control can work perfect on every supported device and every supported version of every supported browser. I am not sure whether this is still the case for mentioned open source component library in Vue ecosystem. Choosing Fiori means you can receive stable and continuous support from SAP, which might not be always available in open source community. I don’t know much about Vue, I am not sure whether it is really mature enough to build Enterprise application.
Choose technology in Enterprise project implementation carefully
In my opinion only students staying in colleague or those fresh graduates tend to make comparison against different programming languages or framework and finally they would like to come to a conclusion that “XXX is best. YYY is obsolete”. In fact I assume that when they say “XXX is best”, they actually would like to express “XXX is my favorite”. In our work we are not doing homework in university where we have freedom to choose our favorite language or framework. Instead, we are building Enterprise application which might be used by tens of thousands users simultaneously. The implementation of such application can last for several years. It is vital that in this area, it is not the “best” technology which must be chosen, but the one which is most fit with customer company’s development resource, fit with development project schedule and implementation, and is most sustainable when taking maintenance and continuous development into consideration. In my opinion I think jQuery based UI frameworks like UI5 have the mentioned advantages in this blog and are not obsolete compared with other listed popular frameworks.
I am eager to hear comments from your side regarding this framework comparison topic.
hi Jerry,
I find your posts interesting, and I was reading a few of them when I came to this one. I’d like to point out that is not just ‘students’ or fresh graduates who makes comparisons.. in fact, anyone trying to stay on the edge do tend to work with different technologies or frameworks and always compare them, pros and cons – even if you don’t make a list of points, we tend to compare in our heads when using them.
Now, I understand you work for SAP and you probably have this feeling of ‘protecting’ SAP and its software, however there is no plausible scenario that UI5 would beat any of the open source competition.. absolutely no scenario, and people need to be extremely naive (or biased) to even try to justify that.
You’ve just compared UI5 with Vue, and somehow you will tell me or you want to preach that doing a jQuery.innerHTML and modifying the whole DOM tree, MULTIPLE AND MULTIPLE TIMES is better than current approaches using VDOM and diff algorithms to only modify the nodes & attributes needed? – The FocusHandler in UI5 takes roughly 5ms to run in my i7-4770k – it takes 5ms to find out and apply focus because UI5 destroys the node. Every single rendering pass in UI5, even when you schedule DOM manipulations to happen to a low threshold per animationFrame (it’s not even animation frame but rather a setTimeout on 0ms) triggers a warning in my Chrome because it exceeds 16ms, which means UI5 cannot hold a steady 60fps, which should be piece of cake for any real optimized framework.
Considering ‘Enterprise Grade’, or an Enterprise Application, you are also being naive.. Somehow you will tell me that UI5 has better “track record” than Angular, React or even Vue? – About the so called controls, you can find really well maintained libraries which implements not “Fiori” but Material Design – I won’t even come into the merit of Fiori vs MD, but chances are, any “Enterprise User” has had some MD experience thru Google Search… this is the “guideline” we’re talking about, just the most used website of the planet uses it.. show “something” outside SAP that uses Fiori please.
Or let’s consider ‘Enterprise Grade’ as a not a tiny application.. because let’s face it, some websites built in Angular & React would be considered “tiny”, like this list here.. https://github.com/facebook/react/wiki/sites-using-react and I will let you find out about Angular yourself.. I mean, whatever you build with UI5, no matter how good you are, won’t come close to serving some websites as big as the ones I’ve listed.. you simply ‘cannot’ expect that a framework that downloads a few mb’s of javascript which the majority you are not even using (due the nature of how libraries are treated in UI5) to be acceptable in a ‘high-traffic’ website.
What happens in reality is, companies running SAP believe that SAP can offer ‘the best’ to them, so most decision maker people do not go into the process to find out pros and cons, they want what’s easier for them to manage, and if everything fails, everything goes wrong they will tell the stakeholders: “I’m sorry, I went with SAP which is a major vendor, I’ve been paying top dollars for developers, it’s not my fault” – even internally, SAP cannot cope with UI5 demand, reason why S/4 1610 now has over 6 thousand “Fiori” Applications that run over WebGUI – or I’d go even beyond, the absolutely majority of “facing” websites that holds the SAP logo are not built with UI5, apart from the SDK (which I’m aware of, so please link something if actually exists!).
About updates, the “contestants” receive quicker updates than UI5.. Angular has nearly the same age as UI5 and it has been thru major changes, to keep competitive and implement up-to-date practices. And as “with Fiori you can receive continues updates from SAP”, this is hardly the case.. with Fiori, you need a FES installed, which in some cases it’s not what happened because on the “decision making document” SAP was still directing some customers to install the FES/GW as embedded.. Considering you have a FES standalone, you’d need a Basis Patch, and every major version of UI5 seems to come with a bump in ABAP Kernel – so this is not practical at all, and because it’s an Basis Patch, every customer would enter in their “patching agenda”, where you need a set date, you need resources to retest everything, etc.. – Consider now Angular, React or Vue.. you download the new version, update dependencies in the applications, re-deploy. DONE, zero Basis, you’d still need to test but good practices would tells you’d have the automated tests.. you run those, this is all that’s been modified.. you can’t do that when you patch basis components, even if they have nothing in common it may introduce bugs in the stack.
I mean, I can write, write, write.. UI5 “could” be good, UI5 wasn’t bad when it came out, UI5 did not evolve and it has to – however, my personal opinion is that SAP would built a new framework that adopts better methods and current market practices and call it something else.
I won’t even go into React Native and NativeScript.. it’s not fair to UI5 as 10 developers working for SAP would never be able to compete with thousands and thousands of developers around the globe working together to evolve the platform.
Keen to hear a reply, either here or by private message!
Cheers,
Dan.
Hello Daniel,
Hi Dan,
UI5 should have ambition to evolve itself. It should have ambition to embrace new technology and methodology. I agree SAP should build a new light framework if UI5 cannot be evolved.
What I am worried about UI5 is that it is deeply coupled with jQuery. It seems hard to adopt to other technologies. I.e. Can tree shaking apply? why?…
Regards,
Hao