COBOL and MUSKateers

AI Thread Summary
The discussion centers around the COBOL programming language and its handling of date defaults, particularly the claim that it defaults birthdates to 1875, which may confuse figures like Musk regarding government benefits. It highlights that COBOL, like many older systems, often stored dates in formats that could lead to initialization errors, particularly with legacy systems from the 1950s. The conversation touches on the historical context of date handling in computing, including the Y2K problem and various default dates used by different systems. Participants also mention the implications of these date defaults for historical records and the need for updates to accommodate modern date requirements. Overall, the thread emphasizes the complexities and quirks of COBOL's date management and its relevance to current discussions about government benefits.
hutchphd
Science Advisor
Homework Helper
Messages
6,941
Reaction score
6,018
TL;DR Summary
birthdates to 1875 as an error code ? I would like to know whether this (rather arcane ) default mechanism for COBOL is true
Calling all COBOL geeks........

I have never used COBOL. I wonder about the latest claims of waste fraud and abuse made by Trump/Musk about 150 yr old recipients of government largesse. Talking heads claim that, in fact, COBOL actually
defaults birthdates to 1875 as an error code . I would like to know whether this (rather arcane ) default mechanism for COBOL is true and therefore Musk is very confused.

Calling all COBOL geeks........
 
Last edited:
Technology news on Phys.org
It's wasn't uncommon to store dates as yymmdd or mmddyy in systems during the 1950s.

Some systems had a default start date for internal clocks. Unix used January 1, 1970 and PC DOS used January 1, 1980.

For mainframes it varied widely from 1858 to 1875 to 1900 to 1906 based on calendar systems adopted. 1858 was for the modified Julian calendar for astronomy applications. 1875 was for insurance applications made in the 1950s and 1960s to avoid negative dates, I guess because they thought no one was older than 75-85 years old.

Later as year2k loomed, they worried about date/time rollover and so started to patch and extend date fields for 4 digit years.

It's a fascinating subject between computer limitations, workarounds, screwups and calendar system changes and corrections. In particular, historians have to be mindful of these as they study old documents and have to consider the author as well to know how to adjust dates.
 
  • Like
Likes .Scott, Klystron and hutchphd
Thanks very much. The number 1875 seemed odd to me.
I think Musk was in fact perusing Social Security and Medicare records. So this might well be an "initialization to zero" problem and likely not a waste fraud and abuse problem by a cadre of 150 yr old miscreants.
 
  • Like
Likes FactChecker and jedishrfu
hutchphd said:
likely not a waste fraud and abuse problem by a cadre of 150 yr old miscreants.
Well, I don't know. Those 150 year olds are sneaky bastards !
 
  • Haha
Likes FactChecker
What's curious was the civil war bride stories where these old men were getting govt pensions and toward the end of their life would marry their caregiver so they could inherit the pension.

The longest was the daughter, Irene Triplett, of a civil war soldier received a $73 per month pension until 2020. Her father was 78 when he married her mother who was 30 in 1924 and then in 1930 she was born and lived another 90 years. She was mentally impaired and qualified to receive the pension on those grounds. It spanned a 155 years after the end of the civil war before the final pension amount was paid out estimated to be $73k and adjusted to be $344k today.
 
  • Wow
  • Like
  • Informative
Likes Klystron, jtbell, FactChecker and 2 others
phinds said:
Those 150 year olds are sneaky bastards !
I know I'm working on it..........almost halfway there!
 
  • Like
Likes Klystron and phinds
It was therefore already known - at least theoretically - that the long data type required for storage would no longer be sufficient to represent the system time at some point, namely on January 19, 2038 at exactly 3:14 a.m. and 7 seconds (UTC)

Different platforms have different "Y2K" failures
Sample Y2K problem , when storage for single precision valuables overflow.
 
Klystron said:
a scam ... to the benefit of itinerant coders.

Verging on political: Careful, comrade. :wink:
 
Swamp Thing said:
:wink:
Is this an H1-B Visa joke? (I just don't get the funny, 'Splain? )
 
  • #10
hutchphd said:
Is this an H1-B Visa joke?

If it was, it wouldn't be very wise to 'splain. Given the recent reminder message about politics etc.
 
  • #11
Klystron said:
AFAIK the Y2K "bug" was a scam amplified by untrained managers and media sensationalists to the benefit of itinerant coders.
While I thought it was all marketing for the Y2K jelly, that was used by programmers on dates, to put 4 digits where they used only to put two.
 
  • #12
