A declarative development tool
APEX is a declarative tool. It means that we, as developers, concentrate more on the "What needs to be done", and less on the "How to do it". Think, for example, about SQL. In a SELECT
statement, when we are using the ORDER BY
clause, we are actually telling the database what we need - a sorted data result set, but we don't tell it how to actually do the sorting. In fact, the entire SELECT
statement, just like SQL itself, is a declarative statement. In APEX, we are telling the Application builder that we need to lay out an HTML item on the page, or retrieve certain records from the database, and the APEX engine generates the proper code for doing that, both on the server side and the client side.
Working declaratively in APEX means that we are not generating traditional (3 GL) program code. Instead, we are working with a series of wizards and property sheets, which allows us to define all the metadata we need in order to generate an application page's code. APEX includes sets of pre-defined wizards, supported HTML objects, supported database objects and data types, page rendering options and procedures, after submit processes and DML options, navigation and branching options, and more. We can use all of these to declare our application page's forms, reports, charts, etc., with their layouts and application/business logic. The APEX engine translates it all into an HTML code for the client side, and SQL and PL/SQL code for the server side. Whenever the predefined options don't give us the exact solution we need, APEX allows us to use our own SQL and PL/SQL code for the server side, and HTML/XHTML, CSS, and JavaScript code, for the client side. As mentioned before, it also allows us the use of AJAX technology, within a built-in framework, to query the server side, while running on the client side without submitting the page.