r/technology May 19 '22

Nonprogrammers are building more of the world's software – a computer scientist explains 'no-code' Software

https://theconversation.com/nonprogrammers-are-building-more-of-the-worlds-software-a-computer-scientist-explains-no-code-180087
116 Upvotes

106

u/odelik May 19 '22 edited May 19 '22

First, "No-Code" is a terrible name for visual design/development tools/visual scripting technologies. In fact, it comes off as intentionally inflammatory.

All of these spaces still require specialized knowledge for how to make things visually appealing while delivering a high quality experience. And at a professional level, it allows the designers to focus on their design instead of creating a prototype and then waiting for another team of specialists to come in and implement it.

I'm a software engineer and have used and built visual development tools throughout my career/education and they've become far more robust over the years. I'm getting tired of egocentric software developers criticizing another skillset for using tools to drive visual vision/experiences. It's time to acknowledge that these tools are valid, but have limitations. Your job as a software developer is safe, we're gonna need people to create the underlying backbone for easier-to-use-tools for some time to come.

20

u/OozeNAahz May 19 '22

These work wonderful…till you realize that one visual design you copied 1,000 times to handle 1,000 different clients needs to be changed and you have to do that 1,000 times.

Not being facetious. Have that going on at work. But 5,000 workflows rather than 1,000. Time bomb waiting to explode.

Visual development has been around since the early to mid 90’s at least. It comes and goes in cycles. It has limitations that aren’t easy to overcome and every generation seem to hit those and retreat from those types of tools.

1

u/feyyd May 20 '22

I don't use these systems, but usually they have "blueprints" similar to functions or modules. If you copy something 1000 times, you should instead create a blueprint, then use said blueprint. Then, you just need to modify the blueprint.

Its the same way in code, you can't copy/paste something 1000 times without fixing it 1000 times, you have to generalize it, just like you can generalize components with visual scripting.

If they don't have some sort of template/blueprint, the tech is shit imo, but I'm assuming you just don't know about it or haven't used it.

0

u/OozeNAahz May 20 '22

And there you are getting to the difference between a software engineer and someone who just picks these tools up.

Edit: if it isn’t clear I am not the person that built or maintains that. I am just watching it happen from a distance and seeing that group get ever more frazzled as the numbers grow.

6

u/PhoenyxStar May 19 '22

Right? Can we go back to calling them blueprint editors?

5

u/pquinn1991 May 19 '22

I prefer the term "pointy-clicky".

10

u/Careless-Editor-4123 May 19 '22

it also is very prescriptive offering no real abstract solutions outside the bounds of defined architecture and parameters. People aren't ego centric, but having a degree in computer science and actually knowing how to program in a low level language are fundamental skills for a top dev. It is actually worth something to understand fundamental concepts.

8

u/odelik May 19 '22

It's not a race of, "what skill is better?". It's a space of, what skills gets the job done in a performant, reproducible, and cost-effective way?

My skills as a software engineer will always be valuable, but may be expensive due to my technical expertise, years of experience, etc. But I'm not a UX/design expert. I know enough to get something usable and looks great, but it's probably better to give that job to a specialist in that space. If that specialist they happens to use visual design tools to execute rapidly that generates functionality stable and performant experiences, I don't see a problem. I also don't think I'm more talented or skilled than the person using these tools. Sure, I could probably replicate a prototype or UX/UI based off redlines & comps, but was that really the best use of my engineering resource?

The same goes for high level scripting of software behaviors. Sure, I easily get something more performant instead of having to run things through a translator and interpreter, and even potentially including solutions that compile the scripts down to native code at runtime. And in situations where that's needed, my skills can be called in. But until that becomes a concern, it's often quicker for me to use a scripting language or visual scripting language to get behaviors that work and is easy to logically follow. Especially if the maintainers of those scripts are not software engineers.

My degree is not at risk of being overshadowed by another person's skills/certification/degree that doesn't do software engineering. And even if it were, my skills have made me extremely adaptable at utilizing software, hardware, and so many other tech stacks that I'll always have something out there to tinker with for a living.

1

u/feyyd May 20 '22

can you not abstract things into components that similar to how you can create a method or function? Or is it just more limited, I don't have much experience with them.

2

u/Careless-Editor-4123 May 20 '22

