The mean, median, and modal web “application” depends on several thousand packages comprising dozens of layers of dependencies deep. The mystery code that is downloaded and executed when a developer runs `npm install` is orders of magnitude larger than functional operating systems. There is absolutely no quality assurance: these packages are published by literally-no-one-knows with no oversight whatsoever. `npm` suffers unknown and unknowable build breakage on a regular basis: for no perceptible reason, builds fail; the common advice is to nuke `node_modules` and reinstall. The packages are updating constantly: breakage is probable after a small handful of months. The ecosystem itself was probably developed in response to domain-based adtech blockers.
There is absolutely nothing confidence-inspiring about these people, their intentions, or their competence.
The standard defenses of the ability to be rich are persuasive arguments promulgated by those who are rich.
If we assume that the rich are, as other advertisers, rational and self-interested, the we should expect their messaging (i.e., the “standard defenses”) to be that which is most effective.
Something akin to if it works, it ships.
Consider that from the perspective of the accountants, every job created is a huge and ongoing liability and cost, and that from the perspective of the shareholders, every job created is stolen profit, money that is not returned in the form of equity appreciation + dividends.
Then you will begin to see the reality of the situation.
“who liberally makes use of single-responsibility modules”
If your aim is precision of language, you should call this “400MB of unaudited and unauditable mystery code from the [total clowns]( https://github.com/babel/babel/pull/3646 )* who run the npm ecosystem.”
Dude, nobody cares. What ridiculous moralizing. "Fiddling with stuff on a computer?" Crabs-in-a-bucket comparisons to doctors? Whatevah. Get outta town.
No one pays you because they like your face. They pay you because you make them money.
No one works when they have rivers of cash flowing in their direction. You trade your time for their money: a slice of your life, in the most literal sense.
What is the value of your life?
Know your worth. Take every dollar. You will get precisely what you can negotiate, nothing more, nothing less.
Scheme is properly tail-recursive and has been around since 1975. Most (all?) Common Lisp implementations have proper tail recursion. Clojure has tail call optimization for simple cases and only if you explicitly ask for it, but it gets you most of the way there most of the time.
So there are reasons to prefer more imperative languages and their systems, but stack-smashing isn't one of them.
Free markets hate good software. "Good" meaning secure, stable, and boring.
On both ends.
Software developers hate boring software for pragmatic HR-driven career reasons and because devs are apes and apes are faddish and like the shiny new thing.
And commercial hegemony tends to go to the companies that slap something together with duct tape and bubble gum and rush it out the door.
So you get clusterfucks like Unix winning out against elegantly designed Lisp systems, and clusterfucks like Linux winning out against elegantly designed Unix systems, and clusterfucks like Docker and microservices and whatever other "innovations" "winning out" over elegantly design Linux package management and normal webservers and whatnot.
At some point someone important will figure out that no software should ever need to be updated for any reason ever, and a software update should carry the same stigma as...I don't know...adultery once carried. Or an oil spill. Or cooking the books. Whatever.
But then also it's important to be realistic. If anyone ever goes back and fixes any of this, well, a whole lot of very smart people are going to go unemployed.
jQuery: 88KB, standard everywhere, one entity responsible for all of it, people know what it is and what it does, if it breaks you know what went wrong and who to blame.
Literally anything built with NPM: megabytes? tens of megabytes? in size, totally inscrutable, code being pulled in from hundreds of megabytes of code in tens of thousands of packages from hundreds or thousands of people of unknown (and unknowable) competence and trustworthiness, if it breaks not only do you not know who to blame but you probably have literally no idea what wrong.
Valid point. To clarify, it was hyperbole, as I got (rightly or wrongly) a more "military" vibe. And in my highly uninformed opinion, I'd feel much less comfortable in close quarters with actual spook-dom than I would around high-end military establishment people. Maybe I'm wrong. I'd probably take upper six figures to warm a seat for either, though. Shake the hand of the devil, sell your soul on the dotted line.
It wasn't so much "gave up on" as it was "deliberately destroyed".
Since the late 1800's, the banks and the governments have pursued a continuous policy of economic centralization and integration, and key to that policy has been the gradual ratchet of making farms unprofitable and uneconomical.
We could have a thriving agricultural economy — just change the policymakers.
The supermarket is recording your image as you browse through the store, and within five years will assuredly be plugging you into facial recognition software.
It is not necessary for you to have a toll transponder in order for your car to be tracked. You have a license plate which can be trivially collected and indexed with off-the-shelf hardware and software. If you have a car made within the last few years, it probably has a permanent tether to the Internet.
Your cell phone is triangulated and your location is approximated to a handful of feet by your carrier.
In some not-too-distant future, it’s easy to imagine the death of cash, the outmoded way to pay: cryptocurrency is just so much sexier.
Newsflash: every man is not his own island.
In excusing those responsible for polluting my life, you are culpable also.
Your browsing experience is in good hands.