Interview with Mitchell Hashimoto about Ghostty and Zig
9 hours ago
- #Open Source Philosophy
- #Terminal Development
- #Software Engineering
- Mitchell Hashimoto, creator of various DevOps tools and currently working on Ghostty and Vouch, discusses his projects, terminal development, and open-source philosophy.
- He explains that interviews with him often focus on his transition from software engineering to business founder or on his products like HashiCorp tools and Ghostty.
- Hashimoto started Ghostty to improve his technical skills, explore GPU programming, desktop systems programming, and learn Zig, leading to a fast, feature-rich, cross-platform terminal emulator.
- He believes terminals should be optimized for text-based applications with clear security and composability, rather than pushing them to extremes like full application platforms.
- Hashimoto advocates for new terminal protocols, such as an n-screen API for multiple screens and a button protocol for interactive elements in scrollback history.
- He emphasizes that open-source maintainers have no obligation to users, but he strives to improve software while balancing user feedback with personal vision and avoiding scope creep.
- Hashimoto supports forking projects and believes the open-source community should embrace more personal forks, rather than expecting polished, product-like support from maintainers.
- He praises Zig for its continuous improvement and willingness to make breaking changes, and notes AI can ease the pain of such changes by automating updates.
- Hashimoto's library design approach involves learning from various ecosystems and porting enjoyable concepts, as seen in his focus on development-specific 'nouns' in Vagrant.
- He is critical of overly complex tech stacks and industry trends but accepts mainstream technologies for practical reasons like community and hiring.
- Hashimoto's principles for projects like Ghostty are personal reflections, leading to feature-rich, cross-platform core with native GUI, attracting like-minded contributors.
- He values diverse programming language cultures and respects Zig's unique stance, despite not agreeing with all aspects, while expressing dislike for Rust's community culture.
- To ensure quality, Hashimoto uses his own software extensively and employs AI for prototyping, but emphasizes understanding user needs and shipping code with care and empathy.
- He recommends learning how computers work through low-level systems programming in languages like C, Zig, or Rust, and studying standard library implementations to grasp underlying concepts.