This is, surely and rapidly, getting out of hand.
 
  • #13
Klystron said:
While FORTRAN was my early computer language, an ex-BiL was a COBOL expert. He contended that common business data entry methods, primarily on Hollerith cards, restricted accurate date specifications along with data storage costs. Management saw "19xx" on dates and demanded removing "redundant" 19 digits.

The 80-column punch card indeed restricted data entry if you wished to use one card per person in, say, an IRS database. Using two or more cards risked failure if they were dropped, if they had a customer number but were left unsorted, or if there was a card jam...

However, there were other areas where computer clocks were limited to specific bit lengths, such as 24 bits or 32 bits, in which the clock's zero represented a starting date. In a previous post, I mentioned that mainframes had start dates like January 1, 1900, Unix machines used January 1, 1970, and PC DOS machines started on January 1, 1980.
 
  • Informative
Likes hutchphd and Klystron
  • #14
The IBM System/360 had a date format with 2 digits for the year.

IBM Systems Reference Library
IBM System/360 Operating System
Control Program Services

svc11.jpg


Changing to a 4-digit year genuinely was necessary for disambiguation, and all the mainframe software vendors had Y2K-compliant editions of their software products, and the IBM mainframe systems programmers were legitimately busy implementing all the required IBM and ISV and independent code changes and customizations, and the applications programmers were diligently updating many thousands of lines of code, in Cobol, PL/1, Fortran, Algol, Assembly, and other languages.

In the '60s, the System/360 MVT COBOL compiler defaulted the presumed century digits to '19'.

Jay Moseley, one of the co-authors of the Hercules IBM Mainframe Emulator, wrote a patch for users of the (no license required) IBM System/360 MVT COBOL compiler:

Jay Moseley said:
Patch for Year 2000 (and beyond) December 2021

Recently I have been doing more compilations with the MVT COBOL compiler, and it finally began to bug me seeing the 19?? date in the COBOL listing header, not to mention the missing space between the day of the month and the year. I am certain that at one time there was a patch floating around to fix the century in the header, but if I recall correctly, it simply replaced the '19' with '20', and, regardless, I could not find the patch after a reasonable time searching. Anyway, I was interested in not just a brute plugging of the incorrect century, since I also wanted to correct the incorrectly spaced punctuation. And I often read a criticism from Brian Tiffin on the GnuCOBOL lists about breaking things with updates, so I thought it would be nice if my patch would allow compiles if the system date falls in 2000 or beyond, but would also handle pre-2000 dates, just as it had been doing. So, I have written an AMAZPZAP jobstream to patch the CSECTs IKFCBL01 and IKF011 in load module IKFCBL01 to achieve these two goals. I mostly utilized the date building code that was originally there, but computed the century by adding 1900 to the century byte that is provided by MVS with a TIME SVC request. I have applied the patch to the load module in SYSC.LINKLIB, so if you are a user of my SYSCPK volume, simply grab a new copy for your system and you are good to go. The jobstream that will allow you to apply the patch to the MVT COBOL compiler if it is located in another library on your system is available here: mvtcobol.y2k.patch.jcl. If you want to see the output from the patched compiler, look at any of the output PDFs from the COBOL compile jobs in the link immediately above.

March 2021 Marco Verpelli found a buglet in the patch above. The only major deviation from IBM's code that I made in the date formatting was to use the EDit instruction to move the day to the output field, so of course I made an error in the edit mask. Marco discovered after using the patched COBOL compiler that a x'20' was left in the date. The patch has been corrected and the COBOL compiler contained on SYSCPK has had the correct patch applied.

