3 ms·
I think you are giving too little credit to the "average programmer's" intelligence. He/She is after all a self-learning, problem solving biological machine :-)
by rramadass 6y ago
I think you are giving too little credit to the "average programmer's" intelligence. He/She is after all a self-learning, problem solving biological machine :-)
An organisation that treats its programmers as morons will soon have programmers that are willing and able to act like morons only. -- Bjarne Stroustrup
We all were "average programmers" at one time and didn't know better. But at some point some of us came to know(from whatever source) of a "better and correct way" of doing things and then realized that this should have been taught from the beginning. It is not enough to just teach people the syntax of a language and let them loose on the World; we have to be taught "discipline" and how to use it "correctly". In the context of this thread, that was exactly what Dijkstra strongly advocated for (see my other reply to you listing some paragraphs from EWD288).
References (Wikipedia is a good starting point though sometimes overly complicates simple ideas):
* Dijkstra's GCL - https://en.wikipedia.org/wiki/Guarded_Command_Language https://en.wikipedia.org/wiki/Guarded_Command_Language
* Hoare's Triples - https://en.wikipedia.org/wiki/Hoare_logic https://en.wikipedia.org/wiki/Hoare_logic
* Meyer's DbC - https://en.wikipedia.org/wiki/Design_by_contract https://en.wikipedia.org/wiki/Design_by_contract
* Assertions/Preconditions/Postconditions/Invariants
- https://en.wikipedia.org/wiki/Assertion_(software_development) https://en.wikipedia.org/wiki/Assertion_(software_developmen...
- https://en.wikipedia.org/wiki/Precondition https://en.wikipedia.org/wiki/Precondition
- https://en.wikipedia.org/wiki/Postcondition https://en.wikipedia.org/wiki/Postcondition
- https://en.wikipedia.org/wiki/Invariant_(mathematics)#Invariants_in_computer_science https://en.wikipedia.org/wiki/Invariant_(mathematics)#Invari...