Quite a walk down memory lane. Thanks Tom.
My own memory involves paper tape and card decks as the persistent
source with text files being ephemeral in the early days. It was much
harder to keep variants in this form, but much easier to remember which
version was the correct one. I'm sure others kept their main deck of a
program with small batches of variations carefully managed with notes
and rubber bands.
It was excruciatingly challenging in some ways to collaborate with
others in this mode... though it was higher fidelity to sit down with a
printout of a program and go through the logic line by line with a
colleague than to wait for them to try to merge their code with yours
from a revision control system and for them then to ask you oblique
questions via e-mail about their (nearly) orthogonal changes relative to
yours. The former was less "efficient" but required more reflection on
the motivation of specific changes and/or choices in coding style and
algorithmic design.
As a student of collaboration, and a long time user of revision control
in code and in documents, I am a big fan, but also share the author's
curiosity as to "what is next?". I've used visual programming languages
and even dabbled with evolutionary programming, but don't see a clear
next step. It feels as if we might be on the blind side of a phase
transition, not so much in version control as in collaborative or
collective problem solving, facilitated by algorithmic languages and
version control systems.
A biological (genetic, regulatory network) metaphor seems apt for this
next phase?
- Steve
I suspect some of us will be interested in this brief history of
version control.
http://www.flourish.org/blog/?p=397
--tj
============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
lectures, archives, unsubscribe, maps at http://www.friam.org