I don't really thing your hierarchy of program level is particularly illuminating.
The thing that makes higher level languages higher level is not that they use more english words as keywords. It is that they allow expressing higher level concepts directly. For instance:
"decrement register cx and jump to the start of the loop block unless c is zero"
is still very low level akin to assembly langauge even though it is written in english.
for (idx=0; idx<N; idx++) {
}
Is (very) slightly higher level despite having more syntax and less natural-language like. Registers are abstracted by variables and the structure of the loop body is supported by the language natively
foreach idx in [0..N-1];
Is higher level yet: the loop increment and comparison operators are no longer explicit/arbitrary code, but invoke the concept of an iterator: this implies some sort of range object that encapsulates the "get next element" and "I'm done" behaviors, and the foreach syntax can then use any iterator to perform a loop.
Higher level language constructs allow applying operations directly on containers instead of using a loop, such as numpy ndarray operations that are automatically broadcast to match size. In this sense, shell programming (bash / csh / zsh) is very high level because it allows composing operations on entire files or data streams. Another way to go higher level is with object oriented programming where you can apply a generic operation such as "convert to string" to an object or a collection of objects and it is done in a data dependent fashion.
So your proposed level 5 program can be looked at in different ways. I would tend to ignore the natural language part of that, I don't think that is actually important. You have outlined 5 basic procedural steps. If those steps themselves have existing implementations, then you can already write code like this today.
What I think you are getting at is that you don't want to go and locate existing implementations of "configure the camera driver", "take a snapshot with the camera", "run OCR", and "log to file" but you want the compiler to figure that out and fill in the details. That is, of course, exceedingly hard, and it is hard whether you write the program in natural language or not. You are asking the computer to fill in the details from context and prior experience -- exactly what expert systems try to do with ML. I don't really understand what you think it should be doing *other* than ML for this task? Can you give an example of how programming with a proposed L4 language would work without being equivalent to ML? I can't see how the result would be anything but "fuzzy" given the ambiguity of the input?
Agree with the above.
Taking your example:
Water-meter logger program:
- place a webcam to watch the water-meter under the sink
- at every minute take a snapshot of the water-meter
- use image recognition to identify the numbers captured in each photo
- turn the OCR digits into a number
- attach the timestamp to the reading and log that in a file
First issue there is that actually none of the points above even unambiguously means the same thing to two different people. Let alone to a machine.
The basic issue is that most of what seems "obvious" to each of us actually is only for each of us. Conveying even simple ideas to others without any ambiguity is hard enough, but imagining to be able to do just that to a machine and get the results we "want"? That's just unrealistic.
That said, that doesn't prevent some from trying. These days, of course, AI is on the top of the list for that. But that kind of workflow, even if it eventually half works, is likely going to be a very frustrating experience.