Will low and no code tools ever truly disrupt tech development? - Stack Overflow blog

Title

  • Yes

    Votes: 4 11.4%
  • A little

    Votes: 10 28.6%
  • No

    Votes: 21 60.0%

  • Total voters
    35

awoo

Please be patient, I have awootism
True & Honest Fan
kiwifarms.net
Joined
Apr 20, 2018
Every so often Stack Overflow blog actually has some thought-provoking and nuanced tech discussion. The comments are spicy too and worth the read. https://stackoverflow.blog/2022/08/...ols-ever-truly-disrupt-tech-development/?cb=1



Nearly everyone working in tech has an opinion about low and no code tools—believe me, I asked. Whether they code or not, low/no code incites some kind of reaction. For something designed to be so simple, its existence is surprisingly complex. Over the last several months, I spoke with developers, engineers, data analysts, CEOs, designers, and marketers about the topic. I’ll share some insights from those conversations with you here.

First, maybe a little bit about me. I’ve worked in tech for over a decade, always in marketing and communications and almost always alongside security engineers and developers. I consider myself moderately technical, but I don’t code (much). I reported a vulnerability, but I couldn’t patch it. I built a website, but I never pushed it live. I learned early in my career that research is the key to everything. So the more I heard rumblings about the rise of low code/no code, the more I researched.

Admittedly, low code and no code both seemed like ridiculous concepts at first. Low and no code couldn’t possibly mean little to no code. It means little to no visible code. I’m a moderately technical communications person in tech, so I’ve used tools like Zapier and content management tools to build things that work and aren’t the worst. The broader question remains – how will low and no code tools shake up tech development? After countless conversations, I concluded that…drumroll…it won’t.

Accessibility for building requires accessibility for learning

Low code and no code tools are designed for people like me or the couple running a pottery shop down the street. We need something easy, maintainable, and we’re not reinventing the wheel. We’re just trying to get something up and running. That means more people will be interacting with code, but not necessarily coding from the bottom up.

“The first and most tangible impact of low code comes down to accessibility,” says Matt Kiernander, Developer Advocate at Stack Overflow. “Empowering your non-software engineering folks to change website copy, build their own automations or applications all help to increase exposure and familiarity with the technology that powers your business. This exposure by extension gives citizen developers a sense of empowerment, autonomy, and ownership that was otherwise unattainable.”

This, of course, has pros and cons. The sheer number of people touching code or building what they need will grow significantly. That can be empowering, like Matt said, and chaotic. Someone building a simple automation or a quick personal website can take something and push it live quickly. When that’s not enough, things get dicier.

“One of the seemingly inevitable side effects of making software easier to build is that you tend to sacrifice customizability and a much deeper understanding of how the software works,” Jon Chan points out, Stack Overflow’s Director of Engineering for Community Products. “Low-code/no-code tools tend to look for a general use case and that can restrict how flexible that software can be: there seems to be a tradeoff between ease-of-use and control in all of these tools that I haven’t seen anyone tackle really well (yet).”

With tools available now, people will mash what they can together to create what they need, learning in real-time to get enough context to understand how to get something to work.

“Early developers blindly using low code or no code tools without learning the fundamental principles of writing code will inevitably hit a ceiling,” Stack Overflow CEO Prashanth Chandrasekar noted in his recent quarterly update. “Particularly when they have to unpack what they created.”

No and low code users will still need developers and engineers to help build their dreams. That brings me to the second big concern from developers: do low and no code tools lower overall dependency on developers? What does that mean for their jobs?

Jon reassured, “As it stands now, there seems to be a tradeoff between ease-of-use and control, and until someone figures out how to remove that tradeoff, there will always be a need for engineers who can fully manipulate software to meet the full range of use cases businesses (and individuals) need.”

Ultimately, this means that developers will be focused on more complex, hopefully interesting, work. At least in theory.

Primary concerns: work and also work