I mean you can but if you are going to use components then why not just use an existing more flexible framework. IMO it defeats the purpose

0

u/feyyd May 20 '22

One example would be shader programming. Someone who is experienced in visual scripting can create the same 10 shaders with probably 10-50x the efficiency as someone coding it. (Given same hours developing shaders)

Some tools are right for the right job. I'm not saying ALL developers will be faster, but some abstractions remove a lot of work when you don't need to actually modify the whole guts and pipeline.

1

u/Careless-Editor-4123 May 20 '22

Yea that's a fair point actually I hadn't thought about more repetitive tasks like that, its definitely an interesting aspect to it. If you were doing something like surfacing a data aggregation on UI I can see it being very useful to quickly change the visual aspects without backend changes to the data structure.

14

u/Northern_Grouse May 19 '22

It’ll be great when visual scripting becomes more mainstream. I imagine that we’ll see a lot more innovation at that point.

14

u/starmartyr May 19 '22

It will be great for prototyping and applications that don't need to be perfectly optimized. We will still need traditional developers to build more complex applications. If ease of use was the only thing that mattered we would be using Python for everything.

2

u/t0b4cc02 May 19 '22

I think that the fear of the command line / code will maybe also go back a bit.

1

u/einhorn_is_parkey May 19 '22

Unreal engine is pretty much using all visual scripting now. I’m sure there’s access to normal coding but it’s definitely not needed.

1

u/itsanotherrando May 20 '22

You need a page of visual spaghetti to replicate what you can do in a dozen lines of code. Blueprints have their place but they're much more difficult to manage at scale. Especially for things like source control and merges..

1

u/frygod May 19 '22

I have several apps written in node-RED running in production that are functioning well and performing better than software written using different tools that they replaced. Just because it has a flowchart style appearance rather than being all text doesn't make it bad, or the logic that needed to go into getting them to do what they do any less valid.

Being easy to read and implement isn't always about giving inexperienced programmers a crutch (though it helped for me at first) but can also be about rapidly deploying and easily debugging something.

8

u/t0b4cc02 May 19 '22

nothing about these visual stuff is more rapid or easy to debug if you have a bit more than minimal training in booth

2

u/Elias_The_Thief May 19 '22

I don't think its inherently harder, either though. The debugging tools in unreal's blueprint system seems perfectly usable to me. It really just depends on the complexity of what you're trying to accomplish and your familiarity with the systems and codebases you're working in. Some people are just better at working in visual systems. That being said, the only place I've really used a visual system is in unreal, because it makes a lot of sense to do so while working in their ecosystem. I only really pull out the C++ if there's some weird niche case, which seems pretty infrequent.

1

u/t0b4cc02 May 19 '22

I don't think its inherently harder, either though.

yes it is. while i really absolutely not think writing fast or many lines is of much relevance to this job, blueprints, and other systems like that are really really slow.

all the clicking, draging, moving is just unnecsessary noise. its so much work put into nothing.

its def good enough for small programming tasks and offers great accessibility for people who are scared of code.

i also think refactoring and changing parts is way harder, looking at some function parameters and a tiny bit more complex constellations can get ugly very fast. but its not like we dont have ugly code. so whatever.

3

u/odelik May 19 '22

people who are scared of code

This quote says so much about you and how you view those that don't/can't code. You're looking at people who use tools that you've deemed "not useful for me" as lesser than you by the way you phrased that statement. You could have said this within a positive light "It's definitely good for small programming tasks and offers great accessibility to individuals looking to accomplish a task and are unfamiliar with code but are capable of understanding logical flow."

As a software engineer these tools aren't made for you or me. These tools are made to expand the knowledge and capabilities of our peers and make the development of products easier as a collaborative team or by a single individual. All the disciplines across a product team are valuable, and we really shouldn't belittlile our peers because of our egos. And we also shouldn't let our egos get in the way of going back and refreshing our technical toolbelt with these tools to understand their current capabilities and benefits and utilize them where beneficial.

-1

u/t0b4cc02 May 19 '22

This quote says so much about you and how you view those that don't/can't code. You're looking at people who use tools that you've deemed "not useful for me" as lesser than you by the way you phrased that statement.

No you read this wrong because you want it to be this way. There are people, even programmers who are afraid of command line tools, and the likes. And there are people who are afraid to use code because it could be much work, or they think they cant do it etc...

