I run an online Oracle Tool Selection Test at www.oratoolwatch.com (free registration required), where people can answer 10 questions and get a tool recommendation. I've noticed that very few come away with a recommendation to use Oracle JET, so let me describe who should use Oracle JET.
Oracle JET is a good choice if:
I disagree with the arguments/reasons you are providing to choose JET:
- JET does come with a standard look (Alta), many advanced UI components and DVT's as well as built-in behaviors, quite similar to ADF. For example just take a look at the JET table component.
- The JET component are customizable through CSS, but you do not have full control over the HTML markup produced by these components.
- The more exotic your user interface requirements, the less you can leverage the JET UI components, and the less reason to use JET, I would say.
So, while your main argument to use JET is total flexibility, mine would be almost the opposite: increased developer productivity because of the rich set of components and their nice built in behaviours. If you want total flexibility, you shouldn’t use any framework or toolkit at all.
You state “you have to write a lot of JS to make things happen”. Sure JS-based development is intrinsically more code-centric than declarative development, but that doesn’t mean the complete development/test/debug cycle is less productive. We all know the dramatic drop in productivity once an ADF developer can no longer use drag-and drop to achieve his requirements…
Some things will be more time-consuming in JET, some things will be more time-consuming in ADF or APEX, but my own development experiences so far with JET do not indicate that it is less productive to build UI's than ADF.
There are some other important criteria I also would take into account when it come to (Oracle) development tool choice:
- Mobile-enablement, can the same tool be used to build web apps, mobile web apps and hybrid on-device apps . Does it support (advanced) touch gestures (Only for JET all answers are yes!).
-Availability of programmers and average hour rate of these programmers. This is also a significant factor for “the budget”. There are millions of "cheap" JS developers, and just a couple of thousand "more expensive" ADF developers.
- Architecture: Client-side technologies like JET are fundamentally different from server-side technologies like ADF/APEX. This has implications for performance, and client-side and server-side CPU and resource usage. Would you build a public internet facing site using ADF? I wouldn’t.
- Developer learning curve: To become a proficient ADF developer who knows how to build things the right way in ADF, you will need 3-6 months. An average JS developer will be up and running in a week with JET, because JET is based on popular open source fwk's,like Knockout and builds on common concepts in JS world like modularization and routers for single-page apps.
(I took me 2-3 weeks because I was a JS newbie with no prior knowledge of relevant JS frameworks)
- Required compliance with accessibility standards
- Required compatibility with browsers and browser versions.
Of course this list could be much longer, but with these additional criteria in mind, I am pretty sure many more would choose JET.
Not to mention that ABCS and MAX will produce JET apps, so if companies are looking for empowerment of business users than JET is an even better choice because you then have in-house knowledge to beautify/complete the draft apps created by business users.
Oracle Mobile & Cloud A-Team.