ACP, One of the Oldest Open Source Apps
Esther Schindler writes "The Airline Control Program (ACP), introduced by IBM around 1967, predated the term 'open source' by decades. But you may be surprised by how much of its development resembles the FOSS movement today. The ITWorld.com article An Abbreviated History of ACP, One of the Oldest Open Source Applications describes what made it special."
Open Source Definition
mods: This post is on-topic because its author is old, too! (grumble grumble)
"How it was" -- when the value of the system was concentrated in the hardware. The whole system was set up to serve the most valuable part, and software was seen as "directions to run the hardware" -- important, one supposed, but not the showy part. With commodity hardware, the value is in the bits and bytes now.
What about most device drivers? They still seem to be closed.
(RMS was angered when a printer manufacturer wouldn't supply the source code to the printer driver, IIRC.)
You're right in that a lot of "public domain" software was distributed as source, but there were no repositories - you could get the original version (or the latest version from the originators) or you could get varients from other developers, but it was rare to have a mechanism in place to submit changes anywhere or pass updates to all the users (remember - no internet, few modems, source mostly passed on 7 or 9 track tape reels).
When Bulletin Board Systems came into vogue in the late '70s, this started to change. In the original article what was unique was that changes could be submitted to IBM, who'd include them in later releases or distribute them as additional code with the source. The same was true of my own ealier post. If the code did not originate with Datapoint, they would forward submitted changes back to the author, who could incorporate them in later versions or allow Datapoint to distribute more than one version (early fork?).
It was not true OSS, but it was a clear pre-cursor.
...carrier dead.....
The IT branch spun off by American Airlines, which outsourced operations to EDS (which was bought by HP). Through a few layers of gateways, Travelocity is in the same room (albeit huge) as the TPF system. They can cluster up to seven of the fastest mainframes to run as a unit with TPF, and have set records for real-time transactions per minute. All this in Tulsa, OK.
cabg x3 is a life changing event...
It was only "open source" because the code had to be hand-crafted and re-assembled for each particular configuration. You young kids expect softwar to be rife with XML configuration files, and virtual methods, and hooks. Back in those days the code had to fit into 4K addressable segments, so they could not AFFORD to even think of opening up a file and reading configuration info, or having a table of external procedure hooks. More likely the configuration constants were not even separate, they were convenient opcodes. For instance, if you knew a 707 at this airline always had 112 seats, you'd recall that the HCF opcode happened to be 112 decimal, so you'd compare the seat count against that opcode. All you kids with your fancy separate data! Also it was extreme luxury to have a procedure hook (or as you callem nowadys "virtual methods"). You see you could only call within the current 4K block, and any addresses you wished to pass had similar or worse restrictions. And there was darnlittle dynamc linking available in old IBM DOS, so you could not call anything that had not been linked in last week at the weekly build (which took hours).
In the mid 80s I did a lot of assembly programming on ACP for KLM. We (125 programmers and me) shared a test system that boasted 128MB RAM and a 100MHz'ish CPU running ACP/TPF. The production system even had double the memory. It could do 100 transactions per second. Touroperators (KLM representatives) all over the world used reservation terminals connected by satellite lines to this mainframe. It definitely was mission critical. But I think the article exaggerates a bit, because internally the story was that the KLM would go broke if the mainframe went down for three consecutive days.
When I was there, C was being tested as an alternative for assembly language, but it was thrown out, because it was too slow, and wasted too many resources.
Mind you: my iPhone has more CPU and much more memory than this mainframe, and thus could easily run the entire worldwide reservation system for an medium sized airline!