logo

Velocity Stack

Why I’m Committing to use Typescript in All of My Development Process

Martin Kariuki 2 October 2024

nada
  • I have enjoyed each language's flexibility and power as someone with a background in several programming languages- Ruby, Python, Java, and even C++. Every language offers unique features, but this diversity has also been a source of frustration for me and In these blog I will tell you why.

Problem: Too Much Context Switching.

Each time I dive into a new technology or framework, especially for backend development, I often need help adjusting to the language-specific quirks. Whether figuring out the nuances of Python’s dynamic typing or recalling how Java handles strict object-oriented principles, the constant switching between languages has kept me in a learning loop; most of all, when I return to my older projects, I must re-learn the language. Context Switching isn’t just a minor inconvenience; it has been a severe block in my growth as a developer. Instead of mastering a single language, I’ve spent too much time on a hamster wheel, relearning the same syntax, tooling, and patterns of a language I do not use regularly. The fragmented approach has me feeling stagnant in my software development journey.

Solution: Typescript/Javascript.

I have made a conscious decision to fully embrace Typescript for the majority of my development. By committing to a versatile and widely applicable language, I can reduce distractions and focus on learning and building.

Here’s why TypeScript is my Choice:

  1. TypeScript is Familiar Yet Powerful. Coming from a Java, C++, and Rust background, TypeScript is a perfect balance. It provides the type-safety checks these languages offer while being flexible enough to allow dynamic programming when needed. Catching bugs and maintaining large codebases is more manageable, which is crucial for scaling projects.

  2. FullStack Capabilities. Nestjs and Next.js provide the necessary arsenal for all full-stack development. Nestjs provides a structured, opinionated way of writing express apps, suitable for scaling to large teams.

  3. Less Is More. By sticking with TypeScript, I eliminate the mental overhead of constantly switching between languages. TypeScript allows me to focus on learning new concepts—whether it’s a new framework, API design pattern, or cutting-edge tools like Cloud Computing and AI—while removing most barriers to development. One of its key advantages is code reusability across platforms. When building apps, leveraging React, React Native and Electron, development and code reusability is easy, like using local types. This saves time and seamles scallability. Plus, when I return to older codebases, the language still feels natural, helping me avoid the friction of relearning syntax and structure.

  4. The Typescript, NodeJS Ecosystem and Community. Typescript/Javascript has rapidly become one of the most popular languages in development. With more and better runtimes like node, bun, and deno, these improvements focus on improving Typescript. The developer community is active and responsive, so I have many resources to learn and collaborate.

My Vision Moving Forward.

By removing most of the distractions in context switching, I can comfortably be more productive and even have extra time to work on other things like blogging. Code reusability can improve my development time by using the same features across projects and between frontends and backends. By leveraging the set of features provided by Typescript, I can maintain large codebases as an indie developer and scale faster while adopting new features easily.