[LUCID LIVING #6] Open Source Revolutions, in the 17th and 20th Centuries
By Piet Hut
My first exposure to programming occurred in my freshman year, when I got access to the one computer available on the whole campus of Utrecht University, a Philips mainframe. The computer language available was Algol, which meant that I was forever spoiled: even though it was already ten years old, Algol-60 was so much better structured than the Fortran of the day, Fortran-66, the workhorse of the physicists. I was very excited and enamored with the idea of translating a static piece of mathematics into a dynamic process, and the elegant way in which Algol showed the logic of the translation.
However, after a month my enthusiasm petered out, because I had to wait half an hour, each time I made a small change in a program. There was a "quick service" option for programs taking less than a minute of run time. After handing in my program on a role of punched tape, I had to twiddle my thumbs before finding out that I had mistyped a "," as "." and then I had to wait another half hour before finding the next mistake. Besides, the paper tape kept breaking . . .
As a graduate student, several years later, things were better, but still far from ideal. I would have to sign up a few days in advance for a two-hour time slot on the one terminal at the end of the hallway to get access to the mainframe in another building that served the astronomy department, and many other departments too. So I stuck with purely theoretical research, using only pen and paper calculations.
That all changed when programmable pocket calculators came on the market, much to my delight. With my HP-41C, allowing indirect addressing, I finally returned to programming. I solved differential equations one at a time, overnight, while working during the day on writing my thesis, based on the results of the nightly labor of my trusted pocket calculator. In that way, I obtained my PhD in Amsterdam, on a combination of topics in astrophysics and particle physics. I then moved to the Institute for Advanced Study in Princeton, on a postdoctoral fellowship.
I arrived in Princeton in September 1981, in the same week that a VAX-11/780 arrived, a powerful minicomputer that was shared only by two groups, the astrophysicists and particle physicists in the School of Natural Science at IAS. And to my amazement I found a terminal on my desk, all mine to use day and night! I couldn't believe my good luck.
Interestingly, it was the second computer on the IAS campus: the first one had been the one John von Neumann had built, a year before I was born, and disassembled a few years later. During more than two decades, there had been no interest in computing among the mostly purely theoretical scientists at IAS, but just when I arrived, they started to catch up with the rest of the world.
In discussions with my mentor at the time, John Bahcall, we hit upon the idea of using my background in particle physics to study scattering processes between single stars and double stars; much in the way that elementary particle scattering experiments are being conducted in accelerators. All set to go, idea in hand, terminal on my desk, I was facing only one last problem: I had to choose a computer language to write my programs in.
All my colleagues at the time told me that I had no choice: Fortran was the only accepted language of physics. I asked, naively, whether there was an Algol compiler, but no, nobody had even heard of that language. Fortunately, as a second stroke of luck, during the same week that the Vax and I had arrived, there was a third arrival, namely of Stephen Wolfram, who also had received a postdoctoral fellowship, and moved into an office near me.
When I told him of my dilemma, of not having any interest in working with a primitive language like Fortran, he told me that if I had liked Algol, I would like C. I was sold right away, found a compiler, and happily started to write my scattering software in C, soon soaking up much of the background time on the Vax, calculating millions of scattering experiments in the next several months. Doing so, by osmosis I also learned about the Unix Programming environment, based on C.
I became an enthusiastic proponent of the open source idea, of freely sharing one's computer codes with others, from the day that I encountered Unix. I very quickly realized how powerful it was, to write software that is very modular, and where the modules could be shared freely among anyone on the planet. And in addition, it was much more fun, to be able to talk about your codes with others, learning from them while teaching others; akin to playing music together.
Almost immediately I started sharing computer codes with colleagues in astrophysics and beyond, I would continue to do this for a few decades, while my main research focused on large-scale simulations in stellar dynamics. Around that time, still in the early eighties, Richard Stallman, whom I would meet a few years later at MIT, advocated this approach in his free software movement's GNU project. A similar movement was popularized further in the nineties under the banner Open Source. This lead to an explosion of popular interest, as illustrated in the 1999 publication of Open Sources: Voices from the Open Source Revolution.
I was amused at most of the descriptions in the popular press, touting the notion of open sharing as a historical breakthrough. Having long had an interest in history of science, it was clear to me that we were in fact living through the _second_ Open Source Revolution. The first one had occurred a few hundred years earlier, during the century stretching from Galileo to Newton, when the Medieval model of guilds and trade secrets gave way to an open sharing of scientific discoveries.
A central key to the success and rapid growth of science was its openness, combined with its universality. Individual scientists published and shared their results openly, across political, cultural, and economic borders. What got science started was an Open Source revolution in physics, the science of matter. What would transform the world of computing, four centuries after Galileo, was an Open Source revolution in the science of information. It will be interesting to speculate whether there will be a third Open Source revolution, waiting in the wings. I am playing with some ideas, which I would like to share in a future post.
Piet Hut is President of YHouse (where this blog is hosted), Professor of Astrophysics and Head of the Program in Interdisciplinary Studies at the Institute for Advanced Study in Princeton, and a Principal Investigator and Councilor of the Earth-Life Science Institute in the Tokyo Institute of Technology.