Saturday, January 27, 2007

Can India create the next Ken Thompson?

I have this strong feeling that it's not companies that bring new technology but some great people do. In the history of practical computer programming one name remains in the annals of computer science and that's Ken Thompson. But then why Ken Thompson? There are many turing awardees in computer science. Because Ken Thompson is not a scientist but in more sense an architect, a practitioner.

Ken Thompson and Dennis Ritchie were awarded the Turing award for their seminal work on Unix operating system. This OS is by far a parsonal effort designed to do complex things of multics simple and more so from an architectural perspective probably creating the OS that's understood most as far as kernel internals are concerned. I will describe in brief two of Ken's fundamental work here.

1. Reflections on Trusting Trust
2. The UTF-8 specification

Both are unique in some way. The first one essentially says to be able to use any basic system you have to trust at least one thing blindly that's the login code of unix or compiler or something like that. If you look at it in a higher plane this is the fundamental of the whole trust key chain concept. You are creating one blind trust. The second interpretation could be can you trust code which is hidden from you the whole open source vs. close source divide. No doubt Ken said: -

The act of breaking into a computer system has to have the same social stigma as breaking into a neighbor's house.

As it's just as much of a moral hazard than a security hazard as you will like to protect it with.

The second interpretation is adaptability. It's an answer to distinction between representation and concept. The character is a concept and representation of character as a single byte is a mere representation. And one dinner this was made clear with one of the simplest representations of character encoding.

So how should all these seem for technologists?

It's about making simple paradigms. In Ken's words:-

"I am a programmer. On my 1040 form, that is what I put down as my occupation. As a programmer, I write programs."

In my opinions the Indian software industry is yet to understand this. It's about programs silly. I have heard many managers saying: "Coding!!! Man I have grown above it. I do manage not code". I don not know what do we manage. 80 percent of software out there is about massaging strings in various forms. A problem which have been reasonably done in the past ample number of times. There will be probably a millions forms of HTML parsers sitting in every corporate source code repository doing nothing significantly better but they are there as some developer felt understanding the standard HTML parser is essentially a hard job or did not have the patience to learn HTML. Some will nicely put it as this HTML parser is suited for our kinds of applications and similar notes. I cannot blame them. After all such codes run enterprises, I do not.

What it all means to an Indian context? I think it's about creating the environment conducive to create a great programmer like Ken Thompson. This is not hard I believe. More over as managers of software technology it's our job to learn technology and not the hype of technology and have respect for the technology and technologists. It's my earnest appeal to the community at large.

1 comment:

Samrat said...

Very well written blog . my compliments