I’ve written software professionally for many years. A lot of it was for Microsoft and remains embedded in Windows or Azure. Recently more has been for SingleStore. Software for hire generally has an audience, if only the team that created it, at least until it’s refactored or retired. In my case I regret that most of it is proprietary and not available for me to share (or even for me to look at 😖).
Outside of work, it’s another story. I’ve created a ton of programs for which I am the only user. And I am sure I am not alone in being alone with my software.
Some of what I’ve written over the years has been for ephemeral projects and some for longer-term needs. Some was written solely for me, and some was written for a possible audience that never really materialized. Here are some examples:
* I hate my flat roof and will write about this at length eventually
From what I see on GitHub, Show HN, Product Hunt, and countless other platforms, having projects that are relatively complete but never distributed seems an inevitable outcome of being a developer. How much code have you written that only you will ever run? I’m sure most of the readers of this article have similar collections, probably much of it not even uploaded publicly.
Some private software is certainly still used by each person for their individual needs, but the rest of it just sits dormant. The world’s “working set” of in-use software is a tiny fraction relative to the vast tracts of inactive code that exist.
Writing code has value in and of itself, in building skills, learning the tools, and developing a deeper knowledge of how things work. Once written, if not used, is there still a purpose in keeping it around?
Some portion is certainly low-quality, out-of-date, derivative, or irrelevant. Skeptics might say that as the cost of creating new code is dropping towards zero with the latest tools, maybe old code is just a waste of storage space.
I’d argue that the value in the unused code is likely proportionate to the thought that went into it, but that it can be costly to adapt to new scenarios. Fortunately, the same technology currently reducing the cost of writing new software is effective at making use of the old, either privately, where old projects and snippets can be indexed, understood, and adapted to new applications, or publicly, where the models can be trained across a broadening set of inputs. Keeping old projects around ensures ready inputs for the tools that can make valuable use of them later.
Maybe someday (assuming I upload it) a person who wants to generate some realistic snowflakes can find an LLM confidently writing a SIMD implementation.
Please also note, this article is from the perspective of someone who hates to delete anything; I am an unabashed digital hoarder. Disagree? Find me on X. Want to see what comes next? Subscribe to my RSS Feed. Thanks for reading!