Every day brings choices, and every day, every one of those micro-decisions brings with it a realm of near-infinite possibility. Of the what-might-have-been, of the never-were.
Two roads diverged in a yellow wood, and sorry I could not travel bothRobert Frost
I speak, of course, of software forks. I have some experience in this field, for good and bad reason. Hindsight suggests the latter, but hindsight has a clarity that cannot be understood from the other end.
We see this all the time in open source, where its greatest strength – the ability to do anything as long as you let the next person do the same – is also its greatest weakness. It is entirely possible for someone to come along, build off the work you’ve done and take it places you’d never dreamed.
Now, to be entirely fair, this is a necessary component of the world. Nothing is built in a vacuum and all of us stand on the shoulders of giants. Just some of those shoulders are a little more broad than others.
But what I realised is that a fork in open source – not so much the GitHub sense but the more fundamental sense – doesn’t really represent a divergent attitude, not entirely. On some more primitive level it is a statement: it is the point of the two roads diverging in that yellow wood, and choosing to take the other path.
Of course, many open source forks don’t survive – they never get the traction of their parent and disappear into irrelevance. The few who remain tend to be interesting under their own steam – Ubuntu vs Debian, for example.
This should be obvious to anyone reading. What is less obvious – and the point I was always getting to – is that any serious fork putting any serious effort in is, in fact, some kind of failure on the part of the original project.
This is not to suggest that all failures are equal; Debian drew its line in the sand early on and holds its position adamantly, the existence of Ubuntu can only be a tacit admission that Debian’s policy and position is misaligned with what the users want/need. Whether this is a failure is entirely in the perspective of the beholder – I very much suspect that Debian’s management and contributors do not believe it is a failure but a sad reality that their ideological purity is not more widely adopted, and that the existence of Ubuntu is the problem here!
I have spent a lot of time ruminating on forks, paths not taken, and so on of late – in no small part in reference to my own endeavours. The forks I have undertaken over the years were never made lightly, and always under the cloud of implying there is a gross failure on the part of the originating project. It amuses me in the grand scheme how one iteration of one project was made solely because others tried to fork the earlier iterations, badly. What failure prompted that, though, is mostly lost to time now.