Anyone marketing a low or no code tool to developers is targeting the wrong audience. But like we’ve seen with so many tools over the years, tools used for hobbies will eventually enter the workplace. Will we start seeing low and no code tools disrupt developer workflows?

“I would be very concerned trying to use low/no code tools for software projects where performance, scale, security etc. are involved,” said Ellora Praharaj, Director of Reliability Engineering at Stack Overflow. “These tools are not designed for dealing with large amounts of data or lots of dynamic updates or for scenarios where speed matters. The low level implementation details are abstracted away from the user which makes it easy to use, but not suitable for agile development.”

With more people cobbling together what they need and learning as they go, there runs a risk of compromising security or something simply breaking without a ton of visibility into why.

“While I see low code tools being able to help data scientists and analysts iterate or experiment quickly, I do not feel comfortable using a no-code tool,” says David Gibson, a Senior Data Scientist at Stack Overflow. “Dealing with any analysis or machine learning model requires complete visibility into code and the data sources used to generate the output. Code creates a roadmap for how a number was generated. If I’m looking at a query, I can easily double-check the logic. Double checking a series of mouse clicks becomes substantially harder to check.”

TL;DR

Developers will never be out of work. Low and no code tools are making building tech more accessible, but it isn’t agile or flexible enough to replace developers.

“I’ve been hearing about low-code solutions for 30 years, only they had different names back then,” Stack Overflow CTO Jody Bailey shared with me. “I do believe low/no code is useful and it will continue to get better. Is it going to replace developers? Not in the near future, but I do believe over time it will change the skill sets required to deliver innovative tech solutions. But just like we still have developers writing assembly and C code today it is hard to imagine a time when we don’t have people writing “real” code themselves.”

The rise of low and no code tools with non-engineers will prompt more people to learn coding languages as they are building, but there is plenty of work to go around.

“There are lots of benefits to low-code platforms,” Prashanth Chandrasekar noted. “More specifically, it makes building technology more accessible to so many people. As we look towards the future, we’ll see more people developing technology than ever before, but the need for context will undoubtedly remain consistent.”

In the last 30 years some of the world’s oldest companies transformed into technology companies. General Motors, Goldman Sachs, Liberty Mutual, for example, were all non-traditional tech companies that are now leading their respective industries in tech-led innovation.

“As more people learn coding languages, perhaps prompted by low code tools, the more innovation we’ll see across industries,” Prashanth said. “Learning is the key. Developers that make the choice to learn will rise to the top.”
 
Last edited:
Low code is OK at what it does, but only as long as you stay in the realm of things it's been designed to to.

Want to add a 3 second delay between actions? No you can't do that the devs never saw it fit to add a sleep function and if your try to DIY it yourself then you'll lock up the whole computer.

Want to store a variable? OK but have fun fighting the tool and it's automatic type casting. And don't you dare try to use JSON to track multiple variables, the string escaping doesn't play well with all those quotes!

And half the time they don't even give you a proper error message because the error occurred at the wrong level of execution to catch. Which to be fair happens with Real code too, but at least with real code I can dig deeper until I get to the error instead of asking the low code tool's developers to investigate what the missing error said.

E: My complaints are specifically after using the coding portion of a low coding tool, so in theory I should already be able to do what I want but no, even allowing me to write code within the low code environment is too restrictive.
 
Last edited:
Low code is OK at what it does, but only as long as you stay in the realm of things it's been designed to to.

Want to add a 3 second delay between actions? No you can't do that the devs never saw it fit to add a sleep function and if your try to DIY it yourself then you'll lock up the whole computer.

Want to store a variable? OK but have fun fighting the tool and it's automatic type casting. And don't you dare try to use JSON to track multiple variables, the string escaping doesn't play well with all those quotes!

And half the time they don't even give you a proper error message because the error occurred at the wrong level of execution to catch. Which to be fair happens with Real code too, but at least with real code I can dig deeper until I get to the error instead of asking the low code tool's developers to investigate what the missing error said.