https://www.jaymoseley.com/hercules/compilers/mvtcobol.y2k.patch.jcl
Code:
//CBLPATCH JOB (001),'PATCH IKFCBL01      ',CLASS=S,MSGCLASS=X          00000100
//*                                                                     00000200
//* ------------------------------------------------------------------- 00000300
//* SYSC.LINKLIB(IKFCBL01, CSECT: IKFCBL01)                             00000416
//*   REPLACE CODE THAT ESTABLISHES EXECUTION DATE USED FOR PRINT       00000500
//*   HEADING AND DATE-COMPILED IN PROGRAM LISTING FOR MVT COBOL        00000600
//*   COMPILER. RESULTING IKFCBL01 WILL CORRECTLY PRODUCE DATE STRING   00000700
//*   FOR EITHER 1900 ERA OR 2000 ERA COMPILATIONS.                     00000800
//* SYSC.LINKLIB(IKFCBL01, CSECT: IKF011)                               00000916
//*   CORRECT PLACEMENT OF DATE IN HEADING LINE TO ALLOW PROPER         00001016
//*   POSITIONING OF PUNCTUATION (COMMA) IN DATE STRING WITHOUT         00001116
//*   TRUNCATION OF DATE FIELD WHEN MOVED TO PRINT LINE                 00001216
//* ------------------------------------------------------------------- 00001300
//*                                                                     00001400
//ZAP      EXEC PGM=IMASPZAP                                            00001500
//SYSPRINT DD  SYSOUT=*                                                 00001600
//SYSLIB   DD  DISP=SHR,DSN=SYSC.LINKLIB                                00001700
//SYSIN    DD  *                                                        00001800
  NAME   IKFCBL01 IKFCBL01                                              00001900
  VER 065C 47F0,56B6                                                    00002000
  VER 0661 D1C1,D540,40F5,6BF1                                          00002100
  VER 0669 F9F6,F640,4040,40                                            00002200
  VER 0670 D1C1,D503,1C                                                 00002300
  VER 0675 C6C5,C202,8C                                                 00002400
  VER 067A D4C1,D903,1C                                                 00002500
  VER 067F C1D7,D903,0C                                                 00002600
  VER 0684 D4C1,E803,1C                                                 00002700
  VER 0689 D1E4,D503,0C                                                 00002800
  VER 068E D1E4,D303,1C                                                 00002900
  VER 0693 C1E4,C703,1C                                                 00003000
  VER 0698 E2C5,D703,0C                                                 00003100
  VER 069D D6C3,E303,1C                                                 00003200
  VER 06A2 D5D6,E503,0C                                                 00003300
  VER 06A7 C4C5,C303,1C                                                 00003400
  VER 06AC 4212,00                                                      00003500
  VER 06AF 0088,1000                                                    00003600
  VER 06B3 0496,F020,0006,20                                            00003700
  VER 06BA 07F6,41                                                      00003800
  VER 06BD 1000                                                         00003900
  VER 06BF 020A,0B41                                                    00004000
  VER 06C3 2056                                                         00004100
  VER 06C5 6518,7188                                                    00004200
  VER 06C9 1000,1045,6056                                               00004300
  VER 06CF A645,6056                                                    00004400
  VER 06D3 A606,2006,2006                                               00004500
  VER 06D9 2018,1789,1000                                               00004600
  VER 06DF 1088,1000,1491                                               00004700
  VER 06E5 0156,6547,1057                                               00004800
  VER 06EB 0A91,0156                                                    00004900
  VER 06EF 6447,1056                                                    00005000
  VER 06F3 FA91,0256                                                    00005100
  VER 06F7 6547,1057                                                    00005200
  VER 06FB 0A47,F057                                                    00005300
  VER 06FF 0291,0256                                                    00005400
  VER 0703 6547,8057                                                    00005500
  VER 0707 0A41,4000                                                    00005600
  VER 070B 9C42,4056                                                    00005700
  VER 070F 7389,1000                                                    00005800
  VER 0713 0441,1100                                                    00005900
  VER 0717 0C40,1054                                                    00006000
  VER 071B DC41,6056                                                    00006100
  VER 071F 6A41,C000                                                    00006200
  VER 0723 0CF9,1154,DC60                                               00006300
  VER 0729 0347,D057                                                    00006400
  VER 072D 36FB,1154,DC60                                               00006500
  VER 0733 0341,6600                                                    00006600
  VER 0737 0546,C057                                                    00006700
  VER 073B 1E48,1054,DC88                                               00006800
  VER 0741 1000,04D2,0256                                               00006900
  VER 0747 5B60,0045,6056,A612,1147,8057                                00007000
  VER 0753 5245,6056,A658,6050,7E58,6600                                00007100
  VER 075F 04D2,0E60,0056,5B                                            00007200
  VER 0766 5880 5086                                                    00007300
  REP 065C 47F0,56BA                    B   DATER  SKIP OVER STORAGE    00007406
  REP 0661 D1C1,4020,2120,6B40 DATE1    DC  CL15'JAN  5, 1966' TARGET   00007511
  REP 0669 F1F9,F6F6,4040,40                                   FIELD    00007600
  REP 0670 D1C1,D503,1C        TABLE    DC  C'JAN',X'031C'     TABLE    00007700
  REP 0675 C6C5,C202,8C                 DC  C'FEB',X'028C'      OF      00007806
  REP 067A D4C1,D903,1C                 DC  C'MAR',X'031C'      MONTH   00007906
  REP 067F C1D7,D903,0C                 DC  C'APR',X'030C'      NAMES   00008006
  REP 0684 D4C1,E803,1C                 DC  C'MAY',X'031C'      WITH    00008106
  REP 0689 D1E4,D503,0C                 DC  C'JUN',X'030C'      DAYS    00008206
  REP 068E D1E4,D303,1C                 DC  C'JUL',X'031C'      IN      00008306
  REP 0693 C1E4,C703,1C                 DC  C'AUG',X'031C'      EACH    00008406
  REP 0698 E2C5,D703,0C                 DC  C'SEP',X'030C'      MONTH   00008506
  REP 069D D6C3,E303,1C                 DC  C'OCT',X'031C'      .       00008606
  REP 06A2 D5D6,E503,0C                 DC  C'NOV',X'030C'      .       00008706
  REP 06A7 C4C5,C303,1C                 DC  C'DEC',X'031C'      .       00008806
  REP 06AC 0190,0C             P1900    DC  PL3'1900'          CC OFSET 00008906
  REP 06AF 00                           DC  X'00'              SLACK!   00009006
  REP 06B0 0000,0000           SYSDATE  DC  F'0'               CCYYDDD? 00009101
  REP 06B4 4040,4040,4040,40   SYSCYD   DC  CL7' '             CCYYDDD  00009201
  REP 06BB 0000,0C             SYSYEAR  DC  PL3'0'             0YYYYC   00009301
  REP 06BE 000C                SYSDAY   DC  PL2'0'             DDDC     00009401
  REP 06C0 4110,0002           DATER    LA  1,2(0,0)           TIME DEC 00009501
  REP 06C4 0A0B                         SVC 11                 GET TIME 00009606
  REP 06C6 5010,56AA                    ST  R1,SYSDATE         STORE    00009701
  REP 06CA F363,56AE,56AA               UNPK SYSCYD,SYSDATE    UNPACK   00009801
  REP 06D0 96F0,56B4                    OI  SYSCYD+6,X'F0'     CLR SIGN 00009901
  REP 06D4 F223,56B5,56AE               PACK SYSYEAR,SYSCYD(4) CCYY     00010001
  REP 06DA F212,56B8,56B2               PACK SYSDAY,SYSCYD+4(3) DDD     00010101
  REP 06E0 FA22,56B5,56A6               AP  SYSYEAR,P1900      ADJUST   00010201
  REP 06E6 F332,5663,56B5               UNPK DATE1+8(4),SYSYEAR YEAR    00010301
  REP 06EC 96F0,5666                    OI  DATE1+11,X'F0'     CLR SIGN 00010401
  REP 06F0 9101,5666                    TM  DATE1+11,X'01'     TESTS    00010501
  REP 06F4 4710,5716                    BO  NOTLEAP             FOR     00010601
  REP 06F8 9101,5665                    TM  DATE1+10,X'01'       LEAP   00010701
  REP 06FC 4710,5706                    BO  DATDECOD              YEAR  00010801
  REP 0700 9102,5666                    TM  DATE1+11,X'02'        .     00010901
  REP 0704 4710,5716                    BO  NOTLEAP               .     00011001
  REP 0708 47F0,570E                    B   ISLEAP                .     00011101
  REP 070C 9102,5666           DATDECOD TM  DATE1+11,X'02'        .     00011201
  REP 0710 4780,5716                    BZ  NOTLEAP               .     00011301
  REP 0714 4140,009C           ISLEAP   LA  R4,156             9C       00011401
  REP 0718 4240,5673                    STC R4,TABLE+9         FEB=29   00011501
  REP 071C 4160,566A           NOTLEAP  LA  R6,TABLE                    00011601
  REP 0720 41C0,000C                    LA  R12,12                      00011701
  REP 0724 F911,56B8,6003      DATEA    CP  SYSDAY(2),3(2,R6)  PAST?    00011801
  REP 072A 47D0,5736                    BNH DATEB              < OR =   00011901
  REP 072E FB11,56B8,6003               SP  SYSDAY,3(2,R6)     SUB DIM  00012006
  REP 0734 4166,0005                    LA  R6,5(,R6)          NXT MON  00012101
  REP 0738 46C0,571E                    BCT R7,DATEA           LOOP     00012201
  REP 073C DE03,565D,56B8      DATEB    ED  DATE1+3(3),SYSDAY  DAY      00012301
  REP 0742 D202,565B,6000               MVC DATE1(3),0(R6)     MONTH    00012401
  REP 0748 9240,565E                    MVI DATE1+3,C' '                00012513
  REP 074C 5860,507E           DATEC    L   R6,BUFAD                    00012612
  REP 0750 5866,0004                    L   R6,4(R6)                    00012712
  REP 0754 D20E,6000,565B               MVC 0(15,R6),DATE1              00012812
  REP 075A 4700,0000                    NOP [PREVIOUS CODE AREA]        00012912
  REP 075E 4700,0000                    NOP [PREVIOUS CODE AREA]        00013009
  REP 0762 4700,0000                    NOP [PREVIOUS CODE AREA]        00013109
  IDRDATA Y2KPATCH                                                      00013203
  NAME   IKFCBL01 IKF011                                                00013314
  VER 09F8 40,C4,C1,E3,C5                                               00013415
  REP 09F8 C4,C1,E3,C5,40               MOVE 'DATE' LEFT 1 BYTE         00013515
  VER 0798 D20A,D9FE,565B                                               00013614
  REP 0798 D20B,D9FD,565B               'TO' ADDR AND LENGTH            00013714
  IDRDATA Y2KPATCH                                                      00013814
