DEV Community

Cover image for The Case for Low Code

The Case for Low Code

Ali Spittel on February 24, 2021

Many developers don't like the idea of low or no code, yet they use tooling to dramatically lower the amount of code they need to write. They're he...
Collapse
 
devimposter1 profile image
devimposter

Well written and explained. I think people have been trying to do this forever, they just change the name of it. :P Where I work they are trying to pitch Microsoft Power Platform for low code, but us devs would rather not go down that road really...

Collapse
 
eggorybarnes profile image
eggorybarnes

I'm currently sucked into finishing off a power app and let me tell you, power apps in their current state have no place being used for apps larger the a couple of pages and a handful of simple functions. The main problem with them is there's no transparency on how the logic works and the code you do have to write is done on specific element properties (on select, text, opacity) making it even harder to see where something happened. Not to mention the code is written in an excel style box.

And sure they can pitch them as a way for non devs to build apps but they're too complicated/convoluted to build anything particularly useful. For devs it would be faster to build a quick web app with a framework like nuxt/next.

Collapse
 
cmohan profile image
Catherine Mohan

I am a dev who happily builds many Power Apps and Power Automate Flows. It's a great tool for working within the Microsoft ecosystem and sometimes even outside it. Pairing them together let's you do even more. Add a little SharePoint for data storage and you have a great little tool that doesn't have any extra costs besides the Microsoft license you already have. Flow wraps up a lot of the Microsoft Graph API in easy-to-use blocks, which makes my job faster and lets people who don't know how to use APIs take advantage of them. I will wholeheartedly recommend either one of them.

They do have a learning curve, but really so does every tool ever. The only thing that it's not very good at is processing very large amounts of data. That'll break it. That's when I break out Powershell or C#. Other than that, I've had much success implementing Power Apps and Power Automate processes in my projects.

Collapse
 
kspeakman profile image
Kasey Speakman • Edited

Thanks for the great article.

I like to think of this as a spectrum between Configuration and Code. Full configuration has a large learning surface area with all the app-specific configuration options and their supported interactions. The learning curve is more appropriate for non-devs since you only learn app-specific stuff without bringing in the universe of dev things. Configuration is essentially an app-specific programming language.

Note: Full code solutions typically have some non-trivial configuration files. Many of us will happily let "uninteresting" problems and slow-changing options live in configuration. For example, dependency resolution.

I think another reason that developers tend not to like no/low code solutions is because they are used to having the full power of a programming language. Low code necessarily has some restrictions. And no code tends to have limited supported interactions. There is a frustration in knowing how easy something would be in a different context but how hard that same thing is with no/low code.

I like your idea of taking a no/low code prototype and translating it into full code for further development. I think we can see the beginnings of that kind of thing even in the developer space with projects such as Create React App.

Collapse
 
sshine profile image
Simon Shine

I like to think of this as a spectrum between Configuration and Code.

I'd like to phrase this in a more agnostic way, because I think of "code" and "hand-waving" as being the two ends of the configuration spectrum.

Another angle to this discussion is Infrastructure as Code where you seek to codify all software configuration. We would like to run software with as few hand gestures as possible. Drag 'n drop achieves the ease and high short-term value-to-customer ratio, and IAC achieves revision control, reproducibility and high long-term value, but at a steep learning curve.

There is a point in the distance where these two meet for smaller scale projects, so that the configuration and customization of e.g. a WordPress installation is separated from content and versioned appropriately.

Collapse
 
toonarmycaptain profile image
toonarmycaptain

It's a huge spectrum. I've seen comparable arguments regarding languages like Python compared to C. Python gives you both dictionaries and memory management/garbage collection for no code/free. Sure, you can import a 3rd party dictionary implementation in C, but by the same token you can write your own in Python too, and then rewrite it in C if your Python implementation is too slow.
I see the ideal no/low code solution similarly - GUI, but customisable all the way down, much like I can write <html><p>hello code</p></html>...but then I can add styling, pick font, pick alignment etc going more and more custom mostly via gui, eventually using the GUI to specify a custom font file I made, all the way down to a custom vector drawn font that responds to the screen size and cursor/touch inputs.

Ideally this would be some sort of code generator/editor that can recognise where the generated code has been customised/extended. Maybe a star next to representation in the editor where you can right click and see/edit the customised code.

Collapse
 
heyitry profile image
Joshua

Nobody builds an iOS app without Interface Builder these days, platforms like PowerBI are built in such a way that they can start out as a simple but well-formed spreadsheet, and people have been building applications with Excel and macros forever. People using any of these examples are as much programmers as the people who include a handful of node modules/libraries to form the structure of a node server or webapp.

This is a great guide to the frontier of applications and developers to come, as well as an acknowledgement of the reality of what's needed to make those applications and to be those developers. Awesome write-up, Ali!

Collapse
 
cmohan profile image
Catherine Mohan

Thanks for the great article! I am really excited to see where the low-code / no-code space is going. I love using it in my work and I've made some pretty fun things using Microsoft's Power Automate. Custom coded apps can sometimes come with a lot of overhead and time so I don't like to use them unless it's absolutely the best option for the task.

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

Like you I came with the assumption low/no-code is bad but it's really just another way to deliver value to the user.

Collapse
 
koas profile image
Koas

Great article! I can't agree more, we developers are always looking for ways to write less code but it seems that those ways are only legit if they're written by us.

Collapse
 
starpebble profile image
starpebble

Nice. My feedback: User land can be exciting. Possibly in the future people are going to like building tiny pieces. Not the whole app all by themselves.