but then it'd be harder for the end user of it to modify it (e.g. the util currently lives in `~/.local/bin/`, and if it was a package / program that you'd install, it'd live in e.g. `/usr/local/bin/`, meaning that if u were to modify it, your changes would get overriden - you'd have to contribute directly to the original package by e.g. opening PRs on github, but you don't control if they get merged or not, so now you'd have to fork the repository which contains this program, and then modify it and potentially maintain the fork, plus you'd have the burdain of publishing the package yourself w/ a different name)
-
unless, ofc, the program would be completely extensible, meaning it would provide APIs to extend the behavior without modifying the program itself (O in [[(hidden) Nq8r6-ap2]] - open-closed)
-
https://en.wikipedia.org/wiki/Open%E2%80%93closed_principle
-
but then, the program becomes much more complex, with all the stuff that comes from that! and remember, what we tried turning into packages were actually small utilities/scripts - they didn't have any of the problems - the problems come from wanting to abstract those small utilities into packages