Skip to main content

Command Palette

Search for a command to run...

The Future has Arrived

Updated
•5 min read•View as Markdown
J
An adaptable, dedicated and talented Oracle Developer with strong SQL and PL/SQL skills and over 25 years’ experience. I am pro-active in my approach and have plenty of natural ability, drive and determination so I am an asset to the teams I work in. I love to learn new skills, relish new challenges and have a passion for delivering high quality software with exceptional business outcomes. I love to improve processes and standards relating to release cycles, peer reviews, effective use of source control and other best practices that ensure low risk, high quality software development and delivery.

The rate of change as a software developer recently has been unprecedented in my quarter of a century career. I remember at various times obsessing over brand new features of the Oracle DB in the Oracle Magazine (a printed publication no less) such as the returning clause, results cache and finer grained dependencies. Unfortunately DB upgrades were always few and far between with workplace on-premise solutions, often requiring the halting of ongoing project work and a lot of coordination between various teams and down time etc. While you waited though, you could always pre-emptively comment the new features into your code for when they became available, great. It is only in recent times when I have had the luxury of working on a modern autonomous database which is managed by Oracle.

Back to the Future

I recently had a week off work, when I came back Github Copilot had arrived. Two days later we had upgraded to Apex 26.4 on our development environment. I have to say it is a very exciting time and it feels for me to be an important precipice where there is so much to make use of and discover. There have always been blockers and effort involved in upgrading the toolset but with Oracle Apex and Autonomous databases these are minimised so the benefits can be experienced without the associated rigmarole.

Initial Observations on the Use of AI

I have had recent experiences of searching for coding solutions via a search engine and have had reasonable success in some cases. I have encountered some things for the first time:

  • AI providing javascript commands to be run on the command line in order to debug why something is failing. AI can be very confident on prescribing solutions though and I have witnessed upwards of ten false observations. (This is happening because of x, y, z - run this script to prove this...) - wrong.

  • Code completion that does language corrections (expected) but also provided meaningful descriptive text based on a code and some associated letter text. This behaviour and similar behaviours will improve the solution being offered and make me wonder if this can streamline the requirements gathering process.

  • Installing software on my behalf (it did ask me first!)

  • Creating a new Apex page based on some prompts... Not just the page but supporting objects such as a view and a package. It even checked the application to adhere to existing patterns in our application. It didn't work flawlessly but was a great starting point.

The use of Github Copilot has impressed me - not only does it create pages and components it also inspects the apex application to make sure the solution adheres to existing patterns! When trying to add Oracle Apex and DB skills it was even uploading software onto my laptop.

How Good Might AI Get?

Imagine having access to a team of the best developers in the world at your fingertips. As coders we often work alone (peer reviews aside) and some of us can be considered experts in specific areas. What if we were experts in everything? What if we could automatically access every relevant reference and test our code as it was written. Multiply this by a million.

If We're not Coding then what are we going to be doing?

Although AI is going to outshine human coders it is only going to be able to make the solution we tell it to. Therefore our skills are less about typing every line of code and manually building screens but more about being good at telling AI exactly what is required and iteratively checking the result. At the moment I've been using AI to provide a starting point and then finishing this solution off manually, as I go round this process a number of times I will have built up some guidelines and possibly a library of prompts. It is also doable to provide coding standards that AI must follow. Basically we're the human in the loop, we have to build into our prompts guidance so that AI cares about the outcome.

Exciting Times

Another reason why right now is so exciting is that Oracle Apex has just become AI enabled but the models using it are currently lacking in specific skills and knowledge. As this learning happens we are going to see an exponential growth in the abilities of these coding agents.

What Will Happen When Users are No Longer Human?

As applications can be written by AI it seems likely that AI be writing programs to be used by AI. I say programs rather than applications as there may not be a front end at that point other than a limited application for humans to look at data/reporting and perhaps admin screens to govern the AI functionality. There could even be functionality created as it is needed. As a simple example - AI encounters some data items that are as yet not captured in the system. The relevant agents amend the back end tables and amend the relevant packages so that the new data can be added. This could happen with barely skipping a beat.

4 views