#021 - TypeScript vs Elixir: An FP Showdown with Theo Browne
Oct 2, 2023
auto_awesome
Theo Browne, CEO of Ping.gg and TypeScript advocate, discusses his background in Elixir and why he switched to TypeScript. They also explore the origins of Elixir and the benefits of using Vercel and Next.js. They touch on misconceptions about building from scratch, the role of TypeScript in checking code, and the debate over explicit return types. The importance of being a good engineer and following your passion is also highlighted.
TypeScript's inference model enables flexibility, maintainability, and reliability by automatically inferring the type relationship between the back end and front end code.
Project-based learning provides a clear goal and endpoint, fostering greater satisfaction and growth as an engineer.
TypeScript's inference model allows for a natural and flexible relationship between the back end and front end, while still maintaining type safety.
Deep dives
The Power of TypeScript Inference
The speaker emphasizes the benefit of TypeScript's inference model, which allows for the type relationship between the back end and front end to be automatically inferred. This enables flexibility, maintainability, and reliability, as changes in the data structure are immediately reflected as type errors in the front end code. The speaker highlights how inference simplifies the development process and increases productivity, and mentions that TypeScript's inference is one of the strongest among programming languages.
The Importance of Project-Based Learning
The speaker emphasizes the importance of project-based learning, citing examples of successful engineers who started coding to solve specific problems. They argue that project-based learning provides a clear goal and endpoint, making it easier to measure progress and build deeper understanding. The speaker suggests that beginners should focus on solving real problems rather than learning abstract concepts, as this approach leads to greater satisfaction and growth as an engineer.
The Debate over Explicit Return Types in TypeScript
The speaker discusses the debate around explicit return types in TypeScript. They highlight the benefits of inference and argue that strict return typing can lead to unnecessary complexity. The speaker mentions that TypeScript's inference model allows for a natural and flexible relationship between the back end and front end, while still maintaining type safety. They express their preference for inference and emphasize that removing inference from TypeScript would be a significant loss.
The Limitations of Serverless Frameworks for REST API Deployment
The speaker shares their personal experience with deploying a REST API using serverless frameworks and lambdas. They explain that while serverless frameworks can be beneficial in certain scenarios, they faced challenges with long deploy times and poor developer productivity. Ultimately, they scrapped the serverless approach and switched back to Kubernetes. The speaker emphasizes the need for considering the specific requirements of a project before adopting serverless architecture.
TypeScript as a Linter and the Difference Between TypeScript and ESLint
The speaker discusses the role of TypeScript as a strict superset of JavaScript and explains that TypeScript primarily serves as a robust linter for JavaScript code. They argue that TypeScript is intended to provide strong syntax checks and ensure the existence of inputs and outputs in code. They differentiate TypeScript from ESLint, which focuses on syntax rules and behavioral checks. The speaker also advises beginners to focus on setting realistic goals and recommends using TypeScript and Prettier for projects, while highlighting the challenges of using TypeScript for library development.
Theo Browne is a notorious tech YouTuber and streamer, CEO of Ping.gg, TypeScript advocate and creator of the t3 stack. In this episode Theo sheds some light on his background in Elixir, a functional programming language that runs on the Erlang VM, and why he made the switch to TypeScript while working at Twitch.
Get the Snipd podcast app
Unlock the knowledge in podcasts with the podcast player of the future.
AI-powered podcast player
Listen to all your favourite podcasts with AI-powered features
Discover highlights
Listen to the best highlights from the podcasts you love and dive into the full episode
Save any moment
Hear something you like? Tap your headphones to save it with AI-generated key takeaways
Share & Export
Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more
AI-powered podcast player
Listen to all your favourite podcasts with AI-powered features
Discover highlights
Listen to the best highlights from the podcasts you love and dive into the full episode