HACKER Q&A
📣 asim

What is the longest software project you've worked on?


So I've been working on Micro (https://github.com/micro) for close to 10 years. It started as an idea in October 2014. It has been sponsored by a company, VC backed, run out of money, etc but the project lives on and continues to morph over time.

I'm curious to know what software projects you've worked on and how long for? How did it change over time? What caused it to thrive or die?


  👤 sgbeal Accepted Answer ✓
> I'm curious to know what software projects you've worked on and how long for?

The longest i've contributed to a single project is the Fossil SCM (https://fossil-scm.org), since early 2008.

> How did it change over time?

Fundamentally, it hasn't much changed in terms of technology or core feature set. It evolves to suit its primary purpose (the SCM for sqlite) on an organic basis as its main architect (Richard Hipp, of sqlite fame) needs new features, and a few of us add features we want for our own project or which are suggested by non-coding contributors. The most change, IMO, has been in the people who participate - certainly both my coding and my team-working skills have improved many times over since my early days in that project.

That's not to say that the software hasn't changed over the years, just that it's not _fundamentally_ changed. Its core feature set is still the same as back then, just fleshed out over the years. New featured have, of course, been added, always organically (as needed) rather than as part of some roadmap or marketing vision.

> What caused it to thrive or die?

i opine that about the only thing which enables any non-git SCM to "thrive" (for a given definition of "thrive") nowadays is the same reason AmigaOS still "thrives": there's a stubborn social circle of people who simply won't let go. We use it because we prefer it, and we'll stop using it when it's pried from our cold, dead fingers.

In the case of Fossil its continued survival and development is also a matter of principle. Richard Hipp (creator of sqlite and Fossil) has a philosophy which he's often stated as "freedom is being able to take care of yourself." The most glaring way that philosophy shows in his works is that third-party dependencies are only accepted when they're absolutely necessary. For example: not including the C standard libraries and POSIX, Fossil has only a single non-negotiable 3rd-party dependency (zlib) and a few optional 3rd-party dependencies (most notably libssl). Changes in upstream dependencies can and do break things, which is largely in conflict with the "being able to take care of yourself" part of Richard's definition of freedom. That philosophy extends to source control of his own projects, all of which are of course hosted with Fossil. Ergo, so long as his other projects remain active, Fossil still has a reason for surviving.