Running in Place

Running in Place

The rate of software developers suffering from burnout is on the rise and yet the elitism never seems to die. Why is it wrong to use jQuery in 2022 instead of switching to modern alternatives like ES2048 or frameworks like Bingo.js?

In this post, let’s explore learning for the sake of inflating your own ego.

Knowledge as an ego tool

The developer entered the following code:

["1", "2", "3"].map(parseInt);

And puffed his stomach, for he’s part of the 1% of Javascript developers who understand the language well enough to know that this line will return [1, NaN, NaN].

Like many developers who have affinity for Javascript, he uses the language as a way to differentiate himself from the masses. After all, if no one else can understand his code, then he’s obviously a special snowflake.

Not only is complexity good for the ego, but it also sells.

The new objective

You thought that building software was about solving real world problems and bringing in cold hard cash as a result? In reality, it’s about who creates the biggest problem so that they can get paid for more hours to solve it.

Take web frameworks for instance. If a developer uses frameworks like Django, or Ruby on Rails, they can build an MVP in as little as 6 weeks. Some MVPs are so simple that they can be implemented in a weekend.

Another common task in web development is to manipulate the DOM. If you want to move quickly, the obvious choice is jQuery.

But in web development, if you use any framework or library that’s more than 10 years old, you’ll get paid less as a result of finishing work early. The natural solution is to do the following:

  1. Split your code base in two.
  2. One for the backend.
  3. The other for the frontend.
  4. Invent new patterns for authentication, rendering, and state management.
  5. Roll your own crypto if possible.

Now you’ve essentially grew your income exponentially. Instead of 6 weeks for an MVP, you’ll be done in 6 months. The recipe for earning a high income as a software developer is as follows:

  1. Use new technology that hasn’t been battle tested yet.
  2. Spend 40% of your time dealing with bugs in this new technology.
  3. Spend another 40% reinventing the wheel.
  4. Spend the remaining 20% actually building app features.

Always remember the 80/20 rule.

We’re running in place

My favorite CSS framework is Bootstrap. With it, I can quickly build UIs without having to reinvent the wheel. When the team decided that it was more important to remove the jQuery dependency instead of adding more features to the framework, I was confused.

Wasn’t the goal of Bootstrap to allow web developers to speed up development? How does removing jQuery move us towards that goal? I couldn’t understand.

Instead of providing us with more components and utilities, Bootstrap 5 gave us a few quality of life changes and no jQuery. Developer productivity in BS5 is the same as with BS4 or maybe even worse because you now have to use vanilla javascript instead of jQuery plugins to work with the components. Instead of opening a modal with jQuery ($("modal").show()), you now have to instantiate an object. Not a huge difference but still lost simplicity.

Of course, you can now bundle your own javascript and remove components that you don’t need. As if that matters in a world where everyone is shipping web apps containing megabytes (yes, megabytes), of client side scripts.

It looks like we’re running in place. Instead of moving forward by building better tools that can help us become more productive, we’re building complex tools with the goal of pleasing the elite — people who rely on complex technology to charge more hours.

Even if removing jQuery is the right decision, was it really the priority right now? Was it worth it to sacrifice developer time towards that goal instead of using it to add more features? Yes it was, because according to our new objective, we need to bill more hours and the only way to do that is by becoming less productive.

Standing still is better

Instead of constantly trying to keep up with trends, it’s better to stand still and appreciate what’s already available. But isn’t the industry going to die if we do that? Isn’t technology supposed to be like a soldier dodging a sniper — a moving target?

Says who? Technology has never been about learning new stuff so that you can pretend to be better than everyone else. It was about winning the war. It is what helped the allied army decipher encoded messages. Do you really think that these programmers cared about what others thought of them? Hitler was out for blood. Either they deciphered those messages or they’re thrown in gas chambers.

Whenever you’re looking to pickup something new, ask these questions:

  1. Does this thing help me ship features faster?
  2. Does it make my life easier?
  3. Do my users prefer products built with it?

If you can’t answer yes to all of them then it clearly sucks.