All current programming languages suffer from the curse of text editing.
All PLs are based on the idea of non-overlapping grids of cells.
We call the cells "characters".
Many programmers think that the way to break out of using text editors is to adopt visual programming, which they think are based only on pixels and/or full-blown graphics.
I believe that there is a middle ground between text editing and pixel editing.
DaS - Diagrams as Syntax.
Diagrams are not just pixels and/or full-blown graphics.
Characters are not just pixels.
Characters are tiny grids that contain bits.
Characters are arranged in rows (called lines) and columns.
This arrangement was devised in the 1950's (or thereabouts).
A cell has a width and height. Typically this information can be derived from the font.
Diagrams, like characters, can be considered to be cells.
A diagram, like characters, has a point (x,y) and a width and a height.
Diagram cells do not need to be arranged in non-overlapping grids.
Diagrams can be arranged in overlapping cells.
Diagram editors can edit:
Adding "shapes" and "lines" to text isn't as big a push-up as going from text to pixels and full-blown graphics.
I believe that DaS is a middle ground between pure textual editing and graphical pixel-editing, and graphical vector editing.