/*                                                                      00013900
//                                                                      00014000

It's been 25 years now, and 4-digit years are long well-established. The SSA was well ahead of schedule on that:

https://clintonwhitehouse3.archives.gov/WH/Work/122898.html

Monday, December 28, 1998

PRESIDENT CLINTON:
PREPARING FOR THE FUTURE,
SOCIAL SECURITY IS Y2K OK

I am pleased to announce that on New Year's Day, 2000, and every day that follows, older Americans can rest assured. The millennium bug will not delay our payment of a single Social Security check by even a single day. The Social Security system is now 100 percent compliant with our standards and safeguards for the year 2000. To make absolutely certain, the system has been tested --and validated --by a team of independent experts. The system works. It is secure. So, as a result, older Americans can feel more secure.

President Bill Clinton
December 28, 1998

Maybe if Mr. Musk would like to feel useful he can 'lead the charge' to relabel batteries so that the electron source pole has a minus sign and the sink pole has a plus sign.

https://imgs.xkcd.com/comics/urgent_mission.png
urgent_mission.png
 
Last edited:
  • Like
  • Haha
Likes hutchphd and jedishrfu
  • #15
Klystron said:
Management saw "19xx" on dates and demanded removing "redundant" digits.
Yeah, right, it was management. :rolleyes: It's much more likely that programmers simply chose to drop what they considered redundant information because of the limited resources on early computers and because they never imagined their code would still be in use many decades later.
 
  • #16
vela said:
... because they never imagined their code would still be in use many decades later.
Those who do not study history are doomed to repeat it.
All those programmers in the year 9990 are going to be scrambling to update their year fields to support five digits.

- me, AD02025
 
  • #17
vela said:
Yeah, right, it was management. :rolleyes: It's much more likely that programmers simply chose to drop what they considered redundant information because of the limited resources on early computers and because they never imagined their code would still be in use many decades later.
I have been programming professionally since 1971 - and the first "high level language" I used was COBOL. So I am one of those programmers.

To give you a feel for what @vela has described, I will bring you back half a century...

The job I had was at Lowell High School, and while still a student (before getting paid), I worked with all of the data processing equipment there: 402 Accounting machine, High Speed Card Sorter, Programmable Keypunch Machine, and Collate/Punch. Automated Data Processing (ADP) systems in those days involved applying data processing machines to existing manual processing - not replacing those processes. It was the hay day of flow charts, because the primary ADP machines were still people - and people needed to know how they fit into the data flow. About 3500 80-column cards went out to the home rooms every day for attendance the following morning. The cards showed (both in print and punch) the homeroom number, the date, and the students 'full' name. You were allowed 10 characters for your first name, 15 for your second, no special characters except for spaces, all uppercase, no numbers. There wasn't any reason to have a "student number" because that would just make both the machine and the manual more complicated. During home room, the cards were separated into those in attendance and those absent. After the morning home rooms ended, the cards were returned to the ADP office where yours truly would repair the absentee cards using a keypunch machine (some teachers enjoyed torturing the cards - with pencils, paper clips, and such - and, of course, the usual fold, spindle, and mutilate); sort them (High speed card sort); add special "punctuation cards" to delimit columns and pages; and pass then through the 402 Accounting Machine using a patch panel I had programmed and wired up. With operator assistance (refeeding the paper at the end of each column), the 402 would generate an alphabetized, 2-column list of about 3 legal size pages. Harry Petros, head of EDP would then check the results and have them duplicated and distributed.

The point of this story is that the design of these systems was based on what needed to be on the cards to make the system work. Most of the time, the year was encoded by where the card was stored. A box labelled "March 1971 week 2" with 1900 absentee cards would be from the 1970-1971 school year and would contain only 1971 cards. In reality, those cards were seldom kept for more than a day. That "permanent record" you were threatened with was the teachers paper record which was disposed of when you graduated.

Between my Junior and Senior years at Lowell High, the ADP center was move to the first floor (from the basement), provided air conditioning, and supplemented with a Honeywell Series 200 computer with 16,000 bytes of memory, 3 9Kc tape drives, a card reader/punch, and a (loud) line printer based on a spinning drum technology. I was more than happy to basically live at the new ADP center and convert everything over to that new Honeywell machine. Still a HS student, this was the first time I had to concern myself with encoding a date that included the year. You might think that the choice would be to go with a 4-digit year, but memory was very much a concern. With the information on tape instead of cards, sorting was done on the computer, not the High Speed Card sorter. The tape drives themselves could accomodate data block sizes in excess of 16K. But while performing a sort, you need to consider the sort program itself (at least 3K), the operating system (zero bytes), and double buffering for all three drives - including two input and one output. A block size of 2Kbytes would be really pushing it. And then each block was used to hold some number of records. This affected the efficiency of the sorts - the more records per block, the fewer sort passes. In the worse case, you might go over the 2400-foot tape size - which meant lots of operator intervention on each sort pass.

So, I encoded the years: 2 digits with '70' designating 1970 and '69' designating 2069. My reasoning was simply that if '69' showed up and was presumed to be correct, with a long stretch of my imagination, it could be 2069, but it could never be 1969. As I discovered much later, this was not the conventional thinking.

On my first paying job, I scheduled all classes for Lowell High School. The original plan was to have the School Administers do up the classroom schedule, and then I would use the Honeywell along with a special scheduling package to make the actual student classroom assignments. But, because of over-crowding, they needed to go to split sessions that year. And the administrators were not up for the challenge. Their schedule was abysmal - with only about 500 of the 4000 students getting all of the classes they had signed up for. But management was gone for the summer and only Harry Petros and myself remained. So, I rescheduled everything and got everyone their assigned classes. I also gave three of the teachers (Public Speaking, Band, and Chorus) 4 day work weeks. No one stopped me.

So I'm with @vela , it's not about management. Even at age 17, I was provided as much leeway as I needed.

A few years later, I am working with 16-bit machines (such as the Data General Nova) with 64Kbytes of RAM and hard drives. Now I need to reconsider my date encoding. An unsigned 16 bits gives me 65536 date codes - just short of 180 years. So, I started the counting at 1954 a went to 2134. Soon after that, operating systems and date standards became common, so I went with those.

Next, skip forward to about 1990. I'm between jobs and think it might be a good idea to contact all of the places in New England where I had worked in the period from 1971 to about 1980. To my astonishment, every one of them were still using all of the code that I had written. Even Lowell High was using scheduling that was specific to the split sessions they needed before the school was expanded. I was astonished.
 
  • Like
  • Informative
Likes sysprog1, Flyboy, Tom.G and 2 others
  • #18
Klystron said:
AFAIK the Y2K "bug" was a scam amplified by untrained managers and media sensationalists to the benefit of itinerant coders.
I have heard many people say that, since nothing went wrong on Jan 1, 2000, that Y2K was all a scam. I personally went to weekly meetings for more than a year where we identified and fixed all of the software that was at risk for a Y2K problem. I'll be there are many people on this forum who did the same. So Y2K was not a "scam"! Nothing went wrong because thousands of people worked hard to make sure nothing went wrong.
 
Back
Top