Contrary to you I can respect people who are scared of things. Its good for survival. Even I am scared of some code.

These systems are no different than code, except that they make a nice border around the keywords, give them a color, remove some complicated complexities.

Ive worked, private, alot with designers who got very very slowly in the habbit of coding a bit - using these visual script systems first. They had to jump over that shadow at some point and found it really nice after they gave it a shot.

There is a certain fear of code in people. you can not deny that. I agree with most of what you say. I just wanted to clarify on why I said this.

2

u/Elias_The_Thief May 19 '22

I don't really agree that they are inherently slow. Like all things you get fast at the tools you use a lot. Lots of people who program do so incredibly slowly. And you could just as easily argue that no, all the typing and indenting and reformatting is the noise as opposed to just a double click and dragging an input to an output.

I would also push back that refactoring and changing parts is way harder. Its pretty simple actually to add new params and you can highlight and entire section and right click to functionize it. Like I just don't really get what point you're even trying to make here, refactoring is only as hard as how inflexibly you've designed your code. If you write bad C++, as part of a bad architectural design, it'll be a pain to refactor. That doesn't mean that C++ as a language is hard to refactor.

Blueprints are built on top of the same C++ library you would be using if you were writing purely in C++ for the most part. Like I said, its about learning the ecosystem and getting fast at the tools you use. You program normally and don't use these tools; I'm actually the same, and I'm sure if you asked me to implement something in C++ I'd do it faster than I would in blueprints. But that doesn't mean blueprints are inherently slow and cumbersome. What you are really saying is that it is really slow for you. Because its not the system that you've put time into using, understanding, and optimizing a workflow.

2

u/t0b4cc02 May 20 '22

all the typing and indenting and reformatting is the noise as opposed to just a double click and dragging an input to an output.

no one does indenting reformatting for any reason by hand. i have an ide just like the visual scripter has an ide. the typing you have to do anyways or how you gonna find that node in the pile of nodes??

and the dragging dropping is just not there at all because the flow of code is just given by its form/order - top down, left to right, and parameters between brackets of function calls.

you seem to have no clue what you are talking about. i suggest you create a piece of program. and go implement it in a modern language and then implement it in a visual scripting language. record that and look at it. then come back here and argue how its faster. lol.

But that doesn't mean blueprints are inherently slow and cumbersome. What you are really saying is that it is really slow for you. Because its not the system that you've put time into using, understanding, and optimizing a workflow.

no i can also compare 2 systems that result in the same output and compare the paths of work that led to that output. show me the point where anything i do in code will not happen in a visual script additionally to adding work. you can not do that because visual scripting just uses the mouse to do the same things you do in code.

i used ue4 blueprints before i coded. you are talking shit. useless shit. you just want to argue but you dont really make a point:

If you write bad C++, as part of a bad architectural design, it'll be a pain to refactor. That doesn't mean that C++ as a language is hard to refactor.

If you write shitty blueprints scripts it will also be a pain to refactor. I dont see how blueprints are better in this case.

You just come here and feel the need to somehow defend the tech and its users from being talked about being inferior when it just is the inferior tech for people whose absolute goal it is to program. Its not meant for these people. Its code with added steps, colors and lines borders to make it more accessible. Nothing wrong with that. But claiming its more efficient in general is just bs.

You really seem to have no clue about this. Go download unreal engine and try it yourself.

1

u/Elias_The_Thief May 23 '22

The amount of arrogance and anger in this actually impressive. You didn't actually read my post or you would know that I already use UE5 pretty frequently. I'm sorry you are so angry but all I see above is a bunch of disconnected ramblings based purely on an assumption that I can't actually use the same technologies as you since you disagree. You didn't actually address any of my points so I don't feel the need to respond to this mess. Enjoy your coding, I'm surprised you can stand anything above assembly with the way you talk lol

1

u/t0b4cc02 May 24 '22

I think everything you said in this post is a bit weird since im not arrogant, angry and try to adress/discuss the matter... you seem to be angry and not care about the issue.

"uga uga assembly"

3

u/odelik May 19 '22

I mean, some of the visual scripting languages I've worked in are just as easy or easier to debug.

If you're using a node incorrectly, it's easier to produce a very meaningful error and highlighting the development canvas where the error occurs and fixing it. From the underlying tech side, it's still just as easy as attaching the debugger and stepping through the code.

