Low Code – an APEX developer’s perspective

Craig Sykes Apr 8, 2020 9:22:37 AM

We recently received the following questions from a customer:
  • What does low-code mean?
  • Low-code seems to be a new marketing phrase for RAD how do developers interpret it, what is the value? What is the perception?
  • Does low-code project an inferior coding standard compared to “high-code”?
  • How does APEX tick the low-code box, how does it go beyond that?
  • How does database development traverse both low-code and complex development?

These questions really got us thinking, so after doing the research to create an informative reply, we thought it would be good to share our answers with the community in the form of a blog.

What does low-code mean?

Low code is a software development solution which provides a higher abstraction than the “classic” programming languages to build applications, it allows the developer to create applications in a graphical drag-and-drop environment without neglecting the possibility of customisations with hand-coding.

It’s like building a house with prebuilt components if you have a lot of time and budget to spend you wouldn’t waste time cutting trees, polishing the wood, cutting that again only to create a door. Instead, you would rather spend time thinking about the functionality of the house for the people who will live there.

Low-code seems to be a new marketing phrase for RAD how do developers interpret it, what is the value? What is the perception?

Developers don’t particularly see RAD tools as “low code”. We aren’t necessarily going to be writing any less code each day, the tools just allow us to focus on the business-specific areas of functionality and write important, custom code. So we might write 7 hours of code each day, but we get a lot more done!

Low code frameworks allow the developer to use reusable components to quickly build the outline of an application, spending the majority of development time focusing on business logic or particular UI requirements.

There is a trade-off between speed and customisation that is made when deciding to use a RAD tool and the aim is to find the sweet spot where you are generating enough code to speed up project delivery times but using enough customisations to make your application feel bespoke.

Some developers do however express concern over the fact that RAD tools provide generated code that you don’t have full control over and that you are also tied into the platform once you have started to use it.

Does low-code project an inferior coding standard compared to “high-code”?

This a very common argument from people who are against low-code but it is far from being true. Good quality low-code platforms are written with high standards.

When building applications with a low-code framework the developer has to worry only about their own code which is easier to keep to good standards because there is a smaller amount of it. Fewer lines of codes means less maintenance cost.

For example, for a simple application, we could use the declarative Authorisation scheme APEX has and we do not have to code anything. If we are not satisfied with this we could implement a fine grain authorization scheme but we only need to worry about the logic to test whether the user has privileges in the component, we don’t need to code how to attach it to each UI component, how to send that information to the server etc. APEX will handle those problems with good quality code.

At the end, it is not possible for all companies to afford well-trained developers to create applications with high standards, but with a low-code platform, they could implement a policy to reduce the amount of hand-written code and still have a good quality application.

How does APEX tick the low-code box, how does it go beyond that?

Here is a pretty comprehensive list of the main benefits of using a low code framework: https://lowcode.com/benefits/

As you can see, APEX ticks every single box here, but it also does a lot more. Because APEX is a component of the Oracle database, it comes with all the power and security provided there. It also means that you have the full development stack at your fingertips. You are not only using low code to speed up the development of your application’s UI, but you are also giving yourself the time to rapidly build a whole system.

Some low code tools allow you to build applications on top of APIs only, but because APEX is closely coupled with the database, you can use PL/SQL to directly interact with the database to implement complex business logic. Having said that, you can also base your APEX application on APIs if you prefer.

On top of this, APEX applications are fully customisable. If a project requirement can’t be achieved using the in-built components, it is possible to extend your application using HTML, CSS and JavaScript. APEX is just a web framework, so it’s really easy to integrate any other web technologies and make your application look and behave exactly how you want it to.

How does database development traverse both low-code and complex development?

This question leads us to our conclusion – low code gives us the best return on investment when creating bespoke applications.

We can quickly build large parts of the application using the reusable components and then concentrate our expertise and effort on the complex, business-related pieces of the development. The database developer can jump in and out of low-code and complex development seamlessly using APEX because it is so closely coupled with the Oracle database.

Using APEX, we can create enterprise standard web applications extremely quickly and use the associated technologies such as PL/SQL, SQL, JavaScript, HTML, CSS to extend the APEX components and fulfil our customers’ needs.

 


 

Author: Craig Sykes 

Job Title: Senior Oracle Development Consultant

Bio: Craig is a Senior Development Consultant at DSP-Explorer. Craig has an MSc in Computing Science and is an experienced software engineer, utilising development tools such as PL/SQL and APEX to provide bespoke ERP software to both UK and international businesses. Craig has experience developing solutions to connect Oracle systems to a wide range of existing external applications within business environments.