On this day in 1970, Unix Time began. Well, not exactly. It was just a convenient point to set as an epoch. And all Unix Time provides is the number of seconds since that time. It is coming up on 1.5 billion seconds. It also provides fractions of a second. In its first implementation, it subdivided seconds into 60 parts. But when I was first cutting my Unix teeth on a couple of Sun workstations in the late 1980s, Unix Time was divided into millionths of a second.
All computer systems have their own epochs. MS-DOS had its epoch exactly a decade after Unix on 1 January 1980. COBOL has an epoch of 1 January 1601. Microsoft C++ 7.0 had an epoch of 31 December 1899. VMS had an epoch on 17 November 1858. And MATLAB’s epoch is on 1 BCE. In other words: epochs are totally arbitrary. And that’s great. I’m surprised that some smart–aleck computer geek hasn’t set an epoch thousands of years in the future just so we could have negative time stamps.
But given all this epoch madness, why did we have the great Y2K scare of 16 years ago? Now I know the main issues. There were computer shortcuts taken to reduce memory usage. And there was lots of binary-coded decimal, which I’ve never understood. I mean, really: do everything in binary and then convert to decimal when humans have to look at it. It makes no sense to represent numbers in this way on the hardware level. And I know that binary-coded decimal was especially used for time and date functions.
But I do think that Y2K was vastly overblown. Yes, I think that mission critical computers should have been thoroughly checked out. Any chance of a computer firing a missile is unacceptable. But it was mostly just something for reporters to talk about. But Unix Time is cool. At least I can remember when it is. I will have forgotten all about VMS time by the time you read this.