Some guy was searching for the oldest running application he could find. His results were fairly interesting. The ensuing discussion at Slashdot was even better, they were able to come up with all sorts of ancient code, crazy anecdotes and wisecracks, like this gem:
My girlfriend’s mom wrote some of the first conversions of actuarial tables to mainframe, from books, in the 1950s and 1960s (all done w/ punch cards and machine language, of course) at a life insurance company in Mass. The company was still running a lot of her orgininal code when she retired a couple of years ago.
This is obviously an apocryphal story.
Who can spot the inconsistancy that gives this fakery away?
Exactly.
We all know /.’ers don’t have girlfriends.
Zing! Anyway, towards the bottom was this comment:
The oldest commercial application, i.e. one sold as a software product, is SyncSort. SyncSort was one of the very first commercial third-party software applications. It was also the first to be patented. SyncSort, Inc. was formed in 1969.
SyncSort was the first useful sort program to break the O(N log N) barrier (yes, this is possible, CS101 kiddies). This was a huge win for mainframe shops with their big tape-to-tape sort jobs. That’s what all those spinning tape reels were doing on early computers. SyncSort cut days off some batch jobs.
I think to myself, “How quaint, in the early days of computing, just a simple sort algorithm was a product! My how things have changed, how far we’ve come, etc, etc.” But then I clicked through to the site, and was HORRIFIED. The thing is still for sale!
SyncSort provides a plug-in replacement capability for the UNIX system sort, the Merant Micro Focus COBOL sort, the Software AG NATURAL sort, the SAS sort, and the IBM DB2 LOAD sort.
SyncSort performs a sort, merge, copy, or join application:
* A sort application reads records from the source, reorders them according to the specified sort keys, and writes them to the target.
* A merge application reads presorted records from one or more source files, merges them according to the specified merge keys, and writes them to a single target file.
* A copy application reads records from the source and writes them to the target without changing the order of the records.
* A join application reads records from two sources, joins each record from one source with zero or more records from the other source according to the specified join type and join key, and writes the new joined records to the target.
So basically it’s a plug in replacement for sort, uniq, cut and paste. Amazing.
I want one!
PS. You just have to love this performance chart:
