Problem is, there are too many languages that make programming of simple programs easier, and programming of complex programs more difficult.
Agreed. But this problem can be avoided by embedding such domain-specific languages inside a general-purpose language. Then writing simple programs (for some definition of “simple”) is still fairly easy, because the DSL can be implemented with a one-time cost in complexity. However, coding complex programs is still feasible.
Visual representations of programs are interesting in their own right, because they allow reasoning about some program properties in very intuitive ways (depending on the representation, this may be syntax, data flow, control flow, data representation, etc.). However, it is probably the case that there is no single “best” visual representation for programs, and thus no such thing as a one-size-fits-all “visual programming language”.
Or by making a really convenient DSL factory. The only use for your “general purpose” language would be to write DSLs. A bit extreme, but it shows somepromise. Current results suggest this approach uses 3 orders of magnitude less code than current systems —possibly even less.
Agreed. But this problem can be avoided by embedding such domain-specific languages inside a general-purpose language. Then writing simple programs (for some definition of “simple”) is still fairly easy, because the DSL can be implemented with a one-time cost in complexity. However, coding complex programs is still feasible.
Visual representations of programs are interesting in their own right, because they allow reasoning about some program properties in very intuitive ways (depending on the representation, this may be syntax, data flow, control flow, data representation, etc.). However, it is probably the case that there is no single “best” visual representation for programs, and thus no such thing as a one-size-fits-all “visual programming language”.
Or by making a really convenient library for a general-purpose language. Although the language puts some limits on how convenient the library can be.
But I suspect one probably makes more money selling a new programming language than selling a library.
Or by making a really convenient DSL factory. The only use for your “general purpose” language would be to write DSLs. A bit extreme, but it shows some promise. Current results suggest this approach uses 3 orders of magnitude less code than current systems —possibly even less.