By Tom Haunert
Do you remember two-tier development? Three-tier development? N-tier development? Dividing development into tiers formalizes code and expert separation on development projects. But what if that application code separation did not require different experts for each tier, each datasource, or each new deployment target?
Oracle Magazine sat down with Mike Hichwa, vice president of software development at Oracle, to talk about the concept of full-stack development, the skills of a full-stack developer, open source development for Oracle Database, the effect of autonomous databases on development, and more.
Oracle Magazine: Traditional application development often splits dev responsibilities between an app team and a database team, but what is full-stack development? And what is a full-stack developer?
Hichwa: Historically there has been a divide between front-end and back-end application development. You might refer to that divide as client/server, where one team might have specific skills for client development and build out the client application while another team has server skills and is responsible for the server side. And that split made a lot of sense, because, for example, you might have five different applications that connect to the same database or back-end system of record, and you might have one team that would maintain all of the application data on the server, make sure that all the server access from all the client applications was secure, and so on.
But as is always the case, whenever you have split responsibility you can have some inefficiencies.
For example, an application developer could ask a DBA to add an extra column to a database table, and that process could involve logging a ticket, getting approvals, and still more time-consuming steps. Split responsibilities don’t always create the fastest solutions.
And today, people want everything on the web, they want everything to be responsive, and they want mobile interfaces. And of course, the people who want these new systems want them yesterday. There is a lot of pressure on application developers today to get the user experience and user interface right and do it quickly. Frequently, when today’s developers are building out new systems, it’s just easier to control both the front end and the back end. When the same developer is responsible for the application front end and back end, that’s a full-stack developer—a developer jack-of-all-trades.
Oracle Database doesn’t have a favorite client. We want to support every client as best we can, so we have database drivers for every popular language, including Node.js”
This kind of general expertise across the front end and back end would have been difficult in the past, but now in the cloud, a lot of things are much easier than they used to be. For example, getting, installing, configuring, and provisioning a new on-premises server used to require a purchase order, approvals, delivery, installation, and a lot more. But today, I can simply go to cloud.oracle.com or my favorite cloud infrastructure provider and within minutes get access to infrastructure components and an operating system on a server.
What the cloud has done for the traditional back-end responsibilities means that today’s full-stack cloud developer can do in minutes the things that used to take days, weeks, and months. That opportunity has also contributed to the rise of the full-stack developer.
Hichwa: It’s important for Oracle Database to support any and all clients, and we make sure that we support everything that’s popular. Oracle Database doesn’t have a favorite client. We want to support every client as best we can, so we have database drivers for every popular language, including Node.js.
You can also get drivers for PHP, Python, C, C++, PHP, Argo—you name it. You can go to the database application development page on oracle.com, and you’ll find pointers to all the drivers and all the links to gain access to each driver.
The popularity of open source frameworks and languages is also great for developer productivity. Members of the open source developer community who are from different companies and regions and who are working on different types of projects contribute lots of code examples on places such as GitHub, their blogs, and other locations—they share. And then as those developers gain experience, they often publish their own best practices or frameworks that allow other developers to do things more easily. Developers don’t need to build stuff from scratch; they can pick up and start with something that someone else has already done.
Cloud makes full-stack development easier than before. So do autonomous database services.”
Oracle Magazine: Oracle is now offering autonomous database services. How do autonomous database services change the developer strategy or development operations for full-stack development?
Hichwa: I mentioned earlier that cloud makes full-stack development easier than before. So do autonomous database services.
With the autonomous database comes the idea of near-instant access to the database technology—within seconds. A few clicks, and you can create an autonomous database that’s fully managed and includes all of the high-availability, disaster recovery, online patching, and elasticity properties of Oracle Database cloud services.
And if your organization’s full-stack developers are not database experts or are simply tight on time, an autonomous database can automatically tune the database—thus taking a highly specialized and labor-intensive task off the table. But over time, production databases grow and may be used in unexpected ways. An autonomous database, however, tunes itself as it grows based on actual usage patterns.
Oracle Magazine: Oracle offers different drivers, services, and frameworks for developing Oracle Database apps. What are the key technologies, and whom are they for?
Hichwa: For core data access, there are drivers, which I mentioned earlier. There’s a JDBC driver for Java, a Node.js driver for Node.js, a PHP driver for PHP, and so on.
And then there are higher-level tools. One of the most popular tools in the Oracle development community today is Oracle APEX [Oracle Application Express]. Oracle APEX enables developers who are comfortable with SQL to create modern, responsive web applications quickly and with great fidelity.
Editor’s note: Refer to the Oracle Database Application Development page for information about and links to database development languages, drivers, and tools.
LEARN more about Oracle Autonomous Database Cloud.
Photography by Joshua Roberts/Studio at Getty Images for Oracle