Thursday, 15 March 2007


Against stupidity the gods themselves contend in vain

- Friedrich von Schiller

With that piece of advice from the great German writer, who am I to try?

I must be pretty stupid to ignore Schiller, which means I outclass the regular idiot. So I will contend with them.

The particular stupidity I have in mind is the extreme reluctance of society – especially major opinion-formers like the press and political leaders – to accept scientific consensus when it flies in the face of tradition. Especially when that tradition has mega-bucks behind it.

Let's contemplate a few examples.

1. Free or Open-source software

In South Africa, c 2000, I was involved in writing a report for the governement on why free software represented a big opportunity to South Africa. Not only would there be massive savings in government costs in software licensing, but a small fraction of that saving could be diverted towards developing local software development talent.

While there are divided views on this subject, there is a growing consensus in acadamia and industry that at least some areas of software development are best done on a free license basis. For example, Sun has opened their Solaris operating system, Apple's Darwin core of Mac OS X has been open for years, and IBM has embraced Linux.

So the report I was working on wasn't particularly prescient: it was informing government of a trend they could tap into.

The consequence?

Very little happened immediately but about 2 years later, the government recalibrated funding per discipline for undergraduate degrees, and dropped computer science to a category below pure mathematics, an overnight drop of 40%. Why? No one has been able to give me a satisfactory answer, except that the government based its figures on data from universities, which have traditionally underfunded computer science, as a cash cow for less popular subjects like physics. Another explanation: some of the crap universities were teaching basic computer literacy as "computer science", and this is very cheap to teach. Put 1,000 students in front of a lecturer who has the class memorise the menus on Excel.

Do I need explain more how idiotic this is?

Maybe just a bit.

Computer science, if taught properly, needs two things which are expensive: a good ratio of equipment to students, and a good student:staff ratio. Without the first, programming is hard to teach at all unless a lot of the students can afford their own equipment. The second is important to have quality time to get in the deeper concepts.

Add in the imperative to teach "currently useful" stuff, and the fact that someone who can look after a large computer network has skills in high demand in industry, and you have a high recurrent cost. You need to turn over your labs at least once every 3 years, and you need relatively highly paid technical staff to maintain them.

If you compare this against teaching physics, the same student:staff ratio argument applies. The equipment one does not apply to the same extent: undergrad physics can on the whole be taught with relatively inexpensive equipment which does not go out of date fast. And you can train up a physics lab technician with skills not much in demand in industry.

Finally, a really big difference between computer science and physics is that much of the most advanced CS research is very inexpensive. Commodity PCs can be used in many cases, even borrowing from the undergrad labs if necessary. Whereas a subject like physics becomes really expensive once you start wandering off pure theory.

This last point brings me back to my starting point.

A free software movement in South Africa would require very little funding to get going compared with almost any industry associated with advanced physics research. The skills developed could affect many areas of society, in delivering more efficient services, briding the digital divide, and providing a base for exports.

2. More

That's enough for this time. Further topics: tobacco control; climate change.

Watch this space.