HACKER Q&A
📣 niix1

Have you had an existential crisis about software dependencies?


I'm currently having a bit of an existential crisis. I can't help but think "what is the point in writing software if it doesn't last".

I really feel that the software we write today, with all those unavoidable NPM dependencies, is just pointless since it won't stand the test of time. Why even bother?

It all seems so fragile. We've all seen that xkcd[0].

[0] https://xkcd.com/2347/

edit: replace markdown link with reference.


  👤 codingdave Accepted Answer ✓
True story - I worked at IBM in the mid-90s, and for some reason they would not let our applications send email through the corporate mail system. So I requested a new email address, send all app emails to that address with the true recipient in the subject line, then put a email client on a desktop PC with a script that just forwarded all emails to the right people. I dumped that PC in our raised floor data center and walked away. I figured it would be shut down very quickly and we'd actually engage in dialogue with the corp email folks.

No - That machine was still there, still running, 7 years later. I never asked about it after that, but if a hack thrown together just to get around corporate email policies can go untouched in a freaking data center... your npm-based software will be OK for far longer than you want it to.


👤 softwaredoug
I don’t have an existential crisis, I just seriously question dependencies that aren’t heavily used, ubiquitous libraries in the community. Basically libraries that have become so synonymous with the language or task itself that if they broke, there’d be so many teams really screwed, that there’d almost certainly be some clear migration path.

Example: Python data science and Numpy/scipy/pandas stack


👤 h2odragon
No need for despair, your new dawn is at hand: There are myriad ways of programming computers without reference to NPM at all! There are whole other languages and ecosystems! some of which have been around for many years now, and look to last at least a few more.

If you really want longevity, see COBOL. If you're looking for quicker fun that's closer to your current sand castles, try PHP and Python.


👤 lmarcos
I try to write software that last (i.e., minimal dependencies, no vendor locking, etc.), but I do that on my free time while doing personal projects. At work I use whatever is needed to push features fast to production, since that's what my bosses care about. They literally prefer to move fast and break things because usually 1) moving fast let you arrive first (and this means money), and 2) you can break all the things you want as long as you have money to fix them later (and you get money as long as you arrive first, so the strategy seems to be working so far so good).

I dislike the latter approach, but the salary is good.


👤 ffwacom
If you can stomach it, use Common Lisp. I’ve imported useful packages written before I was born.

👤 thrashh
Well thanks to entropy, nothing we build lasts.

Cars don’t last, buildings don’t last, and bridges don’t last. Yet we trudge on.