Guest Josh Goldberg, a contributor to TypeScript and typescript-eslint, discusses the last decade of TypeScript development, the advantages of a widely used programming language like TypeScript, making Tailwind type safe, and pain points and competition in TypeScript.
Read more
AI Summary
AI Chapters
Episode notes
auto_awesome
Podcast summary created with Snipd AI
Quick takeaways
TypeScript provides valuable features and improves the development experience.
Learning JavaScript before diving into TypeScript helps appreciate its benefits.
The complexity of TypeScript tooling and integration with linting tools remains a pain point for some developers.
Deep dives
The Evolution of TypeScript and Initial Hesitations
TypeScript has evolved over the years and undergone significant improvements. Initially, there were some hesitations due to the compile step and difficulties in navigating the file tree. However, as TypeScript matured, it became clear that it provided valuable features and improved the development experience.
Learning TypeScript and JavaScript Separately
It is recommended to learn JavaScript before diving into TypeScript. Understanding the pains of working with JavaScript at scale helps appreciate the benefits TypeScript brings. TypeScript is considered an extension of JavaScript, adding a type system and other improvements.
The Challenges of Tooling and Complexity
The complexity of TypeScript can be a challenge, especially when it comes to tooling and linting. TypeScript's internals differ from other tools, and integrating TypeScript with existing linting tools like ESLint can be messy. The community is working towards improving this area, but it remains a pain point for some.
The Trend of Using JS Doc and Type Generation
Some developers are opting to use JavaScript with JS Doc annotations instead of TypeScript syntax. This allows them to leverage the benefits of the TypeScript toolchain, such as type generation and language server features, while still using JavaScript syntax. This trend may continue as proposals for type annotations in JavaScript gain traction.
TypeScript's Future and Competition
The episode discusses the future of TypeScript and whether it will face competition from other languages. The speaker mentions that TypeScript has become so ingrained in the industry, especially as the first language learned, that even with the emergence of other languages, there will still be a significant number of people who prefer TypeScript. The speaker also highlights the advantages of TypeScript's approachability, power, and ubiquity, suggesting that it will continue to be widely used and have a dedicated space alongside other languages and potential competitors.
Key Improvements to TypeScript
The episode touches on the notable improvements made to TypeScript, with a particular focus on the addition of strict null checking. The speakers highlight how this feature addresses the billion-dollar mistake of allowing null values to be passed where they shouldn't exist. The introduction of strict null checking has not only provided useful functionality, but it also showcases TypeScript's ability to innovate and lead ahead of other mainstream languages. The discussion also touches on other notable enhancements to TypeScript, such as logical types and conditional types, which have allowed for more complex and powerful type definitions.
Nick celebrates a decade of writing everyone’s favorite language with guest Josh Goldberg, who contributes to TypeScript, maintains typescript-eslint, and is an all-around great person! Jerod is also here to join the celebration, but let’s keep that a secret from him!
Changelog++ members save 3 minutes on this episode because they made the ads disappear. Join today!
Sponsors:
Fastly – Our bandwidth partner. Fastly powers fast, secure, and scalable digital experiences. Move beyond your content delivery network to their powerful edge cloud platform. Learn more at fastly.com
Fly.io – The home of Changelog.com — Deploy your apps and databases close to your users. In minutes you can run your Ruby, Go, Node, Deno, Python, or Elixir app (and databases!) all over the world. No ops required. Learn more at fly.io/changelog and check out the speedrun in their docs.
Typesense – Lightning fast, globally distributed Search-as-a-Service that runs in memory. You literally can’t get any faster!