My first hype exposure was “use the Extensible Markup Language for everything”. Learning from it allowed me to live through the front end stack explosion, the micro-service overdose and many, many more silly trends.
It turns out Grandma was right. Eat vegetables, exercise, sleep well.
And use the right tool for the right job.
Well, she didn’t say that last one.
But she could have.
When I started programming, XML was going to replace everything. HTML with XHTML, validation with DTD, transformation and presentation with XSLT, communication with SOAP.
I missed the train on the OOP hype, that was the generation before me, but I read so many articles warning me about it, that I applied the reasoning to XML: let’s wait and see if this is actually as good as they say before investing everything in it.
Turns out, XML was not the future. It was mostly technical debt.
It was useful for things like documents, and I believe the most successful use of it are still MS Office and LibreOffice file formats. They are just zips of XML.
I was lucky to learn this lesson very early in my career: there is no silver bullet, any single tool, no matter how good it is, must be evaluated from the engineering point of view of pros and cons. Everything has a cost, and implies compromises. It’s a matter of ROI. Which is hard to evaluate without experience.
Bottom line, time is once again the great equalizer, there is no substitute to observe how a complex system evolves, no matter your model of the world.
But above all, I learned that geeks think they are rational beings, while they are completely influenced by buzz, marketing, and their emotions. Even more so than the average person, because they believe they are less susceptible to it than normies, so they have a blind spot.
XML was just the beginning of many, many waves of hype.
When MongoDB came around (it’s web scale!), suddenly you had to use NoSQL for everything. Didn’t matter that there was absolutely no relation between 2 NoSQL systems. It’s like labeling a country as “doesn’t speak English”. Didn’t matter MongoDB was a terrible product at the time that was destroying your data (they did fix that, it’s now a good DB to have in your toolbox). Didn’t matter that most people using it didn’t need free replication because their data could fit in a SQlite file.
So we watched beginners put their data with no schema, no consistency, and broken validation in a big bag of blobs. The projects began failing in large numbers.
Then the node era arrived. Isomorphic JavaScript was all the rage, you had to use the same language in the frontend and the backend, and make everything async. But JS sucked, so most JS projects were created… to avoid writing ES5. I mean, no import, no namespace, terrible scoping, schizophreniac this
, prototype based inheritance, weak types, come on! So we got coffeescript, then babel, webpack, typescript, react + JSX, etc.
We were told to stay on top of the most modern ecosystem, and by that I mean dealing with compatibility being broken every two months. That’s the price of cutting edge tree