Satire and some thoughts on building software with JavaScript

I found the funniest Javascript article on npm and thought I would share it with you… I’ll let you read it first before giving away any spoilers because it’s even funnier if it gets you off-guard:

Now please be advised this is an all-round satire and the author is also laughing at himself although you have to look at the smallest details to actually see the latter. None of what he says is actually true but it’s real fun to read nonetheless, I had quite a few laughs anyway.

I think it sparks a valid debate in software development, in particular relevant to JavaScript nowadays.

On one end there is producing all the code yourself and not taking benefit of hive mind. Proprietary code rarely a has manual that’s up to date and it may take a lot more time to produce and document. An employer values having wide availability of potential employees already versed in the tools, or at the very least have a good manual available, so open-source tooling is very appealing.
Then there is also licensing, if you sell software that uses third party code you may have to pay a few licenses so in this sense proprietary might be a better choice for a business in some instances.

And on the other end there are the dangers of abusing dependencies in a dogmatic and by-default manner. To produce a mindless checklist of dependencies which results in inefficient, bloated, bad, or even malicious software. As for all the good in open-source it also requires research, maintenance, reading the manual, and even reading the code, and keeping up to date with latest releases or else you could be in for a nasty surprise. And the reality is that many times we can easily fail to do those things putting business at risk.

A co-worker was complaining today that their project suffered a dependency meltdown when they tried npm install because they had some conflicting modules and they had to end up reverting to a previous build. Even though I have not used npm a lot myself this reminded me a lot to working with Drupal, where you installed a lot of third party modules to build really complex sites but unfortunately many times you ended up with conflicting modules that would even corrupt the data and take the site down…

I think there is good and bad in both ends and that every case is different.
The most important thing is to make informed decisions, and also to actually make them, not avoid the somewhat sensitive topic and leave things in the air, but get the communication going, because if not that’s when bad things do actually happen…

I do appreciate this article in the sense that it sparks the debate in a sensitive topic, but one which is important for teams and companies who build software to be informed and in the same page. We all love our tools and we all can also make a sacrifice for a collective beneficial consensus, specially if there is a good reason, but if no one brings up the topic and with the insane amount of tooling available then there’s no way we could get there.

Hope you enjoyed and please tell us what you think.

2 Likes

Very amusing article and I feel Linux could be the same. You try to install some software and it loads the dependencies which then load other dependencies; it then crashes. You find the path to one dependency has been changed, you find the correct path and then the dependency is not the correct version.

There could be anything in these files and I would never know. How much of the code in the dependences is duplicated or how much space could be saved? I suppose it can make writing some code easier/quicker as the writer may not have the knowledge of how all the dependencies work or why rewrite something that has already been written.

Do the coders who use these dependencies actually check what is in them?

I know the same could be said for all software; a coder can put whatever they like in it and most people will have no idea what is going on.

If I use some code from somebody else I tend to look through it but I would only notice something very obvious.

1 Like

To be fair Linux has got so much better in the last 5 - 10 years. I remember the bad old days you describe (needing an afternoon to try - and fail - to install display drivers for a laptop), but I have been running Linux Mint as my sole OS for the last 5 years and I never have any problems. Of course, it all depends on what you want to do, but that’s another story.

Err of course … :shifty:

3 Likes

Yeah, me too…

I remember looking at what was actually in leftpad when the kerfuffle on that kicked off. I couldn’t quite believe that someone had thought such a tiny code snippet was worth turning into an module - then again, I’m often surprised when I wake up in a morning (early afternoon is more usual).

It does make a serious point though, and probably does it far better than something that takes the subject seriously. I’ll readily admit, I’ve no idea what’s in the NPM module I download, and likely wouldn’t understand them if I did. That’s the risk we take, and at some point, we’ll no doubt get caught out again in the future - hopefully not with something security related though.

1 Like

I had that problem last year trying to setup a touch screen. But it was on a Raspberry pi with I presume a cut down version of Linux.

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.