September 17th, 2005

pce

Computer Science is JAVA

Come Monday, and I am back to `teaching' Java ... Oh, how I hate this stupid language!

It seems programming languages too have personalities, just like human beings. You simply can't stand certain languages; and you will love certain others. I personally abhor Java and C++ and love Python and C; it's difficult to do precise technical comparisons of languages - but just like it is in love, there seems to be some kind of `chemistry' between the programmer and his language(s). I had started using Python a long long time back, and it was almost love-at-first-sight. I am happy to say that my devotion has stood the test of time - I still adore Python and consider it to be THE Best language in existence, surpassed only by C in the domain of systems level programming (where C is still unmatched).

Meantime, I watch with amusement as hundreds of our great would-be Software `Engineers' go after Java/Javascript/J2EE as if that is what Computer Science is all about. Forget algorithms, forget Don Knuth, forget Edsger Dijkstra - Computer Science means JAVA.

Computer Science is also .NET - one of our englightened universities (in Bangalore, the Silicon Valley of India) has started a M.Tech in ".NET technologies" to create future engineers who can take India forward on the dot-netty road to techno super-stardom.

There is nothing wrong in learning bread-and-butter stuff; but what I find horrifying is that many of the guys who learn these pedestrian things sincerely believe that they are learning `cutting edge technology'. Even though we don't teach or learn Computer Science in our colleges, I think our students should at least be made aware of what `real' Computer Science is; that's the minimum we can do.

I think every Computer Science classroom should display this quotation prominently:

Computer Science is no more about computers than astronomy is about 
telescopes.
                       -Dijkstra
The very first lecture on Computer Science should be devoted fully to explaining what this quotation really means.

It's time for me to revise my Java once again .....