⬆️ ⬇️

Happy Birthday, Edsger Vibe Dijkstraǃ

"Let the tahorgs howl in fear,

Screaming and screaming!

After all, they go to war

Structural linguist! "



image





In ordinary life, E.V. Dijkstra was an eccentric: he preferred a simple pen to a computer, there was no TV in his house, he did not use a mobile phone, did not watch a movie. When his colleagues prepared and published a special compendium for the 60th anniversary, Dijkstra answered each of them with a personal letter of thanks written by hand (61 recipients). A secretary relied on a scientist of his level and status, but Dijkstra refused this privilege and preferred to do everything himself. He loved music and was a good pianist.

')

Under the cut there are several quotes from Dijkstra, a couple of abbreviated essays and a list of articles in Russian.

(Together with the company EDISON we wish Dijkstra and Feynman happy birthday.)



image



Quotes





In the column “profession” of the questionnaire, which is supposed to be filled in when registering a marriage, he wrote “programmer” - he was forced to rewrite the documents, stating that such a profession does not exist. As a result, as Dijkstra wrote: “Believe it - believe it or not, but in the“ profession ”column of my marriage certificate there is an amusing“ theoretical physicist ”!”



“... I had to make a choice - either to stop programming and become a real respectable theoretical physicist, or somehow formally complete my training in theoretical physics with minimal effort and become ... who? A programmer? But is this a respectable profession? In the end, what is programming? What should have been the substantial amount of knowledge that would allow programming to be considered a scientific discipline? ”



