Natural Language Programming Instructions or Intentional Programming
This topic can cause a rather negative reaction due to the fact that most developers are its opponents. That's because intentional programming, compared to classical, has significant drawbacks:
weak determinism of natural language instructions
considerable length of each instruction, which makes it necessary to enter a rather lengthy code
the code looks consistent, which may hinder its perception and search process
reduced program speed by analyzing more characters
But he also has significant advantages:
all instructions are intuitive for a person, there is no need for preliminary learning of a new language
each instruction uniquely reflects the intention of the developer who wrote it
the natural ability of natural language to generalize and create new levels of abstraction (both for objects and for methods of manipulating them) based on existing
programming process in natural language is possible not only in a purely imperative form, but also in the form of communication
For me, the last point is of the greatest interest. It allows changing the behavior of the mechanized system on the fly in the process of communication. In this case, the language can act both as a means for manipulating data and as a means for exchanging data. This gives intentional programming the ability to realize its potential in niche areas, such as robotics, when the mechanism can get a description of behavioral algorithms, as well as any other information through a single communication interface, using a single language.
In fact, in the title I’m gossip and it’s still a matter of a planned language, but based on elements of natural language, and which, in the process of development, has the ability to transform into a natural language.
As for the drawbacks of programming in natural language, the problem of speed is to some extent solved by preprocessing while loading instructions into memory, so that when you call it again, you can eliminate resource-intensive procedures. The problem of the length of instructions when typing is solved by intelligent predictive input in the development environment. The problem of the uniformity of the source code is solved by the color coloring instructions. For example: