The Future of Oracle Development

{ Came across a wonderful blog by Sten, sharing the same below (original txt is available at http://otechmag.com/magazine/2015/winter/sten-vesterli.html) }

Do you remember the fable of The Three Little Pigs? They had a clear requirement (a house) and choose different tools and architectures.

  • The first little pig chose a sickle and a straw-based architecture, and was eaten by the big bad wolf.
  • The second little pig chose a saw and a stick-based architecture, and was eaten by the big bad wolf.
  • The third little pig chose a trowel and a brick-based architecture, and survived.

As an Oracle developer, you also have a number of tools and architectures available, and you need to choose the right one to avoid having your users and competitors blow the house down.

Oracle currently offers no less that five development tools, plus two much-demoed vaporware tools that will solidify into something we can use Real Soon Now. Your choices are:

  • Oracle Forms
  • Oracle Application Express (APEX)
  • Oracle Application Development Framework (ADF)
  • Oracle Mobile Application Framework (MAF)
  • Oracle JavaScript Extension Toolkit (JET)
  • Oracle Mobile Application Accelerator (MAX)
  • Oracle Application Builder Cloud Service (ABCS)

Do You Really Need Mobile?

Mobile solutions in the enterprise has run through the normal technology adoption curve popularized by Gartner, and has been passing through a peak of inflated expectations where everybody believed they needed mobile applications for the enterprise. Today, most people are coming to the realization that they don’t need mobile, and the whole mobile-first design paradigm is poppycock.

That said, some organizations can benefit from offering mobile solutions if the user interaction is shorter than 2 minutes. However, you only need a mobile app (as opposed to a mobile-friendly web application) if one or both of the following applies:

  • You need to be able to run the application without internet connection
  • You need access to device features like GPS or camera

If these apply, Oracle MAF is a good choice for organizations also using Oracle ADF, because the development paradigm is similar. It also has the benefit over native application development that a MAF application can be deployed to both Android and iOS devices. Oracle also promises to support Windows apps in case anybody starts using Windows smartphones.

If you do not have these requirements, you should instead use one of the web frameworks described below, building specialized web pages for mobile devices of varying sizes.


Choosing a Web Framework

If you don’t need mobile, Oracle offers you four tools to choose from. Each have their strong and weak points, discussed below. For a specific recommendation for your organization, I have created an online test at www.oratoolwatch.com where you can answer ten questions and get a recommendation.

Language Knowledge

The first important consideration is the programming language(s) preferred by you and your team.

  • Oracle Forms uses PL/SQL to implement all business logic
  • Oracle APEX predominantly uses PL/SQL to implement business logic, sometimes with a bit of user interface logic implemented in JavaScript
  • Oracle ADF mainly uses Java for business logic. Almost all user interface logic is implemented in Java, possibly with a smattering of JavaScript. The remaining logic is also normally implemented in Java, but ADF can still call stored procedures in the database, so the typical ADF enterprise application still makes some use of PL/SQL
  • Oracle JET is a pure user interface toolkit and exclusively uses JavaScript. It can only implement user interface logic and depends on some back-end data source, typically in the form of REST web services. These web services can be implemented in PL/SQL, Java, or any other programming language.

Some organizations don’t get any further than this question when evaluating development tools – if it’s not PL/SQL based, they won’t use it. That’s a myopic attitude that might lead you to choose an inappropriate tool. You should look at more than this one factor. Read on.


Size of Development Team

Another important considering is the size of your development team. Applications developed by a single developer do not need any of the application lifecycle management features that more formal tools offer. There will never be a merge conflict or library version collision in an application developed by one person. With it’s code-heavy approach and integration of many different components, Oracle JET is best suited for the solo developer or small team.

Applications developed by small teams can also successfully use light-weight tools where many work processes are handled informally across a desk or on a whiteboard on the wall of the development room. In Oracle APEX development, everybody works against the same database, which ensures that integration and dependency issues appear and are resolved quickly.

Large teams need tools that support full application lifecycle management features, including robust support for versioning control including branching and merging. Oracle ADF is strong in this area.

Oracle Forms does not really support versioning below the level of the individual module or Form. That necessitates a division of labor where only one developer works on a specific module at a time. However, because a Forms application is sharply divided into distinct modules, it is still possible for a fairly large number of developers to work together on an application.


Size and Structure of Application

The size and structure of your application should also have an impact on your choice of tool.

It will be very difficult to build a large application in a code-heavy tool like Oracle JET. A JET application requires a lot of code, and JET does not really offer any application lifecycle management support.

If your application can be easily divided into separate parts or subsystems, you can build it with either APEX, ADF, or Forms. But if you have a large application where you want to re-use components across the application, the modularity of ADF Task flows makes ADF best suited.


Expected Lifespan of Application

Some applications are purely tactical, built for a specific purpose with a defined lifespan. Others are built as temporary solution until a more elaborate replacement is built; these tend to last for much longer than originally anticipated. And some are conceived from the beginning as business-critical, strategic application expected to last for decades.

Oracle JET is a brand-new tool that builds on top of several existing open source JavaScript frameworks. It thus has no proven track record, and is built on a rapidly shifting foundation of open source. It would therefore be foolhardy to build an application with JET and expect it to run for more than a few years.

Oracle APEX has existed for more than a decade and has a large and loyal following among developers. While not crucial to Oracle’s business, Oracle themselves have more than 2,000 active APEX applications running internally, and their customers have many thousands more. You can therefore be confident that APEX is going to be around in the short and medium term.

Oracle Forms was the tool used to build Oracle E-Business Suite (EBS), which still makes Oracle a lot of money. Other development tools from the client/server era fell by the wayside, but Oracle poured resources into Oracle Forms, keeping it alive. Since EBS customers are still paying good support fees, you can expect Oracle Forms to continue to exist as long as there are EBS customers. Forms is therefore also a safe bet in the short and medium term.

Oracle ADF is the tool currently being used by Oracle to build all the products they charge money for – first and foremost the entire Oracle Cloud Applications suite. Additionally, tools like Oracle Enterprise Manager and the My Oracle Support website is built using ADF. This is Oracle’s strategic tool choice, and you can be certain that ADF is going to be around for the long term (10+ years).


User Experience Requirements

Back when computers were less powerful than they are today, we did not have the luxury of building attractive and user-friendly interface. It was hard enough for the computer to pull data from the database, present it to the user, accept changes and store it back into the database. Therefore, legacy systems are data-driven: They have user interfaces that closely reflect the structure of the underlying database.

This thinking permeates many Oracle development tools, especially Oracle Forms (based on the concept of Data Blocks that each have a base table). The same thinking is part of APEX, where many user interfaces are built with wizards that point to a specific table, select columns and then automatically produce pages for query, insert, update, and delete.

This is a fast way of building application because the user interface developer does not have to make many decisions. The table structure gives him the information he needs, and if the user wants data from different tables, it is up to the user to navigate to these pages.

Modern computers have much more power and can easily handle complex user interfaces that do not map directly to the database. These are called UI-driven, and they separate the data access layer from the user interface.

This is more complicated to build, but can support complex user workflows much better. Oracle ADF supports this kind of working very well with ADF Business Components for the data layer and ADF Faces components for the user interface layer, connected with ADF bindings.

Oracle JET by necessity also works this way. Oracle JET can only be used to build the user interface, so it cannot avoid making explicit decisions about which data sources to call for each screen.


Need for Data Visualizations

In the Oracle Developer Suite/2000, there used to be a product called Oracle Graphics. Slow, unstable and bug-ridden, this was not one of Oracle’s finest products and was quietly euthanized.

However, the need for data visualizations did not go away, and all modern development tools support data visualization. Even if modernizing a traditional fields-and-tabs user interface, you should always at least ask the question whether some visual presentation of data would help your users.

Being a JavaScript framework, Oracle JET is able to integrate the latest and greatest interactive visualization libraries. APEX has good charting capabilities, and ADF has an excellent toolbox of many chart types. With the Oracle Cloud Applications team feeding feature requests into ADF development, ADF visualizations tend to run a little ahead of the capabilities in APEX.


Do You Already Have the Application in Forms?

Many organizations making a development tool choice today are already running Oracle Forms. That is a very strong indicator to stay with Oracle Forms – if it ain’t broken, don’t fix it.

However, you do need to keep your Oracle Forms installation up to date. Oracle says in the Forms Statement of Direction: “Users of Oracle Forms versions older than the current release should immediately begin working on a plan to upgrade to the latest as soon as possible.” If you decide not to stay current with Forms, you will sooner or later run into problems when your environment changes. For example, older versions of Forms depend on a Java applet, but Google Chrome has desupported the NPAPI interface that the Java plug-in depends on. There are solutions in Forms 12c, but you do need to stay current.


Are You Already Running an Application Server?

Finally, you should consider your existing infrastructure.

JET is client side only, so it does not require an application server. It does need some back-end data source, but you might get by with a simple web service front-end for your database tables and stored procedures published through a tool like Oracle REST Data Services (ORDS).

Oracle APEX is database-based and needs nothing except the database and a very light-weight adapter. This adapter translates between web URLs and calls to stored procedures returning APEX web pages.

Oracle Forms needs an application server because most of what used to be client-side processing now happens on the server in Forms Server processes. And Oracle ADF is a complicated beast, requiring a full JEE application server. If you want all ADF features, you must run either a WebLogic or WebSphere application server. If the free ADF Essentials version is enough (and it is for most applications), you can use any JEE application server – Oracle recommends and supports GlassFish.


The Citizen Developer’s Options

The demand for applications from the business has consistently outpaced IT’s ability to deliver, leading to an ever-increasing backlog. Over the years, many solution have been proposed for this, usually by enabling IT-savvy business users to create simple applications.

Oracle is also on this bandwagon, and currently have two tools aimed at “the citizen developer:”

  • Application Builder Cloud Service (ABCS)
  • Mobile Application Accelerator (MAX)

Both of these have been announced and shown at both Oracle OpenWorld 2014 and 2015, but at the time of writing (December 2015), both of them had failed to materialize as real products. Oracle has never yet “announced” a product for three OpenWorld conferences in a row without shipping it, so there is hope that one or both of these will become generally available during 2016.


Conclusion

If you think you need a mobile app, think again. If you still think you need a mobile app, you should use Oracle MAF. If and when MAX becomes available, you should immediately investigate it, because many mobile applications are simple enough that a tool like MAX has a good chance of producing something useful.

If you have very high UI requirements, very good JavaScript skills and don’t need an application with a long life, Oracle JET is a good choice.

If you have an Oracle Forms application running, stay with Forms unless specific requirements counter-indicate this (e.g. you have a need for data visualization or specific UI needs).

If neither of the above fits your situation, you should use Oracle APEX for smaller applications and Oracle ADF for larger applications. There is considerable overlap between the kinds of applications that these two tools are good for, so many medium-sized applications can be built with either.

For more specific guidance, feel free to go to www.oratoolwatch.com, register for free and take the Oracle Tools Test where you answer 10 questions and get a recommendation.

Or send me an e-mail to sten@vesterli.com to discuss how I can help you.

Finally, once Application Builder Cloud Service is released, the entire discussion won’t matter. Our business users will build the applications themselves, and we can all retire.

Or maybe not.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s