I have a plan... There's a language, Joy, that combines the best parts of Forth and Lisp. It's also simple enough to be (re)implemented in other languages very quickly, so it can form a cross-runtime glue language and UI macro system.
It's very good for refactoring, partial evaluation, etc. It seems to deliver on the idea of mathematical programming.
I've implemented a simple GUI that takes innovations from the old Oberon OS and Jef Raskin's "Humane Interface" to make a very simple but elegant user interface. With Joy and this UI there are no separate "apps" or programs, only one body of commands (words in Forth, functions, etc.) that can be "scripted" by the user. Mouse interaction and CLI are unified. For example, you can click on commands, and then make a "script" (a new command) out of the commands after the fact.
All files are kept in a VCS including the current system state, and autosaved after every change (so you can literally kick out the plug, plug it back in, and keep going from where you left off.) Never lose work.
With Joy you wrap other systems and libraries and expose collections of command words that then let the user use them at the "desktop" level. Eventually I'll write parsers for other languages and translate them into Joy to take advantage of the "convergence" to contract the total amount of code (even as I add more capabilities.)
I was in the middle of implementing type-inference when I was bushwhacked by compilers in Prolog.
The original thing that led me to all this was Dr. Margaret Hamilton's Higher Order Software. (See "System Design from Provably Correct Constructs: the beginnings of true software engineering" James Martin) Long story short, adding type-inference to Joy makes it easy to derive correct software. (This used to be a novel thing to say.)
If you want to check it out my project is here: http://joypy.osdn.io/ Python, Prolog implementations. The GUI is undocumented. There are two: ./gui uses Tkinter text widgets; ./vui uses SDL via PyGame to draw to the screen directly and is meant to guide re-implementation in Joy for a self-hosted IDE thing.
I'm just at the point where I'm going to start targeting "vertical niche" use cases (i.e. interpreting MRI data using ML and finite element methods, etc.) and get some user feedback. I'm not going to try to get developers to use it. I'm going straight to the users. If I don't tell them they are programming they should be able to do it just fine on their own. If this works I'm going to eat software, even as it eats the world.