You deserve to be happy, or: the web wasn't a mistake

A discussion of why people hate JS, Electron, and the web. Also a plea about how excessive negativity hurts you and those around you.

Why do people hate JS so much?

People love telling you how much they hate JS or even the entire web. I gasped reading this post: “People who use [TypeScript/React/etc] should be beheaded, or at least hanged”. I’m sure it’s meant as a hyperbolic, but what on Earth gets people so twisted about JS and its ecosystem? I saw another user with “burning hatred for javascript” in their bio, and much more. “Web development is a fucking nightmare”, no, it’s your attitude that’s a nightmare.

People don’t understand JS and complaining is easier than learning. I’ve been a web developer for over a decade and I know more warts than ever about JS. It’s so much easier to tear something down rather than to build it up. Programmers love to believe they could make a new, better system to replace a legacy one. They’re almost always wrong. Even if you can build a better system, the existing one has a massive head start. And then you actually have to replace the old system. You can’t replace the web at this point. Not without losing an absurd amount of value.

Update: This sounds far more aggressive than I meant it to. My point was that there is usually context that explains most “bad” design decisions. That doesn’t make them not bad, and I’m not saying JS is perfect. I would change many things about JS if I could, but I value backwards compatibility of the web. (2023-07-07)

Electron was inevitable

Electron is basically Google Chrome without the address bar. It’s become a popular app development framework for many reasons. Electron-based apps don’t look like native apps, and they use more system memory. These are valid concerns, but I’d like to mention some of positives:

  • You can create an app Windows, macOS, Linux, and web with a single code base

  • Powerful theming via CSS allows deep UI customization

  • You can hire web developers to work on your product

In the past I worked for a company that maintained a single product built as a web app, an Android app, and an iOS app. Maintaining feature parity across three separate code bases was excruciating. Not to mention that the company had to hire three times as many developers that way. Even abstracting core business logic in backend services doesn’t help that much. UI code is tough, and inconsistencies between apps degrade user experience.

I wish more good native apps existed, but there’s a reason Electron is popular. It’s a good technical and economic choice, and that’s all the matters to companies.

Worse is better

The web has endured for good reason. It does a lot of things well, or at least well enough. The concept “worse is better” is relevant here. Project Xanadu tried to do everything better than the World Wide Web, but was over two decades late to the party. The agile manifesto contains the principle of “deliver working software frequently”. After all, people can’t use software that doesn’t exist or isn’t released.

Hatred as a personality trait rots you from the inside

As Bjarne Stroustrop, creator of C++, once said:

There are only two kinds of languages: the ones people complain about and the ones nobody uses.

This quote is relevant to the web: lots of people complain about it, and lots of people create with it. HTML and CSS have this reputation, but JS is where it’s overrepresented.

I want to be clear that I understand disappointment about the web. Targeted ads and cross-site tracking are awful. The web is more centralized than ever. I could go on. I’ve been a web developer for over a decade and I’ve used the web for most of my life. I remember the pre-Web 2.0 days.

If your social media bio opens with something “JS was a mistake” or “React sucks”, I have to ask: Why? Imagine meeting someone in real life and opening with that. Is this how you want to represent yourself? If you say “people who use TypeScript should be beheaded”, what are you doing? This behavior is toxic and self-destructive.

I know from personal experience how empty it is to define yourself by what you hate. I spent years as an obnoxious internet atheist. My beliefs are still the same, but I don’t waste my time arguing with people about them.

I can’t tell you what to do or how to think, but I can choose who I engage with. Your words matter. Recently I read a post about someone who had a habit of saying “computers were a mistake”. Management asked them to stop saying this at work because it was scaring new employees. This level of negativity and edginess seems like a defense mechanism to me. It’s so much scarier to be vulnerable and sincere than it is to be jaded and bitter. I try to resist the urge of indulging myself in this behavior.

I’m not saying “positive vibes only”

I know that “positive vibes only” is a toxic mentality to avoid accountability. I’m not saying you’re not allowed to be upset or disappointed. Everyone has these feelings and it’s good to talk about them. But please exercise some nuance. Breathe a little. Go for a walk. Then consider if your discussion is going to help you process things.

You deserve to be happy

Computers were not a mistake. The web was not a mistake. JS was not a mistake. It’s reductionist to act this way. Social media has  tarnished our ability to speak at length and with nuance on subjects. Please resist the urge to spew hatred with complete confidence. If not for others, do it for yourself. You deserve to be happy.