The business of software development is comic. You’d expect that the people who make computers do all that whiz-bang stuff would have awesome star-trek-like tools at their fingertips.
Nope.
Here, now, in the Twenty-First Century, software development is still done in plain text. People, understand: a Word or Excel document is an incredibly sophisticated chunk of technology. Software code is just… text. Nothing else. Office documents have Revision control, security, stored undo information and all manner of stuff. Computer code is just… text.
However, developers have an awesome tool in their arsenal: Source Code Control. Simply, this is a program which manages all the text files which are used to create a computer program. All the files for creating a specific program are known as a project. Source Code Control allows many people to work on the same files at the same time– it figures out how to merge all the changes together. Not only that, it allows developers to move backwards in time, or it allows the creation and merging of copies (branches) of the code. It’s very handy, and I’m surprised that large offices have never picked up on this. Most of the time, documents are strewn about on peoples computers or the office network.
The point of this discussion is a relatively new direction in Source Code Control, known as Distributed Version Control. This introduces a subtle but very awesome capability: you no longer need to be constantly connected to the central source to commit changes. I could be in a submarine, completely cut off from the world, but still have all the advantages of commits, rollbacks and history on my laptop. When I do get back in touch, my changes automatically get merged with everything else. This is possible because these new Distributed Version Control systems track my changes instead of my versions.
I’m excited about this because of a pet peeve: saving files. Why do we save files? Why does google docs (or Word, Excel, etc.) have a picture of a square thing that we click on to persist the changes we’ve made? (It’s a floppy disc, which I haven’t seen in real life for a decade. My children are more likely to see a mammoth in their lifetime than a physical floppy disc.)
What I think is going to happen is this: the concept of ‘saving’ is going to fade away. Every keystroke will be immediately saved away– after all, these are merely changes to a blank document. Office documents, spreadsheets, computer code, photographs, movies– all will be saved. Permanently. This will have tremendous long-term consequences on data storage and privacy, which we will need to consider.
The days of ‘the power went out and I lost my work’ are going away.