From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,92471489ebbc99c6 X-Google-Attributes: gid103376,public From: Robert A Duff Subject: Re: Y2K Issues Date: 1998/10/26 Message-ID: #1/1 X-Deja-AN: 405346809 Sender: bobduff@world.std.com (Robert A Duff) References: <362B53A3.64E266AB@res.raytheon.com> <362B8D2F.802F42E6@lmco.com> <710nnc$jop@felix.seas.gwu.edu> Organization: The World Public Access UNIX, Brookline, MA Newsgroups: comp.lang.ada Date: 1998-10-26T00:00:00+00:00 List-Id: mfeldman@seas.gwu.edu (Michael Feldman) writes: > Unlike the Y2K "problem", which is caused by the unintended > consequences of an old but intentional engineering decision ^^ > (2-digit years in the days of expensive storage), Hmm. I wouldn't call it a single design decision. Lots and lots of folks made this same decision, semi-independently of each other. I imagine it was sometimes intentional, and sometimes not. Anyway, IMHO these decisions aren't the cause of the Y2K problem. Lack of abstraction is. If you wrote a million-line program a long time ago, and decided 2-digit years were the right trade-off, and documented that fact, and documented why, and encapsulated that decision in a single module, then finding and fixing the problem would be no big deal. On other hand, if you scatter that knowledge all over the program, then it's a huge amount of trouble to find all those places. If you lose the source code, it's even worse. I would be naughty if I didn't mention Ada in a posting to this newsgroup, so I'll just point out that Ada makes it a lot easier to encapsulate this sort of thing than COBOL does. I also can't help but point out that two 8-bit quantities can of course store a year-range of 65,536 years, so something's wrong when somebody decides to use 16 bits to represent a 100-year range, because they're short on memory, and 32 bits is too costly. That kind of decision sounds more "convenient" or "expedient" than "intentional". >...the leap-year > bug is a _bug_, and is, apparently much more widespread than > just this Microsoft case. In scouring code for the 2-digit > problem, they are discovering the bug as well. > > Amazing. Where did these people go to school? Maybe I'm just cynical, but I don't find bugs to be "amazing" anymore. ;-) - Bob -- Change robert to bob to get my real email address. Sorry.