That said, sometimes we need to take on the risk and effort of making a second system. I have often thought about the relearning/doomed-to-repeat-history problem, and I wonder if software - especially some open source software - might be uniquely positioned to build a second system due to bug trackers.
The bug trackers in software like Firefox effectively capture a large percentage of a project's history and design decisions. It seems to me that the bug tracker for a projects' predecessor could lay the proper frame for its successor.
I'm willing to accept a little bloat and pass on inventing wheels myself if I can grab something reliable off the shelf. I don't think that makes me less self reliant.
The point seemed to be that even a rock-solid tool like curl started out tiny — just a few hundred lines — before growing to cover all the edge cases you’re describing. It’s more about showing that you can start with something simple for your own needs and customize it without depending on someone else.
I try to choose wise, even if someone will later throw shade on me for not being "self reliant" or some other insult of the day. If my goal is to write a better libcurl, then that's what I'll work on. But that's basically a solved problem and working on that doesn't seem like the best use of my time.
We should begin collecting and centralizing the insights learned from the development of software outside the source code of specific projects