Ask HN: Why have graphical programming languages never taken off?
I come from an engineering background and naively imagined plugging software components together like Lego. But in reality, you can never seem to get away from writing code...
I come from an engineering background and naively imagined plugging software components together like Lego. But in reality, you can never seem to get away from writing code...
Typing is not what makes coding hard, it is coming up with the proper algorithms, data structures, architecture (e.g. coupling), tests, etc.
Typing is faster than dragging icons and filling in properties.
Text is denser, so you can view more of your program at once, and in an expressive language can be quite descriptive.
Some of these systems can be reasonably complicated, we are talking oil refineries, LNG processing plants, large mineral processing facilities, chemical plants etc.
The reasons they are programmed this way are many and varied, many historical/legacy, but essentially much of it boils down to limiting variability of the language and creating a "bridge" language that the specialist engineers focusing on the chemistry of the process can more easily discuss and work with.
This probably isn't changing in a hurry as the industry is also very slow to adapt. The sort of facilities are plant worth tens of billions of dollars and multi-millions of dollars lost per trip or hour of downtime. Owners are understandably risk adverse to experimenting with a new paradigm that may work a little better, but may also create problems.
Additionally, plant owners factor in availability and decades of experience in the existing pool of labor that has the specialist skills related to optimisation and real time control of the process as the primary value add.
The problem is that general purpose programming is too abstract to fit nicely into a visual metaphor, but as long as you can narrow your scope enough there is plenty of room graphical programming.
this is what I'm talking about: https://www.youtube.com/watch?v=X2kQ8ETzdyw
In generative music these are actually very popular.
- it's great for simple small things, here it takes out the complexity of the flow of information because it shows it with lines
- input is more work. you still have syntax and everything you can't type you have to click together or even search in a library of elements
- nesting and object orient programing is difficult to depict, you loose more than you gain. You can use a lot of containers and that's what people who are good at it do, but I think it's still not as elegant as reusable functions.
- i personally don't like to have to do screen estate management
Problems simple enough to be solved by plugging software components together are also simple enough to be solved with a few lines of code, but that's not where the actual work lies. Writing code is effortless compared to the work of thinking out the design of the code that needs to be written, and that work would need to happen regardless of the interface.
I actually don't like using these tools too much personally, and yes I suppose they are relatively niche. But there are some people that swear by them, and they really are powerful and useful in their problem domains.
programming with a graphic interfaces is good for visual feedback but slow at developing as it requires a mouse and then some laying out which is more of a designer tool.