Why Most Developers Don’t Like Visual Programming
Trying to replace coding is not easy. Apart from generative AI coding tools, there have always been visual programming languages (VPLs) that have been trying to make the jobs of the coders easier by visualising syntax and logic, but developers never really use them. Maybe for a day or two, but then get bored, and go back to coding.
Sebastian Bensusan recently asked the same question which sparked debates around the developer ecosystem. Despite the enthusiasm that surrounds their development, many visual programming languages have failed to gain widespread adoption. This failure can be attributed to several fundamental issues that make VPLs less practical and effective for developers, who, more often than not, prefer the versatility and universality of plaintext coding.
One of the primary reasons for the failure of visual programming languages is the overwhelming preference for traditional, text-based coding. “plaintext is just so much more universal and easy to manipulate,” said a user in a Reddit discussion.
This sentiment is echoed by many developers who find that text-based programming, with its simplicity and ease of manipulation, outperforms the complexity and limitations inherent in visual representations. Text allows for precise control, versioning, and collaboration, while features that are often cumbersome or outright unavailable in visual systems.
Not so Much Adoption
While everyone is learning programming languages to get jobs, VPLs are just for some niche fields. A Reddit user working in the VFX industry, noted that in industries like graphics and VFX, visual tools are ubiquitous. “Shader/VFX graphs and related things are almost ubiquitous in the industry,” the user suggested that visual programming has found a niche, particularly in fields where the direct manipulation of visual elements is essential.
However, even in these domains, the appeal of visual programming may be more about necessity than preference.
One of the significant issues plaguing VPLs is their incompatibility with modern version control systems. Sharing their experience with Unreal Engine’s Blueprints, a Reddit user said that when multiple developers modify the same visual asset, the process of reconciling differences can become so convoluted that it stalls progress.
In contrast, text-based code can be easily diffed, merged, and reviewed using established version control systems like Git, a flexibility that visual languages lack.
In a Hacker News discussion, a user highlighted that one of the biggest problems with VPLs remains that the environments are present in a static way with pictures and graphs, instead of text. “It is like drawing a dead fish,” developers gave an analogy.
Furthermore, the control flow in visual programming languages often leads to confusion and inefficiency. As a developer noted, many VPLs replace structured control flow elements like loops and conditionals with ‘spaghetti link’—a chaotic web of connections that obscure the logic and make debugging difficult.
This ‘spaghetti code’ problem harkens back to early programming practices that were abandoned for good reason. The lack of clear, structured control flow in visual languages often results in unmanageable and error-prone code, deterring developers from embracing these tools.
Maybe a Way Forward
Despite these challenges, there are developers who see potential in visual programming—if only it could overcome its current limitations. Users express a desire for a visual programming environment that would represent flows, have a rich metadata understanding of the data, and allow switching between text and visual mode.
Thinking of visual programming as a visual representation of code is wrong. “It’s about how they are stored. A single structure defines all control and data flow possibilities, simplifying analysis, debugging, compilation, parallelization, distribution, decentralisation, simulation, and versioning,” explained a developer on X.
Such a system would need to strike a balance between visual intuitiveness and the precision of text-based code. The idea of a hybrid system, where diagrams could be integrated with traditional code, offers a promising direction, but it remains largely unexplored.
When it comes to the hardware development world, where visual programming is used to connect hardware blocks in FPGA design, it can be useful in certain contexts, but even in this domain, the reliance on visual tools is limited. “Internally, we still avoid visual programming as much as possible using good old HDL (hardware description language)” explained a user.
With AI tools coming into the picture, it would become increasingly hard for anyone to adopt visual programming languages as the codes could be written automatically by prompts for most of the basic use cases. Moving beyond them, developers often prefer to just write hard code.
In the future, one might say that most of the programming would be visual, but calling it “visual programming” would be completely wrong.
link