I really do like TypeScript.

Anecdotally many backend developers really dislike JavaScript (and by extension TypeScript), even among Python or Ruby developers who already co-exist peacefully without a static type system. But, for me it is the most “fun” language so far.

After some Scala, C#, C++, Java, Kotlin, JavaScript, Ruby, Python, and TypeScript I still think that TypeScript is my favorite language so far.

What does it mean for it to be my favorite? A compromise in functionality. I write working code fastest in JavaScript. I love Kotlin's semantics. C# tooling is amazing. Python has existing code for everything.

From experience, big piles of JavaScript become hard to maintain. Largely just because the language is so flexible – it is easy to contrive reasonable patterns to organize a project, but that means they fluctuate between programs. This means lots of different data structures, and it is hard to learn data structures via static analysis (reading the code) without good type system tooling.

TypeScript provides a clean way to program with the benefits of JavaScript but also in a maintainable fashion. I script in JS but prefer TypeScript for code I want to revisit later.

C#, C++ require extensive build tooling to work as many places as JS does. JVM tech is always limited by slow boot times and heavy deployments. Ruby suffers from maintainability issues, and Python is a reasonable choice but somehow the semantics don't “click” for me. I think the curly brace scopes parse better visually.

JavaScript is fast and provides easy APIs for interfacing with the system. TypeScript makes that maintainable.

~ Ben