In your judgment, article-question, article-reasoning, and in some places, bewilderment. On the one hand, we were presented with the authoritative opinion of Leslie Lamport "Programming Should Be More Than Coding", which places the programming and coding in an improvised table of ranks. On the opposing side, I, who do not have sufficient status for disputes with the master and the legendary university, which he represents ... but I cannot deny myself such pleasure and risk. I hope more experienced comrades will correct my flaws in the arguments.
In my mind, I understand that coding in the modern world is commonly perceived as a lower level of engineering activity, which on an evolutionary graph is closer to chimpanzees than to a programmer. And, perhaps, this is our big mistake, because the code is like DNA. Only four nucleotides, and what a motley biomass in the product line.
As experienced engineers, we are masters of abstractions. Therefore, it will not be difficult for us to submit a conditional programmer named Leslie Lamport (all names and coincidences are not accidental) and his main tool is the Turing machine. He is a master of his craft, largely due to the iron dao:
Though the last step seems important to him, he clearly dislikes him and offers to ignore him. And this is hard to argue. To move the pointer on the endless tape of the Turing machine is a melancholy mortal.
And here his genius is revealed in full. But this process, like a sharpie with a thimble, should be monitored very carefully. He takes three points of his program and puts the ball with the code under the last one. We nod approvingly and place bets. Then the thimbles are deliberately slowly mixed. Where is the code?
We have almost no doubts about where the third thimble is, and the code turns out to be ... under thimble number 1. Gawkers are in shock, Mr. Lamport also looks confused, but he knows in his heart that he is cheating. And it was at this moment, when he quietly rolled the ball with the code from clause 3 to item 1, I really wanted to grab him by the sleeve.
What looks like a duck, quacks like a duck, and even self-confident that the duck, most likely it is. If you developed the TLA + language for specifications, with all of your appearance and behavior, it’s screaming that it is the code, which it is. The fact that you used it at the program specification stage, that is, p.1 "deciding what the program should do," you did not get rid of the need for p.3 "to write the appropriate code".
Let's interpolate Leslie ten years ahead, during which he methodically uses the TLA + he created to write specifications. I think that regardless of whether we, architects, or database engineers, analysts, reluctantly admit that we are becoming something of a coder in the most routine sense of the word. Different dialects, different dictionaries, but the same reflex apparatus, which with a bored look gives out design patterns, ER-diagrams or specifications in the case of our character. And so, under the specious point # 1, the author of the thesis that "coding is not so important" hides this very coding.
For illustration, I will invite another witness, we call him John McCarthy. No one is so pissed off with the programming of the Turing machine as John, especially when it comes to his favorite tasks in the field of artificial intelligence. And in the rescue, he invents a new, declarative coding style to describe how the task should be performed (p.2 of the Leslie list). Call it conditionally LISP.
Let's assume that John has not written a single program in his life, which according to Lamport's formula puts him in the rating at the level of plankton, although he has a direct relationship to the code. The question arises, what is his degree of bewilderment and what will he say to him at the meeting?
I will not bore dozens of identical examples, but I will try to offer my colleagues a summary of the summary. Coding is the heart rate of development. It is present at all stages in one form or another. The cardiogram looks boring, but is a necessary indicator that the project is alive. Therefore, the wording of * -as-a-Code is increasingly appearing.
We are all coders. We have a certain apparatus and rules for this, just everyone does it on their own floor. There are no valid reasons that a person producing PHP code is in some ways more stupid than an analyst who creates executable specifications, and together they lose to a young hacker who thinks right away in machine codes.
The difference is that some of us will see something that others have not noticed and will add value to this process. McCarthy - LISP, Lamport - LaTeX and TLA +. And when you go through such codes as decimal numbering system, Braille alphabet, radio or emoticons, you won’t get up to say “Programing Should Be More Than Coding”.
PS Maybe someone from the conference attendees will want to ask the raised questions. If they seem foolish to the speaker and the audience, then blame everything on me.
PPS So it became that I have a lot of materials on the topic of code and coding, and if this topic is of interest, I will gladly share it.
Source: https://habr.com/ru/post/455214/
All Articles