This is it right here. These tools are popular for things like websites because they can take a pretty good guess as to a solution that will cover 99% of your needs. What most businesses suffer from in growing pains is when they hit that 1%, it's basically a brick wall where the company that makes the app/platform/whatever tells them to fuck off. Companies just dump all their money into sales and sell it to customers they know will inevitably have a problem with it. I used to work at a semi-scam web dev company where they knew to sell customers on a shitty Hubspot website, they knew that 6 months down the line they would ask for some seemingly basic feature that didn't exist on the platform, then just tell them, whoops time to send you a quote to re-do the whole website in Wordpress.

Error messages are also a part of history now, you'll never see them again because curries know having usable error messages will mean that HR can figure it out if they fuck something up, which is all the time. The only "error message" you see nowadays is "Please try again later." As it's designed to get you to not think and be a good little customer and not put in a complaint.

The best way to get everything of both worlds is to add something like hooks into every conceivable before and after action on everything. Then you can run your own code and basically extend the low code app, so you can get the benefit of using what they have to offer and only doing programming work when you need to. Nobody does this because everything is just a sad attempt to get you onto their shitty platform and be blind. They don't want you to ask questions and just think that nothing can be done.
 
I assume this refers to sites like Squarespace and applications like RPGMaker.
The former I'm told by certain sponsored YouTubers works wonderfully for online stores and other relatively simple portals but as soon as you need something special or security, confidentiality, constant access to and full control over the data become a concern you need to develop something and host it in-house. IME the latter is often the tool to develop babby's furst vidya gaem but it's unsuitable for most genres so that too tends to get abandoned fast.
Error messages are also a part of history now, you'll never see them again because curries know having usable error messages will mean that HR can figure it out if they fuck something up, which is all the time. The only "error message" you see nowadays is "Please try again later." As it's designed to get you to not think and be a good little customer and not put in a complaint.
I fucking hate modern "error messages" with a fiery passion."Oh sowwy UwU we fucky-wuckied sumthing up >w< vewwy vewwy sowwy oWo plz don't b mad heerz a photo of a kitty instead".
Either toss a long string of code at me or just show a short "error code 502-D" so I can open a ticket.
 
Everything is so fucking bloated already - at every abstraction layer. We're starting getting to the point where most people who are coding-savvy don't actually understand anything at a hardware level and those who came up in a world where understanding code meant understanding computers are dying off. I wouldn't be surprised if we get to a point where most of that institutional knowledge is just gone, and all we can do is add more bloat to the bad solutions we already have.

ETA: typo fix
 
Everything is so fucking bloated already - at every abstraction layer. We're starting getting to the point where most people who are coding-savvy don't actually understand anything at a hardware level and those who came up in a world where understanding code meant understanding computers are dying off. I wouldn't be surprised if we get to a point where most of that institutional knowledge is just gone, and all we can do is add more bloat to the bad solutions we already have.

ETA: typo fix
I think I read some entertaining science fiction scenario where 500 years in the future, humanity's technology is still powered by ancient IBM mainframes and billions of lines of COBOL and FORTRAN that no one really understands any more but it keeps chugging along.
 
Building tools for the functionally illiterate has always been a thing; the problem is there's usually a ceiling to how technical you can make them before the person designing the tools gives up and says "You can't do that." You eventually have to take the training wheels off or stagnate. Also reminds me of GeoCities back in the day, when anyone could build a little web1.0/2.0 website for themselves. But it's also why I don't believe in AI being the answer for everything. Even if you don't lobotomize it and try to have it accept paradoxes as truths; the AI is only going to be as good as the minds behind it. It's not going to be the self-learning/teaching God people think it will be.
 
Last edited:
I think low code platforms like setting up a basic website or online store is sufficient for 99% of online's businesses selling generic things, but as the comments point out there are growing pains where it just doesn't scale.



