The leftpad debacle

The leftpad debacle is a new thing that proves just how low the programming world has sunk. Please make sure that you read the article I linked first, so we can go ahead and bash the current day developers, the young developers as Radu calls them.

For a bit of context: JavaScript is a horrible idea that pollutes the Internet today. The worst thing that happened to computing, if you ask me. While lowering the threshold for what a programmer is called, it managed to pollute existing mediocre developers into becoming horrible, copy-paste types, that take their solutions from StackOverflow without any sense or judgment.

But one thing that these developers have in common is the ability to digest motivational type of material – the kind that comes with abbreviations, stuff like design patterns while setting SMART objectives, based SOLID principles, with a clear RACI model. The types that love this kind of thing, the types that corrupted the programming jobs to the core. And, amazingly, they deliver. Utter crap, megabytes of monsters, but they do deliver.

And such people are the people that were unable to write their own left-padding function, and had to find a package that implements that. Most of them were actually smart library writers, who provide components for others to reuse, and who weren’t able to provide their own implementation, therefore they reused a component so insignifiant that they should have provided. These, remember, are the smart ones, the ones that offer similar functionality to other people, library writers. They should’ve known better.

However, nobody really talks about the real lesson that we learn from the leftpad debacle. Basically, that your application is at the hand of a developer that wrote a function sometime in 2010, and if you use that they can change it under your feet. For example, what if it would send to a well known address all the input from a page that contains the word „Password”?

Obviously, these kind of things are simply reused and trusted. Nobody really knows what their application is doing, and nobody knows who is Responsible (the R from RACI) for the code’s functionality. When you add these frameworks to the fold, who do you blame when someone goes wrong. Did they sign the NDAs that you signed? Can they be found and can they be corrected? Yet you include their code in your product.

These are tough topics. These are topics that should not be taken lightly, as the quality of our lives depend more and more on computing. These people are writing AI, and the AI goes more genocidal than the Nazis.