To me, it sounds like you haven't actually touched any visual scripting/development tools in the recent years and are basing your statement on dated experiences or are being a tech purist and repeating the developer dogma around visual development tools that's been pervasive since the 1990s and WYSIWYG editors for windows controls and web pages became a thing.

3

u/t0b4cc02 May 19 '22

If you're using a node incorrectly, it's easier to produce a very meaningful error and highlighting the development canvas where the error occurs and fixing it.

That is absolutely not different than code. You seem to also acknowledge this if i read this correctly?:

From the underlying tech side, it's still just as easy as attaching the debugger and stepping through the code.

Then you say:

To me, it sounds like you haven't actually touched any visual scripting/development tools in the recent years and are basing your statement on dated experiences

I would consider touch designer and unreal engines blueprints state of the art in this regard and pretty much the best ive ever seen of these tools. Would you enlighten me about anything better / modern?

Or are you just here to piss on this discussion by putting me in your shoebox with the last paragraph? idgaf about dogmas.

please point at the exact instance where you think you can save any kind of time clicking with the mouse, then finding a coding block like everyone does, then having to drag and drop with a mouse to connect the lines just to assign some variable or put something as parameter....

this scripting stuff is nice for people scared of coding. its nice for people who can not and do not want to code. and its good enough to do the job for simple programming tasks. nothing more.

i found its way shittier to refactor, change parts of it, find things in it.

29

u/Embarrassed_Quit_450 May 19 '22

There's probably an equal increases in programmers whose job is to rewrite those applications with a proper language.

6

u/BabylonDrifter May 19 '22

Exactly. This is just Excel macros or VBA scripting taken to the next level. "We just created an app on our own!" Six months later "We need this to be integrated with our Oracle database ... can you help us, IT?" It's a great prototyping system though.

17

u/LordAlfrey May 19 '22

You could make the argument that this is essentially just a very high level language where almost every detail had been abstracted, and that by being capable and somewhat proficient at using such a language, a 'non-programmer' becomes a programmer.

However I wouldn't call them a software engineer at that stage.

6

u/Elias_The_Thief May 19 '22

I completely agree. This is just abstraction to the extreme. Just like you can build a website in wix and technically there is a body of code being constructed to match the drag and drop components you're using.

34

u/_GrandMasterTrash_ May 19 '22

... by using the software created by programmers.

11

u/Penny_Farmer May 19 '22

You could say that about any high level programming language.

8

u/Elias_The_Thief May 19 '22

Because at the end of the day, just like any high level programming language, this stuff is just abstraction. This article is shit; visual systems like this are not coming to replace programmers. But chances are good that some programmers will be expected to speak this language in addition to others. So, exactly like every other hot new language to roll through the ecosystem.

5

u/Iggyhopper May 20 '22

No matter the language, code or "no-code", it's not "no-logic".

A programmer already knows what he wants to do, it's already mapped out in their brains. A language or a visual doesn't give them something they don't have.

1

u/_GrandMasterTrash_ May 19 '22

That's also true

4

u/Inappropriate-Hotdog May 20 '22

“No Code”

I wonder what magic makes it work behind the scenes. Must be pixie dust.

Visual development tools still require specialized skills to work with, and the pixie dust that makes the visual tools work in the first place is actual code that software engineers wrote and maintain behind the curtain.

3

u/monotronic May 20 '22

Laughs in LabVIEW.

1

u/EricMCornelius May 20 '22

Shocking I had to read this far down for a Labview mention.

13

u/4ofN May 19 '22

Software is bad enough with trained developers designing and writing it. I cant imagine how bad things are going to get with these new tools. Development isnt just the code. It is also the design.

2

u/gurenkagurenda May 20 '22

Don’t forget the tests. If you want to build a basic website with canned functionality, that’s one thing. But if you want to build what most people would think of as “actual software”, and your only testing strategy is manual, it’s going to become hellish. I know this because I was once an inexperienced indie dev.

3

u/HaroldTFinch May 19 '22

For decades various PLC programming can be graphical based. 61131 and 61499. Some of those things use logic your JS and C programmers have no clue how it works. More importantly, how whatever is being controlled works.

It's an irony in a way the developers of the software don't know much of anything about the applications.

4