When the Soviet government decided to move the Soviet industry to copying the IBM / 360 model range, Dijkstra (who worked at the time at IBM's competitor Burroughs) called this decision the greatest victory of the West in the Cold War , and the IBM / 360 model chosen for cloning Soviet EU computer) - the greatest diversion of the West against the USSR.



“If debugging is the process of removing errors, then programming should be the process of inserting them.”



“It is almost impossible to teach students who have previously studied Basic to good programming. As potential programmers, they have undergone irreversible mental degradation. ”



“The question“ can a computer know how to think ”makes no more sense than the question“ does a submarine know how to swim. ”



“Projects that offer natural language programming are inherently deadly.”



“The one who thinks that the products of programmers are the programs they write are deeply mistaken. The programmer is obliged to create credible solutions and present them in the form of convincing arguments, and the text of the written program is only accompanying material to which this evidence applies. ”



"Programming in COBOL cripples the brain, so learning it should be treated as a crime."



“You can write a Fortran program in any language.”



“The funds are not to blame for the fact that they are being illiterately used.”



“Testing the program can very effectively demonstrate the presence of errors, but hopelessly inadequate to demonstrate their absence.”



“We will be better able to cope with our work as programmers, if only we approach this work with full awareness of its terrifying complexity, if we are faithful to modest and elegant programming languages, if we take into account the natural limitations of the human mind and take this work as Very Humble Programmers



“The difference between the“ old program ”and the“ new program ”is as deep as the difference between the hypothesis and the proved theorem or between mathematical observation and the statement strictly derived from the set of postulates."



"The programmer must prove the correctness of the program at the same time as writing it."



image



Articles and books





Archive of the Dextra Works (in English)



image

"Discipline programming"







image

The team of authors "Structural Programming": Niklaus Wirth, Edsger W. Dijsktra, Tony and Jill Hoare



image

"On the dangers of the operator Go To"



Dijkstra's Letter: Why Programming Learning Must Begin with a Functional Language



Collection of articles in PDF.







image



Two essays whose abbreviated translations were found online


“I told this story to different people. Programmers, as a rule, liked it, and their superiors usually became angry more and more as it developed. Real mathematicians, however, could not understand what the salt was. ”

Parable
In immemorial times the railway company was organized. One of its managers (probably, the commercial director) discovered that a lot of money can be saved if not every railway car is provided with a toilet, but only half of it. So it was decided to do.



However, soon after the start of passenger traffic began to trouble with the toilets. The reason for them was extremely simple: although the company had just been created, there was already enough confusion, and they did not know anything about the disposal of the commercial director at the sorting stations, where all the cars were considered the same. As a result, there were almost no toilets on some trains.



To remedy the situation, each car was provided with an inscription saying if there was a toilet in it, and the couplers were ordered to make up the trains so that about half of the cars had toilets. Although this complicated the work of the couplers, they soon proudly announced that they were carefully following the new instructions.



Still, the toilet troubles continued. A new investigation into their causes showed that although indeed there are toilets on the train in the train, it sometimes turns out that they all end up in one half of the train. To save the cause, instructions were issued prescribing alternate wagons with and without toilets. This added work to the couplers, however, grumbling, they coped with it.



But the problem did not end there. Since the toilets are located at one end of the car, the distance between the two adjacent toilets on the train could reach three car lengths and for passengers with children — especially if the corridors were packed with luggage — this was too far. Then the cars with toilets were equipped with an arrow, and new instructions were issued, ordering all arrows to be directed in one direction. It cannot be said that these instructions were enthusiastically met at the marshalling stations — the number of turntables was insufficient, but, straining, the couplers learned how to do this.



Now that all the toilets were at equal distances, the company was confident of success, but the passengers continued to worry: although there was not more than one wagon to the nearest toilet, it was not clear which way it was located. In order to solve this problem, arrows with the words “TOILET” were drawn inside the cars, which made it necessary to correctly orient the cars without toilets.



At the sorting stations, the new manual caused a shock: it was impossible to make what was required on time. At a critical moment, someone whose name is now impossible to establish, noticed the following. If we hook up the car with the toilet and without it so that the toilet is in the middle and we never unhook them, the sorting station will deal instead of N oriented objects with N / 2 objects that can be considered in all respects and from all points of view symmetrical. This observation solved the problem at the cost of two concessions. First, the trains could now consist only of an even number of cars - the missing cars could be paid for by saving on reducing the number of toilets, and, second, the toilets were located at slightly unequal distances. But who cares about the extra meter?



Although in the times to which our history relates, mankind did not know the computer, the unknown, who found this solution, was the first competent programmer in the world.



A source





“But, brethren, I ask you: is it fair? Does our prolonged silence undermine the unity of computer science? Is it decent to remain silent? If not, how to talk about it? ”

What if truth hurts your eyes
Sometimes we discover unpleasant truths. And when this happens, we find ourselves in a difficult position, because to conceal them - scientific dishonesty, to tell the truth - means to cause a fire on yourself. If these truths are unacceptable enough, then your listeners are psychologically incapable of accepting them and you will be glorified as completely devoid of common sense, dangerously revolutionary, stupid, cunning, or some other person there. (Not to mention the fact that, insisting on such truths, you will ensure your unpopularity in many circles and will not do without personal risk. Remember Galileo Galilei ...)



Computer science (computer science) looks seriously ill from such a contradiction. In general, she remains silent and seeks to avoid conflict, switching attention to something else (for example, with respect to Cobol, you can either fight the disease or pretend that it does not exist: many computer science departments choose the second, simpler way). But, brethren, I ask you: is it fair? Does our prolonged silence undermine the unity of computer science? Is it decent to remain silent? If not, how to talk about it?



To give you ideas about this problem, I’ll list some of these truths. (Almost all programmers I know will agree mostly with all of them. However, we have to let the world act as if we don’t know them).



Programming is one of the most difficult branches of applied mathematics: it is better for weak (poor) mathematicians to remain pure (pure) mathematicians.



Scientific and technical calculations - the simplest use of computing.



The tools we use have a deep (and subtle) influence on our ways of thinking and, consequently, on our ability to think.



Fortran - “infant disorder” with twenty years of experience - is hopelessly inadequate to any computer application today: it is too clumsy, too dangerous and too expensive to use.



PL / 1 - “fatal disease” - belongs more to the area of ​​problems than to the area of ​​solutions.



It is almost impossible to teach students who are originally oriented to BASIC to program well: as potential programmers, they are mentally duped without the hope of healing.



Using Kobol cripples the mind. His teaching, therefore, should be considered a criminal offense.



APL - a mistake brought to perfection. This is the language of the future for the programming techniques of the past: it opens up a new era for coding lovers.



Management problems in general and databases in particular are extremely difficult for people who think in a mixture of “EU-ovsky with Nizhny Novgorod” (literal translation: in terms of IBM, mixed with sloppy English).



On the use of language: it is impossible to sharpen a pencil with a blunt ax. It is also in vain to try to make it a dozen blunt axes.



In addition to mathematical abilities, the vital quality of a programmer is an exceptionally good command of the mother tongue.



Many companies that have made themselves dependent on IBM equipment (and, having done so, sold their souls to the devil) will fail under the weight of the unmanageable complexity of their data processing systems.



Neither scientific discipline nor a strong profession can be based on technical errors of the Ministry of Defense and computer manufacturers.



The use of anthropomorphic terminology in relation to computing systems is a sign of professional immaturity.



Proclaiming themselves working in the field of software (software), weak (soft) scientists make themselves even more ridiculous (but no less dangerous). Contrary to its name, software (literally: soft equipment) requires [severely] solid scientific discipline for its support.



In the good old days, physicists repeated each other's experiments in order to be confident in the results. Now they stick to Fortran, adopting each other's programs with errors.



Projects that offer natural language programming are inherently disastrous.



Isn't this list enough to be a cause for concern? But what are we going to do? Probably do your daily routine ...



If the assumption that “you would prefer that I do not worry you with trifles, sending you this,” is fair, you can add it to the list of unpleasant truths.



A source





Video















PS



I suggest to those who wish to participate in a mini-flashmob to translate Dijkstra's quotes (quotes from here or from here ).

Source: https://habr.com/ru/post/283286/



All Articles