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.

Footnotes

  1. https://world.hey.com/dhh/turbo-8-is-dropping-typescript-70165c01

Share this:

Published by

Dmitry Kudryavtsev

Dmitry Kudryavtsev

Senior Software Engineer / Tech Lead / Consultant

With more than 14 years of professional experience in tech, Dmitry is a generalist software engineer with a strong passion to writing code and writing about code.


Technical Writing for Software Engineers - Book Cover

Recently, I released a new book called Technical Writing for Software Engineers - A Handbook. It’s a short handbook about how to improve your technical writing.

The book contains my experience and mistakes I made, together with examples of different technical documents you will have to write during your career. If you believe it might help you, consider purchasing it to support my work and this blog.

Get it on Gumroad or Leanpub


From Applicant to Employee - Book Cover

Were you affected by the recent lay-offs in tech? Are you looking for a new workplace? Do you want to get into tech?

Consider getting my and my wife’s recent book From Applicant to Employee - Your blueprint for landing a job in tech. It contains our combined knowledge on the interviewing process in small, and big tech companies. Together with tips and tricks on how to prepare for your interview, befriend your recruiter, and find a good match between you and potential employer.

Get it on Gumroad or LeanPub