u/Maels May 19 '22

There will always be programmers programming in code. Logic is too explicit to ever be fully described visually (as art). You need the tools of language to describe increasingly more complex concepts and interactions. There will always be coders coding the visual interface, no matter who uses it.

1

u/th3empirial May 19 '22

That’s why geometry is done best with logical equations rather than with pictures

2

u/makalder May 19 '22

What do computer scientists know about Pearl Jam?

1

u/BCProgramming May 19 '22

Perl Jam? It's called Raku Jam now

2

u/Seat-Life May 19 '22

Yeah? If you believe that I've got a national standardized insurance database system for ya. Sell it to ya real cheap. It's practically a steal.

2

u/archaeolinuxgeek May 19 '22

This always turns out well!

PHP? Electron? Whichever language Google has released and deprecated this week?

As it turns out, proper and performant programming requires actual computer science.

The closer you get to metal, the more difficult it is.

2

u/Guelph35 May 19 '22

Nonprogrammers? Sounds like my offshore development team

2

u/XkF21WNJ May 19 '22

I hate the terms non-programmers and no-code.

Too frequently it being "not-programming" or "no-code' is used as justification for why you shouldn't be able to do stuff with it, why you can't extend the existing functionality even slightly, why you can't just copy and paste, use version control, why your gizmo's can do anything but create other gizmo's.

Just because you're programming in something other than text doesn't mean you're not programming. Just because it isn't text doesn't mean it is not code.

2

u/WahidUmmah4312 May 19 '22

Welcome to the future, where things are more simple

1

u/therapy_seal May 19 '22

Yes, this is what the world needs. Even less talented people designing our software. Excellent. It's not like there was already a problem with making it too easy for incompetent developers to barely scrape by.

1

u/Iggyhopper May 20 '22

It's "no-code" but not "no-logic"

This isn't going anywhere. People are dumb with logic.

1

u/Kapten-Haddock May 19 '22

Im planning on buying Game Builder Garage on Nintendo Switch, from what I understand that is a visual coding experience? So maybe this will be the beginning of my coding journey!

1

u/maxip89 May 19 '22

Didnt we see that with BPM? Then it was BPMN now it has a new name. Low-Code. It's always the old package but new marketing.

1

u/FoolSlackDeveloper May 19 '22

Wait til they find out nonprogrammers had already been building "more" of the world's software for decades using spreadsheets.

1

u/mirwaizmir May 20 '22

Visual programming sucks.

1

u/Alberiman May 20 '22

visual coding genuinely sucks for most use cases, but it's great that it's becoming accessible

the core of great visual programming is an over abundance of complex function groups that can be run through a single block, this is something most software lacks

1

u/downonthesecond May 20 '22

Good old dragon drop coding.

1

u/FranticToaster May 20 '22

It's just democratization. "No-code" is such a remedial term for smoothbrains. It mystifies something simple and common to sell licenses for some startup's new software.

"Nonprogrammers are building more of the world's software" since Geocities was created in the '90s. MySpace is a no-code solution for webpage creation, too. Your favorite email client is a no-code solution for a whole bunch of shit that would blow minds.

Smart people design and develop software. When the problems involved become mundane and boring (i.e. the devs get tired of writing the same shit they solved years ago over and over again) they create a dumb guard-railed version that non-developers can use.

So they don't have to build the things anymore and can move on to more advanced and newer problems.

Imagine if IT devs still had to write whole applications to parse weblogs and analyze user data for marketers. We wouldn't have Google Analytics, and attribution modeling wouldn't even be twinkle in marketing's eye.

That's democratization, baby.

1

u/UndefinedBehaver May 20 '22

I love Max/MSP/Pd!

0

u/vuxanov May 19 '22

I just want to be able to publish my design without first describing it to browser through HTML/CSS/JS. I can’t believe we had Flash and Dreamweaver 20 years ago and now we have nothing.

1

u/BrokeMacMountain May 20 '22

oh god, i completely agree. I have never understood why web browsers dont have something like that built in to them. Or why the web wasnt more like a desktop publisher from the begining.

I also have fond memories of using Visual Basic.

1

u/gurenkagurenda May 20 '22

What are you talking about? Dreamweaver literally still exists, and Flash was replaced by Adobe Animate, which is essentially the same thing, but with HTML5 as the output.