In answer to #3, the answer is yes, yes, and “Hell, yes.” That others use a module as a dependency is not an easement in the direction of ownership. If I grant a license, I can revoke a license.
The NPM license contains a very comforting sentence, to wit: “Packages downloaded through the npm registry are independently licensed and are not covered by this license.” That means that contributing something does not obligate the contributor to make any licensing perpetual or irrevocable.
When and if NPM declares that any contributions can never be withdrawn, they’ll violate basic ordinary private property rights, and that’s not acceptable in any sense. So I would argue that this is not a technical issue — it’s a freedom and property-rights issue.
“That said, context switching from writing code solving the problem at hand to writing a method that manipulates strings seems like a poor use of time and energy.”
Really? I’m sorry — there are no unimportant lines of code. How would writing a string manipulation routine not be a step toward solving the problem at hand — or perhaps many problems yet to come to hand? Is there not a maintenance coder to be had? You could have written left-pad on your phone while waiting for the barista to prepare your overpriced whatever-it-usually-is. Suddenly this is beneath you? The privilege…well, I can’t even.
“Remember, just because we can do something doesn’t mean we should.”
Indeed, indeed — like not building the foundation of our applications on shifting sands, perhaps? We saw Weinberg’s Second Law in action during this episode, and I find the various gasps of horror and rampaging moral outrage pretty darned amusing. I’m surprised it took this long to happen.