I totally agree people should stop making excuses for Microsoft. At the same time, rants against complexity in general always make me think of this quote:
"For every complex problem, there is a solution that is simple, elegant, and wrong." -- Mencken
Changing timezones have caused some of the most complicated things in the coding I've done. It seems so simple, but its never right. Look at how many different libraries are in the standard Java library to handle time.
Sun got it wrong the first time and again the second time. I haven't looked at the Java 7 api, but they'll probably get it wrong the third time.
OK, I took a quick look. It's better, but still not what I would consider an easily usable system. I will still have to write a parser that will take unconstrained user input. There are 8 or 10 formats that are unambiguous and easy to recognize. Do it. Joda-Time has too many classes. Will it work seamlessly with SQL Date?
Ironically I think it's just as likely that it was simplicity that caused the error rather than complexity:
Older Microsoft Windows systems usually store only a single start and end rule for each zone^
If only they were forward thinking enough to know that laws change... and thus DST will eventually change too. A similar form of naive simplicity caused the Y2K mess. I think this falls in line with that incident.
I agree that Microsoft should have properly solved this problem on all OSes and pushed the solution back in 2006. It's ridiculous that this is still a problem on a recently installed recently patched box. Especially on XP which is currently their core market.
Yeah. And the changelog for the tzdata package is quite interesting in that regard. Usually changes in timezone information occur months or years before they actually need to occur (including recognizing leap seconds).
The worst part about time on Windows is that the system clock is always set to localtime.
With that as the default, nearly all Windows software is completely timezone-ignorant, which is especially shitty for web software. The most support I ever see is a user preference for "Server time +/-N:00", which forces foreigners to manually fiddle with it twice a year.
Just one of the many bullshit misfeatures that Microsoft should have fixed with NT but chickened out on.