Abhay Shivgounda Patil

About what matters.

Remembering Dijkstra

with 2 comments

A few days ago I was asked to inaugurate the Jigyasa Techfest at IMCC Jigyasa03and I chose that occasion to revisit some of the quotes by an eminent computer scientist Edsgar Dijkstra. I decided to take help of another eminent person, but from the arena of probability and randomness,  Nassim Nicholas Taleb (NNT), to highlight one of the quotes by Dijkstra.  I decided to begin the presentation with a poll based on a thought experiment by NNT.

Say, you are a cancer specialist. You have the the investigation report which shows no trace of cancer.  Now, is it evidence of absence of cancer or is it absence of evidence of cancer?  The show of hands in the auditorium indicated that the opinion was evenly divided.

The answer is: it is the absence of evidence of cancer.  As there is always a finite probability that the investigation report may miss something, it just can’t be evidence of absence. All we can say is there is absence of evidence.

dijkstraNow – how does that lead us to Edsgar Dijkstra?  Here is what Dijkstra says about software testing and bugs.

“Program testing can be used to show the presence of bugs, but never to show their absence”

Get it? When you find bugs, that’s obvious. But if you don’t find bugs, it means exactly that and nothing more – you did not find bugs – period. You can’t vouch that the program is bug free just because you didn’t find any bugs.

Edsgar Dijkstra has some pretty entertaining quotes to his credit – more about those later in this blog.  Right now let’s see some that relate to computer science, design and learning.

“Computer science is no more about computers than astronomy is about telescopes”

Will you call surgery “knife science”? No! Isn’t the term Computer Science a misnomer then? Think.

Simplicity is prerequisite for reliability”

How does one craft a good design? After asking this question, I stunned the audience with the answer: KISS!  As you know, it’s an acronym for Keep It Simple, Stupid!   So, when in doubt, always choose simple over complex. The problems we face are surely complex, but it is a well accepted principle  that you can’t fight complexity with complexity. Simplicity is the right weapon.

“Perfecting oneself is as much unlearning as it is learning”

My programming mother tongue was FORTRAN.  Later,the teacher who taught us Pascal warned us that unless we unlearn our FORTRAN ways, we won’t be able to exploit Pascal fully. Otherwise, he said, we would join the tribe of programmers who code in FORTRAN in any language!  With so many new languages and programming techniques coming our way, it is absolutely critical that we develop the ability of unlearning old ways to meaningfully embrace the new new things.

As promised, let me quote three of the more famous, and entertaining, utterances of Dijkstra that amuse me no end.

“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.”

“The use of anthropomorphic terminology when dealing with computing systems is a symptom of professional immaturity”

Hmm. Think hard about the last one.

Postscript: I found another gem, that generated a great dialog when I posted it on Facebook.

“Besides a mathematical inclination, an exceptionally good mastery of one’s native tongue is the most vital asset of a competent programmer.”

Read this paper if you want to know how do we tell truths that might hurt.

– Abhay

Written by Abhay Shivgounda Patil

February 15, 2014 at 6:32 am

2 Responses

Subscribe to comments with RSS.

  1. Abhay …. never knew your literary talent … always remember you as one of the finest actors

    Panja

    Mrugank Paranjape

    February 15, 2014 at 12:18 pm


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: