309 John Carmack

John Carmack

American computer programmer and video game developer

John D. Carmack II is an American computer programmer and video game developer. He co-founded the video game company id Software and was the lead programmer of its 1990s games Commander Keen, Wolfenstein 3D, Doom, Quake, and their sequels.

Source: Wikipedia

  • Born: 1970 , Shawnee Mission, KS
  • Spouse: Katherine Anna Kang (m. 2000–2021)
  • Education: Shawnee Mission East High School, University of Missouri-Kansas City, and Raytown South High School
  • Children: 2
  • Parents: Stan Carmack and Inga Carmack
  • Employer(s): Keen Technologies (2023–present); Oculus VR (2013–2022)

The main arguments

  • The Evolution of Programming Languages: Carmack discusses the historical context of programming languages, particularly the competition between C and Pascal. He emphasizes that while C became the dominant language due to its association with Unix, Pascal offered better safety features. This highlights the ongoing debate in programming communities about the best tools for specific tasks, especially in game development.

  • Garbage Collection vs. Manual Memory Management: Carmack advocates for garbage collection, arguing that it minimizes memory-related errors and enhances developer productivity. He acknowledges criticisms regarding potential complacency but stresses the importance of safety and ease of use in modern programming practices.

  • User-Centric Development: Carmack emphasizes that programming should prioritize user experience and value. He believes developers must focus on creating products that enhance user satisfaction, which is crucial in an industry where user feedback can dictate success.

  • Optimization in Game Development: He discusses the necessity of optimizing code for performance, particularly in gaming and VR. Drawing from his experience with early PC games, he illustrates how understanding hardware limitations is essential for creating engaging user experiences.

  • The Future of VR: Carmack expresses uncertainty about VR's transformative potential, acknowledging its promise but also the challenges developers face in realizing its full capabilities. He argues that successful VR experiences should be built around creating something amazing that people love, rather than focusing solely on capabilities.

Any notable quotes

  • "The best programming language is the one that works generally that you're currently using."
  • This quote encapsulates Carmack's pragmatic approach to programming, emphasizing functionality over preference.

  • "You shouldn't be taking pride just in the specific thing like code golf... we're solving problems for people."

  • This highlights his belief that the purpose of programming is to create value for users, not merely to showcase technical skills.

  • "Garbage collection is a very great thing for the vast majority of programs."

  • This statement reflects his advocacy for modern programming practices that prioritize safety and ease of use.

  • "Working longer gets more done."

  • Carmack's assertion challenges the notion of work-life balance in tech, suggesting that dedication can lead to better outcomes.

  • "If you can make the world better inside the headset than outside, you've just improved the person's life."

  • This quote underscores Carmack's vision for VR as a means to enhance human experience, even if it may seem dystopian to some.

Relevant topics or themes

  • Programming Languages and Efficiency: The episode delves into the evolution of programming languages, discussing trade-offs between ease of use and performance. Carmack's insights into languages like C, C++, Python, and JavaScript highlight the ongoing debate in the programming community about the best tools for different tasks.

  • User-Centric Development: Carmack's focus on user value underscores a significant theme in software development: the importance of creating products that genuinely enhance user experience. This theme resonates with current trends in tech, where user feedback and satisfaction are critical metrics for success.

  • The Future of VR: The conversation touches on the potential of virtual reality to transform various aspects of life, from gaming to social interaction. Carmack's uncertainty about VR's future applications reflects broader industry challenges in defining and realizing the technology's potential.

  • Work Ethic in Tech: Carmack's views on productivity and work hours spark a discussion about the culture of hard work in the tech industry. His perspective challenges conventional wisdom about work-life balance, suggesting that dedication and long hours can lead to better results.

  • The Role of Optimization in Development: The importance of optimizing code for performance, especially in gaming and VR, is a recurring theme. Carmack's insights into the technical challenges of creating immersive experiences highlight the need for developers to understand the underlying hardware and software systems.

  • Artificial General Intelligence (AGI): Carmack discusses the potential for AGI, emphasizing the importance of understanding the nuances of intelligence and learning. He expresses skepticism about the rapid development of AGI, suggesting that it will require significant advancements in technology and understanding of cognitive processes.

  • Embodiment in AI: The conversation touches on whether AGI needs a physical body to develop intelligence. Carmack argues that simulated environments can provide much of the value of real-world interactions, challenging the notion that physical embodiment is necessary for intelligence.

  • The Art and Science of Programming: Carmack draws parallels between programming and martial arts, particularly judo and jiu-jitsu, emphasizing the importance of understanding the underlying principles and techniques. He describes programming as a dance, where mastery comes from a deep understanding of the craft, akin to the fluidity and strategy in martial arts.

  • Curiosity and Lifelong Learning: Carmack encourages young people to embrace curiosity and the pursuit of knowledge. He emphasizes that while not everyone needs to delve deeply into every subject, having a broad set of tools and being aware of opportunities can lead to significant contributions.

  • Mortality and Meaning: Carmack reflects on his views regarding mortality, suggesting that he does not dwell on it but recognizes its impact on the scope of his work. He emphasizes focusing on the present and the problems at hand rather than getting lost in existential questions.

Overall, this episode of the Lex Fridman Podcast with John Carmack provides a deep dive into the complexities of programming, the evolving landscape of technology, and the philosophical underpinnings of software development. Carmack's extensive experience and insights offer valuable lessons for both aspiring and seasoned developers.

Additional Context

  • Generalizable Ideas in Game Development: Carmack discusses the concept of taking specific solutions from game development and finding broader applications, such as compiled shaders and their relevance in hardware design.

  • Technical Challenges in Doom and Quake: He shares memorable technical challenges faced during the development of iconic games like Doom and Quake, including the limitations of earlier technologies and the innovations that emerged from those constraints.

  • Human Relationships in Game Development: The episode touches on Carmack's relationship with John Romero, highlighting the complexities of collaboration and the impact of corporate structures on personal dynamics.

  • The Metaverse: Carmack reflects on the concept of the metaverse, discussing its potential and the challenges of building interconnected virtual worlds, drawing parallels to his early work in game development.

  • Mental Health and Work Stress: Carmack shares his perspective on mental health, discussing how he copes with stress and the importance of progress in maintaining well-being, contrasting his experiences with those of others in the industry.

  • AI and Consciousness: The discussion also delves into the nature of consciousness and its relevance to AGI, with Carmack expressing skepticism about the necessity of consciousness for intelligence, suggesting that intelligence can exist without the subjective experience associated with human consciousness.

  • The Role of Constraints: Carmack emphasizes the importance of constraints in both programming and AI development, arguing that limitations can drive creativity and innovation, leading to more effective solutions.