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.