Friday, November 10, 2006

Bloat

At the moment, my job requires me to look at the Java standard libraries, and my goodness, there is so much bloat there that it's just not funny. I was astonished that the world needed Boolean(String), but apparently we also need static Boolean valueOf(String). They both require a case-independent(!) string comparison which drags in a whole can of Unicode-related worms.

This reminds me of one of the other JAOO talks, by Walter Bischofberger of Computer Tomography GmbH. Their Sotograph tool does analyses of very large software projects in Java, C/C++ or C#. It's able to work at several different levels showing dependencies between classes, packages, modules etc. Bischofberger's standpoint was that keeping dependencies between different parts of a program to a minimum is very important for keeping a program understandable and modifiable. The relevant Anti-pattern is Big Ball of Mud. As a sort of illustration, they showed a graph of a huge blob of mutually dependent classes in the J2SE standard libraries - 1315 of them in all. He also showed it's been getting worse for each release of the SDK.

That's sort of depressing, even for someone like me who isn't quite as sensitive to smelly code as some people can be.

Tuesday, November 07, 2006

Wot no audit trail

As the US elections get underway it seems there's trouble with the voting machines again. Frankly, it's a mystery to me how the richest democracy in the world continues to make a pig's ear of something as simple as voting in a first-past-the-post system.

Having personally observed the process of a national election vote count in the UK, I'd like to tell the administrators of the USAmerican polls how it can be done. You give every voter a piece of paper, and ask them to put a cross by the name of their preferred candidate. Then you count the bits of paper. And if there's any doubt you can count them again.

That's it.

Not exactly rocket science.

No hanging chads. No Heath Robinson contraptions. No machines that can be easily tampered with.

Of course, you may have to wait a few hours for the results. Woop-de-doo.