Tuesday, 18 March 2008

Why I like computer science

I was at a dinner party the other night, explaining to a group of strangers how the Internet works. Whether out of genuine interest or politeness, they were very encouraging, even when I got onto protocols and layers and packet-switching. Why? Because I explained it in terms that they could understand. Saying 'layman's terms' would be patronising - all I did was use familiar terms and concepts, and luckily they were intelligent people with a lot of common sense. By common sense I mean they had a lot of handles upon which to hand new concepts - they could find similar ideas to the computing ones I was expressing.

And for me the two main points of interest in studying this subject are its relevance and its techniques. Computer science is relevant because we live in the age of computers. We watch films like Terminator, nightmare visions of a world where machines have aquired consciousness and taken over. Consciousness, questionable. No idea whether that's going to happen. But taken over? Already happened, baby. There is nary an area of human activity which is not highly dependant on computers.

As for techniques, the complexity of computers is staggering, with requirements for extremely precise mechanical, electrical and electronic components, run by perhaps even more complex software. The length of computer programs is measured in lines of code. Here is one line:

for (int i = 0; ihttp://www.leshatton.org/Documents/LOC2005.pdf
Windows 2000 contains perhaps 30 million, XP around 40 million. Vista, who knows?

Red Hat Linux 7.1, being open source, allows for direct measurement and contains over 30 m lines of code. http://www.dwheeler.com/sloc/

That represents about 8,000 person years of programming. This is rather a daunting statistic, showing the complexity of things we're starting to take for granted.

So what is it about this that doesn't just trigger snoring for me? What do I actually find fascinating?
(to be continued)

No comments: