There are plenty of low/no/visual code environments that are very successful and ergonomic, some of it is free software, some of it proprietary. I refer to it as visual programming from here on, because it is still a form of programming, the 'no code' term is marketing bull that detracts from that basic fact.
A common theme is that visual programming part is a restrictive DSL. So its about configuration and composition. The visual DSL is coded in a general purpose programming language. This model is I think quite powerful.
CMS: In Wordpress for example, themes and plugins are provided via code. Users have varying degrees of freedom depending on said themes/plugins to compose them.
Game Engines: In Unity visual programming is baked in. Programs can expose varying degrees of configurability. There are whole visual programming tools that let you define logic and behavior.
Speadsheets: Already quite powerful on their own, can be extended with scripting languages to gain new capabilities and triggers.
Video and Animations: Very typical for visual programming affordances. Users often get drag and drop interfaces to encode logic and behaviors.
etc...
These types of visual DSLs are incredibly successful, because they allow the programmers/engineers to solve the technically interesting, general problems and the domain experts to solve the domain specific problems.
However I agree that these tools often go too far, especially if they don't respect where a visual DSL should stop. Almost half of the work I get is from clients who previously used a "low-code" solution that got them into a mess, which was slow, brittle and unmaintainable.
A common theme is that visual programming part is a restrictive DSL. So its about configuration and composition. The visual DSL is coded in a general purpose programming language. This model is I think quite powerful.
CMS: In Wordpress for example, themes and plugins are provided via code. Users have varying degrees of freedom depending on said themes/plugins to compose them.
Game Engines: In Unity visual programming is baked in. Programs can expose varying degrees of configurability. There are whole visual programming tools that let you define logic and behavior.
Speadsheets: Already quite powerful on their own, can be extended with scripting languages to gain new capabilities and triggers.
Video and Animations: Very typical for visual programming affordances. Users often get drag and drop interfaces to encode logic and behaviors.
etc...
These types of visual DSLs are incredibly successful, because they allow the programmers/engineers to solve the technically interesting, general problems and the domain experts to solve the domain specific problems.
However I agree that these tools often go too far, especially if they don't respect where a visual DSL should stop. Almost half of the work I get is from clients who previously used a "low-code" solution that got them into a mess, which was slow, brittle and unmaintainable.