choosing-dependencies.xml (2009B)
- <entry>
- <title>How I choose dependencies</title>
- <link rel="alternate" type="text/html" href="https://hacktivis.me/articles/choosing-dependencies"/>
- <id>https://hacktivis.me/articles/choosing-dependencies</id>
- <published>2024-12-14T15:25:29Z</published>
- <updated>2024-12-14T15:45:29Z</updated>
- <link rel="external replies" type="application/activity+json" href="https://queer.hacktivis.me/objects/8c239ceb-5487-4350-a620-3000be35ae4f" />
- <link rel="external replies" type="text/html" href="https://queer.hacktivis.me/objects/8c239ceb-5487-4350-a620-3000be35ae4f" />
- <content type="xhtml">
- <div xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="h-entry">
- <p>
- Those are the question I always ask myself prior to picking a dependency:
- <ol>
- <li>Are other people using it? (easy to check via distros like Alpine or Gentoo)</li>
- <li>Could I end up maintaining it? (either due to upstream passing me maintenance, or needing to fork/patch it)</li>
- </ol>
- </p>
- <p>
- The first question isn't very important but makes sense to check, could otherwise end up missing a better dependency without doing so, and sometimes turns out the dependency is used by no one because it's unusable.<br />
- The second question is probably the most important, could skip it for throwaway scripts but well… temporary sometimes spans for a very long time.
- </p>
- <p>
- Note: I tend to consider not just libraries but also utilities, buildsystems, language implementations as part of the dependencies.
- Could even consider deployment like packaging into distros in there as well but can't really call that a dependency of the software.
- <br />
- I could consider Operating Systems as a dependency, but effectively it's more of a portability question.
- And having experienced how OpenSolaris got shut down and how fast it went unusable as a desktop Operating System (mostly due to third-party software),
- I don't really want to have my software being too tied to an Operating System.
- </p>
- </div>
- </content>
- </entry>