>> No code tools already exists, it’s call Excel and it’s used to run the business of million of company everywhere in the world.
> The perfect example of the exception that proves the rule. As the company grows, it almost always hires software developers to write programs to replace the Excel spreadsheets, as those spreadsheets become impossible to scale up.

I for one look down on anyone who uses spreadsheets to do what a database should.

Maybe the best of both worlds is exposing a coding backend for custom tasks like how Blender or Premiere lets you write custom code with their API. Those aren't really solid examples because those are for creating visual content.
 
  • Like
Reactions: Falcos_Commisar
Whats the absolute most plain english programming langugage that isnt BASIC
 
Innovation prospers when accessibility is increased. It’s why game creators like “dreams” (ps4) and scratch are so popular. A lot of what turns off people with creative ideas to realize their projects is that they feel they aren’t knowledgable enough in the complex creation processes to make something so comprehensive.

Coding is something that will always be niche because of how much you have to practice at it just to even get the seemingly simplest things to work. When everyone understands what’s going on bigger ideas can be achieved more efficiently.
 
No one has mentioned Zenity. Zenity is allegedly used heavily to make basic bots for sales. Sales apparently likes it because many sales tools add support and they dont need to learn2code.
If you are a brainlet who can't code, look into NodeRed.
 
There was a case in Belgium last year where a customer sued because his name had umlauts and the bank didn't support it. Now, a common way to resolve the issue is to write e.g. ae instead of ä, but that customer was apparently particularly anal about it and insisted on correct spelling and it actually rubbed up against some banking law regarding personal data or other. (I don't know the particularities)

In court it came out the bank couldn't do umlauts because their systems worked internally with EBCDIC. (the joke is also here that EBCDIC not only kinda predates ASCII or ISO-8859-* but also actually has codepages for umlauts. Apparently the bank software's implementation just wasn't that complete. Yes.)
 
There was a case in Belgium last year where a customer sued because his name had umlauts and the bank didn't support it. Now, a common way to resolve the issue is to write e.g. ae instead of ä, but that customer was apparently particularly anal about it and insisted on correct spelling and it actually rubbed up against some banking law regarding personal data or other. (I don't know the particularities)

In court it came out the bank couldn't do umlauts because their systems worked internally with EBCDIC. (the joke is also here that EBCDIC not only kinda predates ASCII or ISO-8859-* but also actually has codepages for umlauts. Apparently the bank software's implementation just wasn't that complete. Yes.)
This is getting off topic but I've only heard of EBDIC when I learned about codepages and the letter codepoints aren't consecutive, so if you sort by codepoint it'll put some random punctuation character in the middle of the alphabet. what a tremendous system.

I learned some C trivia a long time ago that many of the assumptions we take for granted like signed integers using 2s complement and a char being exactly a byte may not even hold for some systems. This makes me wonder if writing C using EBDIC is possible. I don't think anything in C actually mandates ASCII because the only thing it cares about in strings is NUL byte. (probably from assembly but all subsequent higher level languages implemented strings by storing length which is much more efficient)

Nowadays everything is Unicode but there is some kinda charm in using the upper bit of ASCII and stuffing symbols everywhere like in the IBM 437 code page.
 
This makes me wonder if writing C using EBDIC is possible. I don't think anything in C actually mandates ASCII
IBM had a "C/370" compiler for their mainframes which did just that:
https://www.ibm.com/common/ssi/cgi-bin/ssialias?infotype=dd&subtype=sm&htmlfid=897/ENUS5688-187

Trying to write EBCDIC programs without a custom software environment would be an exercise in hilarity though. No string literals in your compiler, no CRT functions that output strings (printf and so on), no fonts that map code points correctly.

Someone should write eprintf to go with printf and wprintf :lol:
 
No code tools are fucking horrific. Visual constructors for e.g. game levels or visual novels are ok but they should produce code under the hood. Visual constructors for classic executable code (loops, conditionals, etc) are complete garbage. Just expose Python bindings. If you want your rpg constructor to have a "move_character" function for the kiddies, by all means have a move_character function. But have it as actual written code, not as fucking puzzle pieces.

