11th Rule of Programming: every GPL (e.g. C++, Python) is a meagre implementation of an IDE.
Our workflows are rooted in the biases and realities of the 1950's.
The realities are different in 2021, but we continue to use a 1950's workflow. (For example, RPis are cheap CPUs with their own sand-boxed cheap memory. Servers don't fit the 1950's model of everything-must-be-synchronous).
PEG makes it possible to side-step GPLs completely and create notations (syntaxes) at will.[^1]
I think in terms of dividing the development work up into pieces and using the machine to do as much for me as possible:
- Waste machine power for the development UX.
- Waste machine power for Production Engineering.
Don't waste machine power in the final product.
The performance goals of (1) are very different from the performance goals of (2).
Combining 1&2 into a single GPL results in an LCD union which is mediocre at best.
Currently, we waste machine power on the LCD, then we, also, waste brain-power on trying to make the LCD fit our problem-at-hand. (For example, we perform DRY manually. The machine should help with DRY, refactoring, etc.)
If I concentrate on (1), then the first thing I think of is a REPL. That is what I think that Live Coding is all about - REPLs. A REPL is certainly not needed in the final product. Currently we use languages that are biased towards (2) and forego ease-of-development.
[I would be glad to discuss further...]
[^1]: My favourite PEG is Ohm-JS and Ohm-Editor.