(continuing from previous ... sorry, I mentioned that I am not concise)
It might sound like I've invented a "language" with a LISP-like structure. However, that structure is NOT textual, nor is it intended to be "source code". It is just an underlying representation of generic code (i.e. an AST), of which the operations / commands / etc. are entirely customizable.
Sure, it's executable within the tool, but it's also a stored representation that can be processed as data, generated dynamically, or sent as JSON.
The point is to make the development, visualization, representation, or execution of software (or other entities like videos or images), completely moldable from top to bottom -- and the tools for doing the molding are also moldable.
And not just for making and editing things, but this can actually BE the environment that one thinks of as "the computer".
For example, the tool can be used to:
* Build other programs
* Be an execution environment itself, and add, inspect, or modify anything running in it
* Alter the tools that the tool gives you to do any of these things. This can include how code/data is built, visualized, manipulated, and/or compiled or serialized to something else. This can include "languages", UI widgets, or whatever.
* Immediately inspect or run / invoke any piece of code (and then do the same with the result that it generates).
* Compile a common code format to any (or multiple) target languages, environments, or data formats.
* Model & simulate full-stack (distributed) applications all in one place ("sandbox"), and then compile / generate to its constituent parts to be installed elsewhere.
* Same as above, but actually host the application in itself.
* The tool itself can serialize / compile itself (and all its contents) into another context. The result can be, a program that bootstraps the tool into existence in a new place (e.g. web browser or JVM / CLR); or code that can be embedded in another program; or a message sent to another copy of the tool somewhere else (e.g. on a different machine), which then recreates itself on the other side.
These are just examples, and note that anything that can applied to a program can also be applied to the tool itself. This means that any other tool or approach for making, visualizing, or representing software or data, can be added to the tool and applied to anything else, and perhaps be combined with each other.