Post by sarossell on Jan 10, 2020 5:51:53 GMT -5
Edsger Wybe Dijkstra was a brilliant Dutch software engineer and pioneer in computing science. He developed algorithms that are considered nothing short of canon today. His research defined several aspects of compiler design and programming methodology used to this day. His work also led to concepts that are accepted definitions of operating system design, particularly in regard to concurrent and distributed computing and programming models, among several other concepts.
He was also an arrogant, mouthy jackass who, over the last several decades, has been constantly quoted out of context regarding a single statement he made in 1975 about the BASIC programming language.
On June 18, 1975 he sent out a memo that included the single line, "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." This one statement has been quoted out of context by snobbish, elitist programmers for decades to malign the BASIC programming language, suggesting it is a sub-standard programming language at best.
But, like all things in the past, you have to read some history books to get the true and complete story.
In 1975, Dartmouth BASIC was just getting on its feet. Sure, it was first released in 1963 and well over a decade had passed since then, but it was still a very young project relatively speaking. It had some serious limitations at the time. Variable names were only one letter long with an optional digit. Subroutines were nothing more than GOSUB commands to line numbers followed by a RETURN. Parameter passing had to be done with global variables. There were only 26 possible user-defined functions, and they could only contain one line of code. And IF statements were limited to one line of code as well. Holy crap! That's not the BASIC I know.
So, okay, Dijkstra might have had a point...IN 1975!!!
So, in the interest of bringing history to the forefront on this issue, I have included Prof. Dijkstra's original rant below (I hope you enjoy):
-Scott :@)
He was also an arrogant, mouthy jackass who, over the last several decades, has been constantly quoted out of context regarding a single statement he made in 1975 about the BASIC programming language.
On June 18, 1975 he sent out a memo that included the single line, "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." This one statement has been quoted out of context by snobbish, elitist programmers for decades to malign the BASIC programming language, suggesting it is a sub-standard programming language at best.
But, like all things in the past, you have to read some history books to get the true and complete story.
In 1975, Dartmouth BASIC was just getting on its feet. Sure, it was first released in 1963 and well over a decade had passed since then, but it was still a very young project relatively speaking. It had some serious limitations at the time. Variable names were only one letter long with an optional digit. Subroutines were nothing more than GOSUB commands to line numbers followed by a RETURN. Parameter passing had to be done with global variables. There were only 26 possible user-defined functions, and they could only contain one line of code. And IF statements were limited to one line of code as well. Holy crap! That's not the BASIC I know.
So, okay, Dijkstra might have had a point...IN 1975!!!
If anything positive can be said about Prof. Dijkstra's flapping gums was that his scathing criticism of BASIC at the time led the creators of Dartmouth BASIC to upgrade it to a version called "Structured BASIC" which included elements of programming that have become the standard today; most notably, the lack of line numbers. That's right folks, BASIC was a structured programming language nearly half a century ago!
And to be fair, AT THE TIME, BASIC was a bit of a train wreck. But it grew up. It evolved. And it has its place in modern computing today. BASIC has evolved into a stable, powerful, structured programming language, especially with Liberty BASIC. But more importantly, it has all the capability of C++ or Swift without all the ridiculously obscure syntax.
I wanted to share this with you so you might be able to appreciate that BASIC is not only an acceptable programming language among the likes of modern programming languages today like Python, Java, C++, or Swift, but is in fact a very powerful programming language in its own right; even more so (much more) in the case of Liberty BASIC. Other versions of BASIC have weathered the test of time over the years in different ways; Microsoft's Visual BASIC embraced the .NET architecture and became a rolling nightmare, RealBASIC became Xojo and turned into something amazingly NOT BASIC. And BBC BASIC has soldiered on (as the British so often do) by just continuing to do what it has always done. But as far as I can tell, only Liberty BASIC has managed to not only keep up the practice of structured BASIC syntax, but has also managed to quite effectively evolve to include functionality for DLLs and GUI design without compromising the language itself. No other BASIC can make that claim. Put simply, be proud. BASIC is real. BASIC is here to stay. And dangit, it's way more fun.
So, in the interest of bringing history to the forefront on this issue, I have included Prof. Dijkstra's original rant below (I hope you enjoy):
Sometimes we discover unpleasant truths. Whenever we do so, we are in difficulties: suppressing them is scientifically dishonest, so we must tell them, but telling them, however, will fire back on us. If the truths are sufficiently unpalatable, our audience is psychically incapable of accepting them and we will be written off as totally unrealistic, hopelessly idealistic, dangerously revolutionary, foolishly gullible or what have you. (Besides that, telling such truths is a sure way of making oneself unpopular in many circles, and, as such, it is an act that, in general, is not without personal risks. Vide Galileo Galilei.....)
Computing Science seems to suffer severely from this conflict. On the whole, it remains silent and tries to escape this conflict by shifting its attention. (For instance: with respect to COBOL you can really do only one of two things: fight the disease or pretend that it does not exist. Most Computer Science Departments have opted for the latter easy way out.) But, Brethren, I ask you: is this honest? Is not our prolonged silence fretting away Computing Science's intellectual integrity? Are we decent by remaining silent? If not, how do we speak up?
To give you some idea of the scope of the problem I have listed a number of such truths. (Nearly all computing scientists I know well will agree without hesitation to nearly all of them. Yet we allow the world to behave as if we did not know them....)
• Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians.
• The easiest machine applications are the technical/scientific computations.
• The tools we use have a profound (and devious!) influence on our thinking habits, and, therefore, on our thinking abilities.
• FORTRAN --"the infantile disorder"--, by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use.
• PL/I --"the fatal disease"-- belongs more to the problem set than to the solution set.
• It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
• The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.
• APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums.
• The problems of business administration in general and data base management in particular are much too difficult for people that think in IBM-verse, compounded with sloppy English.
• About the use of language: it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead.
• Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer.
• Many companies that have made themselves dependent on IBM equipment (and in doing so have sold their soul to the devil) will collapse under the sheer weight of the unmastered complexity of their data processing systems.
• Simplicity is prerequisite for reliability. [Handwritten annotation]
• We can found no scientific discipline, nor a hearty profession on the technical mistakes of the Department of Defense and, mainly, one computer manufacturer.
• The use of anthropomorphic terminology when dealing with computing systems is a symptom of professional immaturity.
• By claiming that they can contribute to software engineering, the soft scientists make themselves even more ridiculous. (Not less dangerous, alas!) In spite of its name, software engineering requires (cruelly) hard science for its support.
• In the good old days physicists repeated each other's experiments, just to be sure. Today they stick to FORTRAN, so that they can share each other's programs, bugs included.
• Projects promoting programming in "natural language" are intrinsically doomed to fail.
Isn't this list enough to make us uncomfortable? What are we going to do? Return to the order of the day, presumably.......
18th June 1975 prof.dr.Edsger W.Dijkstra
Plataanstraat 5 Burroughs Research Fellow
NUENEN - 4565
The Netherlands
Computing Science seems to suffer severely from this conflict. On the whole, it remains silent and tries to escape this conflict by shifting its attention. (For instance: with respect to COBOL you can really do only one of two things: fight the disease or pretend that it does not exist. Most Computer Science Departments have opted for the latter easy way out.) But, Brethren, I ask you: is this honest? Is not our prolonged silence fretting away Computing Science's intellectual integrity? Are we decent by remaining silent? If not, how do we speak up?
To give you some idea of the scope of the problem I have listed a number of such truths. (Nearly all computing scientists I know well will agree without hesitation to nearly all of them. Yet we allow the world to behave as if we did not know them....)
• Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians.
• The easiest machine applications are the technical/scientific computations.
• The tools we use have a profound (and devious!) influence on our thinking habits, and, therefore, on our thinking abilities.
• FORTRAN --"the infantile disorder"--, by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use.
• PL/I --"the fatal disease"-- belongs more to the problem set than to the solution set.
• It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
• The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.
• APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums.
• The problems of business administration in general and data base management in particular are much too difficult for people that think in IBM-verse, compounded with sloppy English.
• About the use of language: it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead.
• Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer.
• Many companies that have made themselves dependent on IBM equipment (and in doing so have sold their soul to the devil) will collapse under the sheer weight of the unmastered complexity of their data processing systems.
• Simplicity is prerequisite for reliability. [Handwritten annotation]
• We can found no scientific discipline, nor a hearty profession on the technical mistakes of the Department of Defense and, mainly, one computer manufacturer.
• The use of anthropomorphic terminology when dealing with computing systems is a symptom of professional immaturity.
• By claiming that they can contribute to software engineering, the soft scientists make themselves even more ridiculous. (Not less dangerous, alas!) In spite of its name, software engineering requires (cruelly) hard science for its support.
• In the good old days physicists repeated each other's experiments, just to be sure. Today they stick to FORTRAN, so that they can share each other's programs, bugs included.
• Projects promoting programming in "natural language" are intrinsically doomed to fail.
Isn't this list enough to make us uncomfortable? What are we going to do? Return to the order of the day, presumably.......
18th June 1975 prof.dr.Edsger W.Dijkstra
Plataanstraat 5 Burroughs Research Fellow
NUENEN - 4565
The Netherlands
PS. If the conjecture "You would rather that I had not disturbed you by sending you this." is correct, you may add it to the list of uncomfortable truths.