(Originally published on Forbes)
Low-code development environments are ideal for scientists or academics who need to solve complex problems with a minimum of coding knowledge, and for business users who don’t want to wait for IT to write them a new mobile app. You might think these platforms can’t offer much for experienced software developers—but you’d be wrong.
Low-code and visual programming environments have proliferated around a number of use cases, with a steady influx of tools, including Google App Maker, APPIAN, and Oracle Visual Builder Cloud Service.
Just what constitutes a low-code environment is a point of debate, but for our purposes, any tool that lets you build and deploy a working app without writing a line of programming code qualifies. From prototyping to productivity, here are nine ways “real” developers can gain from low code and visual environments.
1. Solve a Problem Faster
These days, making the developer experience delightfully productive is a top priority. In fact, there’s a blurring of lines as traditional development environments begin to offer more visual elements, while low-code visual tools boast greater extensibility. Serious developers can use a low-code tool to quickly build an app that reflects the UI, objects, and forms you’re working with, even if it lacks the full functionality you’ll eventually want.
“You can use this as a way to communicate with your customer or end user to ask ‘Is this what you are looking to get?’ Then you can develop in a high-code environment in a way you’re comfortable with,” says Shay Shmeltzer, director of product management at Oracle.
2. Help Customers Help Themselves
Endless feature requests are the bane of every developer’s existence. Low-code approaches can let end users do simple customizations themselves. “One of the nice things about low-code platforms is that you’re able to connect to REST services you expose. So you take those REST APIs, make them available in a low-code environment, and the business user can get off your back,” says Shmeltzer.
The end user gets access to the programming interfaces and a low-code tool that lets them extend the application in a way that meets their needs, often using data from a full-featured application that developers have created.
3. Start Code-Free, Then Scale Out
Many cloud applications depend on common user interface components, and a low-code platform can provide a UI architecture that lets you design, reuse, and extend components for native mobile and web applications.
4. Grow Your Expertise
Developers often worry they’ll hit a ceiling in terms of capability with low code, and that can prove true. “Low-code tools limit you in a way. They are optimized for one domain. When you hit a problem, you have to break out or hire an expert,” says Michael Hoffer, a research scientist at Goethe University in Frankfurt, Germany, and the creator of VRL Studio, a Java-based visual programming environment. At the same time, however, Hoffer believes the right low-code tool gives developers the ability to get up to speed quickly in a new technical area, experimenting without a huge time investment.
For example, Hoffer and his colleagues use the visual environment he’s created with VRL Studio for tasks ranging from brain chemistry simulation on high-performance clusters to 3D printing of glittering, tessellated plastic fabrics.
“So-called ‘real developers’ are experts in some domains and not in others, so it makes sense to explore a domain in a guided environment that hides some complexity,” says Hoffer. “I don’t like the distinction between a ‘real’ programmer and a ‘non-real’ programmer. What is your expertise? If you have never done cloud development, Oracle’s visual tools might be a good idea even for ‘real’ programmers.”
5. Mind the Gap
But how do you avoid getting trapped by your low-code tool, stuck with an app that lacks the features you really need? Understanding that risk, and helping non-developers understand the limits of low code, is also a valuable role for experienced developers to play. Help your organization choose one that offers more than just window dressing. Hoffer points out that the term low code is not exactly what he does with VRL Studio, because it “assumes that there is a gap between the visual environment and the code. In the environments I write, I try not to even open that gap.” In other words, an effective low-code environment should seamlessly connect source code to visual drag-and-drop representations.
“The environments I write just give you the necessary visualizations for APIs,” Hoffer says. “…Everything has some kind of user interface, even it’s a command line. Behind that sits an API that has been developed or generated. What I like is to automate this process. Any Java API can just be visualized and explored.”
6. Avoid Redundant Front-End Development
Developers grind out tons of intermediate code to display images and graphics that represent the data in their programs. But often there’s a front-end developer or team leader who later decides what the end user sees and what stays behind the scenes. Low-code environments automate GUI grunt work that a front-end developer will likely override anyway.
“Everything you do [for front-end] is totally repetitive and that’s what computers are for—they should do the repetition and the automation,” says Hoffer.
7. Connect to Heavy-Duty Enterprise Applications
Taking advantage of the so-called “API economy,” many Silicon Valley darlings are doing nothing more than assembling REST-based web services into powerful applications. A good low-code platform lets you use that same strategy, or quickly create new business objects that meet your own custom data requirements and validation rules. In Oracle Visual Builder Cloud Service, for example, you can also take advantage of its scripting capability to define business rules.
From his vantage point, Mike Lehmann, as vice president of product management for Oracle Cloud Application Development and Deployment, is seeing enterprises increasingly use low-code apps to tap powerful APIs.
“We see a lot of intertwined use cases where customers are building a low-code application that needs some integration with an existing enterprise application or into a new cloud-native application. Having a visual development tool that easily consumes those applications via REST APIs is hugely enabling for companies,” says Lehmann.
8. Teach—and Learn—Declarative Programming
As the Roman philosopher Seneca put it, “While we teach, we learn.” Sharing the love of programming is a powerful way to improve one’s own problem-solving skills. Scratch from MIT is one of several low-code languages designed to introduce children to programming. Hoffer offers a warning, though: While these “are very good for the first step, then they force children to switch to a textual language. This is a downside of these environments because you have a very hard break in the learning.”
Low-code tools also encourage a problem-solving style that is gaining prominence in the age of utility computing: Declarative programming. The opposite of imperative programming, declarative programming tackles the what (for instance, show a price for an item in an app) rather than the how (the command lines needed to show a price). Even high-code enterprise Java tools such as Oracle Application Developer Framework now aim to provide a visual and more declarative development experience.
9. Find Your Flow
“Real developers” care how their code looks—witness the endless debates about formatting with curly braces. Productivity hinges on the ability to quickly home in on relevant passages of code. And with user experience now so critical to success, visualization tools are increasingly popular.
In the enterprise Java environment Oracle JDeveloper, for example, a developer can look at JSF pages (JavaServer Faces, a component-based UI for web apps) either in source code or in a visual design view. And a developer can do the same thing for JSF page flows. “The page flow definition is an XML file, but you’re able to have a meaningful discussion about it if you can actually see the flow as a diagram,” says Shmeltzer. “Those aspects don’t prevent you from seeing or manipulating the code, rather they translate it into a picture in front of you,”
Some developers even say that a low-code, visually pleasing environment helps them achieve that elusive “flow” as they solve ever more difficult problems. Hoffer notes that he’s not creating a new programming language, he’s providing a visual layer to the existing language.
“It’s very important to look nice. It’s really hard work to make things beautiful,” says Hoffer. “Just like with textual environments, if developers have to look at it all day long, beauty improves productivity.”