In a recent post on James Robertson's blog entitled Re: This is interesting he wrote

In this post, I was stunned by the notion that an air traffic control system might be on win 95/98. Commenters pointed out this link, which indicates that the more likely explanation is this:

The elapsed time is stored as a DWORD value. Therefore, the time will wrap around to zero if the system is run continuously for 49.7 days.

This is just too amusing for words. A multi-hour shutdown caused by static typing, and the fact that many typing decisions in languages that require it end up being essentially random. Note to static typing advocates - had they used Smalltalk, this kind of problem would be impossible....

As pointed out by several of the comments in his post the problem had nothing to do with static typing versus dynamic typing. Instead the problem is that when the type overflows instead of erroring it simply wraps around. Whether the name of the type is known at compile time or not (i.e. static typing) really doesn't come into the question.

James Robertson is a Smalltalk advocate and just like every other advocate of a niche programming language (e.g. Lisp advocates)  he spends lots of time ranting about how every problem that exists in programming languages today was solved 20 years ago in his language of choice. The main problem with James's post isn't that he incorrectly judged the root of the issue.

The main problem with his post is that even though many people corrected his error, he has stubbornly stuck to his guns. Now instead of just seeming like he made a mistake which was pointed out by his readers he now looks like he either (a) twists issues to fit his agenda regardless of the truth or (b) is unknowledgeable of the topics he is trying to argue about.

If you are trying to convince people to come to your side in a technical discussion, refusing to admit flaws in your arguments is more likely to lose you supporters than gain them. Stubbornly sticking to your guns after being shown the error of your ways may work for the Bush administration when it comes to the War on Iraq but it doesn't win you many technical debates.


Monday, 04 October 2004 03:15:34 (GMT Daylight Time, UTC+01:00)
If you count honest disagreement as "stubbornly sticking to your guns", I suppose you have a point. I guess now that 4 people have chimed in to say "clearly we are correct", I should just hang it up. Read my responses - it's not "stubborn disagreement" - it's my take on the matter.
Monday, 04 October 2004 06:24:26 (GMT Daylight Time, UTC+01:00)
I read your responses. Looked like stubborn disagreement to me. The issue is cut and dried. If the language in question was dynamic the code would still be broken since the problem is the type wraps around. On the other hand if the numeric type used was a BigDecimal or similar type it would not be regardless of whether the language was static or dynamic.

It seems you were trying to argue 'if the language was Smalltalk this wouldn't have happened' which is very different from arguing 'if the language was dynamic'.
Monday, 04 October 2004 12:32:05 (GMT Daylight Time, UTC+01:00)
Have a look here:

for the point I was (apparently badly) trying to make
Comments are closed.