Check out my latest book: Technical Writing for Software Engineers - A Handbook

On types and JavaScript drama


Earlier this week, the entire JavaScript community was in shambles over a controversial decision in a popular open-source project.

What happened?

David Heinemeier Hansson (known as DHH)—who is the creator of Ruby on Rails (among many other things)—approved a PR that removes Typescript from turbo framework.

This decision upset a lot of people, and created a big controversy. It even reached trolling inside the project’s issues/pull requests sections on GitHub. Many people, some of them never even heard about turbo, were really upset.

Here are 3 lessons we can learn from it.

Lesson #1: Caring less

While DHH is a popular figure inside the development community, he is just a regular guy with his own opinions and views on software development. The fact that he decided to go back to vanilla JavaScript—should not, in any way, affect your development preferences.

Clarification: I don’t suggest you dismiss any opinion which does not align with yours. It’s important to listen to other opinions and review your development preferences from time-to-time. What I do suggest is to not follow, blindly, opinions of other people just because they are well known in the industry.

Lesson #2: How to (not) treat the community

Many people expressed a very valid concern that I agree with. Turbo is an open-source package. And while DHH can do whatever he wants, the success of turbo is thanks to a lot of contributors. Some of them had open PRs, not yet merged, that are now obsolete. I didn’t dig too deep, because I don’t like drama, but from my understanding—the change was not communicated to contributors. I can see why active contributors are getting upset—they did not get the respect that they deserve.

It seems like this is a common pattern in some open-source projects. Project that are led by people who care only about themselves and their agenda. We should remember that the success of OSS depends a lot on the community, and the people who, often times without any monetary gains, dedicate their time for the project.

Lesson #3: Types are important

I strongly disagree with DHHs decision. Going back to vanilla JavaScript—is a big step backwards. It is now up to DHH to sort out his relationships with contributors, but I suggest you do not follow his lead. Type safety, even at compile time, is a big guarantee for maintainable, and correct code.

While DHHs arguments were simpler code, and less type acrobatics1—in reality, I believe it will bite him back on day. The amount of can not read foo of undefined errors, that I was dealing with back in the days of vanilla JavaScript, is too much. And considering the fact that you need to have a healthy development cadence, dealing with such errors—hurts DX a lot.

I suggest you check one of my old blog posts about type safety titled It's better to be (type)safe than sorry.

In the meantime, stay safe (pun intended) and enjoy the weekend.


  1. ↩