Typesafe - An Overused Term That Needs a Reality Check

Typesafe - An Overused Term That Needs a Reality Check

I have had just about enough of this.

Play this article
😠
This article is a rant. Nothing more, nothing less. A rant.

Of all the internet hype words, this one really gets on my nerves. I didn't mind initially, but now - it is EVERYWHERE!!!

Every place I turn, be it articles or YouTube videos, someone is going on and on about typesafe this or typesafe that. I am at a point where it is virtually impossible for someone doing things related to web development to not mention typesafe.

I hear people saying typesafety makes the web better. It doesn't, not really. Because all the problems pointed to in favour of this still exist regardless. The actual problem isn't JavaScript or its lack of types, no - it is people not adequately learning JavaScript correctly and then blaming the language.

And It's not that I have an issue with typesafety, no. I use several strictly typed languages all the time. It's the fact that y'all won't shut up about it that's annoying me. I get it, move on, there's better things to do - things to be shipped.

We are at a point at which people are no longer writing good code, but typesafe code. Because that's the focus - typesafe code, not working code. I personally see this as a bad thing as we are moving further and further away from the fundamentals. The fundamentals. Remember those? the building blocks - the foundations - that meant you understood why things happen the way they do.


What Makes Me So Confident?

For a good 5 months, I watched a developer much more experienced than I and several of the people preaching this typesafety mantra build consistently without it. He built and took to production in JavaScript. How? Because he understood the core fundamentals of the language he was using.

Here is an example, say you were making an input component in React:

What you and your ilk would have done:

export default function Input({type, value}: {type: string, value:string, onChange: () => void}){
    ...
}

versus

What he would do:

export default function Input({type, value, onChange = () => {} ){
    ...
}

So if anything what you have succeeded in doing is making sure I do not conform to this typesafe noise.

If any one of comes to this and says it's necessary, I'm reporting you for antagonising me.

Conclusion

If you noticed, I have a conscientious attempt to not mention the offending language itself specifically. Or the superset around whatever as they said when they were convincing you all to fall in line.

Here's the thing, if y'all didn't push this typesafe agenda so much I might have gotten with it. Right now, it's just too much and I am tired.

I promise you, if this current state of things was my introduction to development I would have stopped and pursued other ventures. Matter of fact, I am getting closer and closer to doing so.

You and your typesafety can go hang. I don't want it. I am going to be focusing on my open-source commitments.

LEARN THE LANGUAGE AND WHAT IT REQUIRES! STOP TRYING TO FIT IT TO WHAT YOU ARE USED TO!


Side Note

Another thing that's exacerbating me could possibly be that I just finished reading 1984 and the mind control in it is oddly indicative of all of this.

Yes. I have animosity towards your typesafety. I didn't before, I do now.