Mitchell Hashimoto on Ghostty, Zig, and the Future of Terminals
Interview with Mitchell Hashimoto about Ghostty and Zig
After fifteen years building CLI tools, I created Ghostty to sharpen my skills in GPU programming and Zig while solving terminal limitations. I believe terminals should remain a specialized platform for text-based applications rather than becoming bloated like browsers. My goal is to introduce new protocols for better screen management and structured data, balancing user needs with a clear long-term vision for the ecosystem.
If all I did was pick through user issues every single day, you'd get stable, stagnant software. If you accept all PRs, you will change but without vision.
- tecoholic
Man, these are the kinds of things that I am so happy to read. People who think and care deeply about what they do, take pragmatic decisions that appears right to them and explain why they do things the way they do. Very motivating. Literally moved me from the couch to the work desk .
- Jtsummers
> I’ve always believed there should be way more forks, both personal and maintained ones.
There aren't more forks because once you fork something you take on the burden of synchronization, or you forfeit the benefit of future upstream work. To focus on Ghostty, Mitchell has taken on the effort of maintaining cross-platform support. If I want one specific feature (or even a bunch of features) and create a custom fork, but then GTK changes, now I have to support that change myself (assuming it is relevant to me or my community of users), or figure out a way to integrate Mitchell's changes into my fork, or I risk losing my customizations by having to rollback to baseline if the differences between my fork and baseline are too great.
If the system is well-engineered (the work on libghostty helps here) then you can keep that common core without forking, and fork just things on the periphery of the system. But well-engineered is not common.
- mintflow
> Back to Zig, Zig has a really polarizing specific stance on what it does from technology, to community management and funding to PR, blog posts and how they talk. I don’t agree with all of it but I so respect that they are unapologetically weird. So I continue to support them financially and use their technology because I support people trying to be their own person.
I read the full articles and always like what Mitchell trying to express, the above is an example
- sgarland
This is the only statement I disagree with:
> PowerShell gets a lot right with structured data.
CLI programs should operate on text. If you want to parse and format it, do so, but the default output mode should be plain text, so that I can pipe it into grep or awk without a second thought.
I am continuously irritated that the AWS CLI defaults to outputting in JSON. No one (I hope…) is using that tool in programs; that’s what boto3 and its ilk are for. But if humans are reading it, why default to something that they’re almost certainly going to be piping into jq if only for the formatting help?
- bel8
Related from 13h ago:
"My thoughts on the Bun Rust rewrite" by Zig's author Andrew Kelley
- TheChaplain
I've tried to learn rust of the longest time but failed, it's not the community that is the problem but the language itself. It is far from aesthetically pleasing, a child of perl and c++ meta template programming that inherited the worst traits of both.
Go and Python are my current preference, and C being an old soul mate.
- greatony
Reading this and Bun's Rust transition blog side by side just gives me a lot fun.
I'm a big fan of Rust, and as well as Ghostty.
Picking proper programming language is mostly about the product you are making and the problem you are solving.
My choice for my robot control system is Rust because I want zero-cost abstraction, no GC jitter, memory safety and avoid race conditions.
Then I moved my focus to AI agents and web applications, I pick TypeScript to take advantage of the whole ecosystem and no need to sync between backend and frontend codes.
I do not think products like Ghostty could benefit from Rust's memory safety feature a lot, but it do requires more attention to fight against the lifetime checker
- dbdr
> I don’t like the Rust culture. There’s no better way to put it. Every time I’ve interacted with them or hear how they talk about Rust, I just don’t like it.
I wonder if it's not that different people have entirely different experiences:
If you are outside the rust community, you'll mostly interact in the context of language flame wars, "why don't you just rewrite it in rust", etc. That is, you interact with the (small) part of the rust community that is most likely to want to dismiss other languages and want to brag.
I consider myself in the rust community, on reddit, the rust forum, etc, and I find it extremely well-meaning, inclusive, supportive of beginners, thoughtful, and generally a very pleasant bunch.