The first level is insufficient for biologists. This does not mean that end-users should be able to use components as a framework, nor that they should be able to define new components from scratch, but that they could go to the component definition level and incrementally modify it or clone it to try a new feature. It appears therefore that we need a general programming language that can be used directly from the user interface and that is domain oriented. We should now almost be done, because we know what programming is. What seems strange and confusing is that the definition of what is or is not programming is not clear at all.
Programming also requires specialization, e.g. going into the code to customize part of it.
The essence of programming is in the design of algorithms . Very few programs contain a new algorithm. Programming, by saving instructions to be executed at a given time, is also planning . Programming is writing code . Programming is using a compiler or an interpreter.