At my new jerb (yet another one - the one before turned out to be a globohomo nightmare), I'm now converting an Excel economic model to Python. I'm going through it thinking... ok we've got a metric shitton of repeating actions here... half a shitton there... maybe I should write a schema in yaml to document which cell ranges hold which data... but wait, the source of this data changes depending on that cell, looks like I need functions in my metalanguage... why am I so retarded, I don't need a metalanguage, I already have Python, I can just write normal Python code.
 
I work with Salesforce quite regularly. No code sucks.

It’s fine for simple stuff like assigning things to a queue, or creating a record. But when I tried to set up a spam filter, or OCR stuff, or a process that requires looping back on itself multiple times it quickly gets out of hand. Even with well-documented flows, it’s just difficult to follow and find what’s happening.

Not to mention that because they’re not expecting you to go outside the golden path, their debug tools are shit for actually tracking down the real issues, and it’s nearly impossible to build in your own error screens to see what’s breaking.

And when there’s an error within the system, you have no recourse - I built a process the other day that was supposed to create a claim and then escalate it to a supervisor if it was over $X. The flow worked for the claim creation, and I could manually escalate the claim, but trying to automatically assign it kept getting an error saying the escalation queue didn’t exist.
 
This is getting off topic but I've only heard of EBDIC when I learned about codepages and the letter codepoints aren't consecutive, so if you sort by codepoint it'll put some random punctuation character in the middle of the alphabet. what a tremendous system.

I learned some C trivia a long time ago that many of the assumptions we take for granted like signed integers using 2s complement and a char being exactly a byte may not even hold for some systems. This makes me wonder if writing C using EBDIC is possible. I don't think anything in C actually mandates ASCII because the only thing it cares about in strings is NUL byte. (probably from assembly but all subsequent higher level languages implemented strings by storing length which is much more efficient)

Nowadays everything is Unicode but there is some kinda charm in using the upper bit of ASCII and stuffing symbols everywhere like in the IBM 437 code page.
EBDIC was hated by everyone who ever had to deal with it. Just another shit sandwich powered by IBM, which made reading about that bank some months ago so absolutely hilarious in ways the younger people around me could not understand.

When you're programming C on an EBDIC system then this is already taken care of and e.g. a char holding "a" will be 0xc1. That's what high-level programming is about, even if people don't see C that way anymore. Another thing when many platforms were still around was internal memory representation, like endianness, (Motorola's 68k line e.g. is big endian, it means the most significant byte of a word is at the lowest memory address, x86/amd64 is little endian, so exactly the other way around so in a motorola system the internal representation of a word is mirrored)
and yes, what you could actually fit into a specific datatype, also depending on the hardware platform. Code had to be written with these things in mind, not taking portability into account from the get go was a recipe for writing code that'll never be portable. And if you wanted to do clever things, you also just had to know this about your platform. Otherwise, no C is high-level and you can also work without this knowledge, just maybe not as efficient (and with possible pitfalls if your code were to ever leave the platform it's on)These aren't ghosts of the past, e.g. Linux kernel developers still have to think about these things every day. You generally do when you work close to the hardware. Modern programming languages abstract internal memory representations away further and further to make the life of the programmer easier, as a result no programmer knows anymore what happens inside the memory of a computer and then ends up writing inefficent code. The mantra has always been "the compiler will fix it", but that is just not always true, especially when the programmer, through his naivete, forces the computer to do things he's not good at but gives no indication he's not good at. Maybe one day, when the compiler is an AI. I don't know.

No and low code tools have the same problems, they lead to people thinking they can do things they actually don't even really understand how poorly they're doing them. I actually have no problems with the abstractions, my problem is with the people that use such tools day-in and day-out and not understanding at what engineering cost they come, to the point of being proudly ignorant of it. It's a stupid mindset to have.
 
Back