Mitchell Hashimoto, HashiCorp co-founder and creator of the Ghostty terminal emulator, writes on programming, terminals, Nix, and AI use.
HN links it for Ghostty's memory leak fix and his AI adoption post, which one commenter says shows skeptical, solid programmers benefiting from AI agents.
>For example Zig is probably the most impressive new language, and it’s got a ton of awesome stuff but the chance that I’m going to adopt it over a language with often comparable performance that is ALSO much safer? Rounds to zero.
1) Rust, in practice, is "safer" than Zig but doesn't seem to be "much safer".
See: https://mitchellh.com/writing/ghostty-gtk-rewrite
> Our Zig codebase had one leak and one undefined memory access. That was really surprising to me (in a good way). Our Zig codebase is large, complex, and uses tons of memory tricks for performance that could easily lead to unsafe behaviors. I thought we'd have a lot more issues, honestly. Also, the one leak found was during calling a 3rd party C API (so Zig couldn't detect it). So this is a huge success.
Take that as you will. And what Ghostty does probably requires a decent chunk of "unsafe" that would likely hide a bug anyway.
To me, the tradeoff of a demonstrably small number of bugs in a system software language in return for the demonstrably faster developer velocity (Zig compiles WAY faster than Rust, Zig wraps C/C++ libraries way easier than Rust, Zig cross compiles way more easily, etc.) is a decent tradeoff for my use cases.
For me, programming is about corralling motivation more than anything else. Rust saps my motivation is ways that Zig does not.
I love what the Oxide folks are doing. Having someone pwn your big server because of a memory bug? Yeah, I'd reach for Rust in their use cases. Or,…
I think framing it as a site for people that are positive about AI is probably the wrong way to go, but around it kf you don't want just a bunch of AI psychosis posts and nothing else.
I think it would be better if, instead of being defined in terms of being "positive" about AI (in the sense of saying that everything to do with AI is all great and rosy and awesome, and thinking every new AI thing is the next big thing, and praising every vibe-coded piece of slop), the focus was explicitly on having mature, software engineering-focused discussions of how to actually understand, make, and use AI and AI tools/harnesses, where it's taken as common ground that these are tools, not magical genies that will usher in the rapture of the nerds or make software development obsolete, nor uniquely evil technologies that only fascists could ever use or like or that are completely useless, or tools that only talentless hacks who don't care about the craft, good use. So basically to avoid shallow dismissals and endless culture of war arguments.
I would love to have a place that discusses the pros and cons of different ways of approaching specification, natural language programming, DSLs, property-based testing, behavior-driven development, lightweight formal methods like model checking, or even more heavyweight formal methods like doing proofs, etc, as means of using the extra time and lowered cognitive load allowed by AI coding agents to actually increase the reliability and improve the…
It seems I've committed the cardinal sin of failing to specify my units. So to clarify, it's $25k per year.
But my mistake that aside, I appreciate your reply. I saw in another comment thread that you added that you have a blog post in the pipeline on building the new billing system. So I'm really looking forward to reading that. I've enjoyed reading other billing/payments content. And I'm sure your post will also be insightful and highly detailed.
I think it's so so fascinating that this feature is consistently solved at the contract/legal and customer support "layer" of the stack. That's really unpleasant to me, because it is a lot harder for me to wrap my head around the specifics of how different edge cases will play out.
Like as a programmer, I've built up all these skills on reaching technical documentation, understanding systems, their limits, and complex interactions. But instead of using that muscle memory, I have to try to talk with a human and deal with the seemingly intentional vagueness of the legal system.
It feels to me a lot like the story from Mitchell Hashimoto about dealing with the bank for his startup, where he was dodging calls from his account executive and generally behaving in a way that the bank is not used to from enterprise clients. [0]
I'm ready to admit my behavior is anti-social and irrational here. But, it is what comes natural to me.
This is meandering now. But, I just want to sneak in a bit more info on my use cases, since you also…
Some commentary about the radar...
try: Boox Go 10.3 tablet
Agree. Avoid reMarkable™. Hostile to the community and better options are out there or on the way including Boox, Onyx and the new Daylight Computer.
https://daylightcomputer.com/product
https://www.zdnet.com/article/best-note-taking-tablet/
---
adopt: Blank Spaces app
No need to pay money on ios. Clear off all the icons and when you need something swipe down in the middle of the screen and open search or swipe over to the alphabetical listing. Windows Phone was way ahead of its time on this one.
---
assess: TypeScript – What does it buy me over JS?
This one is a little bit flame bait... at the cost of a build step you get a much more reasonable development experience for JS targets with reliable types. The problem is smart people want to flex their brain a lot more than their restraint (where are my grug brains at?) and type astronauting makes the experience much worse. As with all things there is a balance however TS should be "Adopt".
---
hold: Zig – This looks like a dead-end for me
I keep looking at Zig and playing with it but I am so productive with Go and Python for things that need to be fast enough Zig doesn't have much that I need. However Mitchell Hashimoto is using it to great success for his new MacOS terminal emulator which makes me think I just haven't tried using it in the appropriate domain... maybe a raytracer is in my…
I think before even being able to entertain the thought of slowing the fuck down, we need to seriously consider divorcing productivity. Or at least asking a break, so you can go for a walk in the park, meet some friends and reflect on how you are approaching development.
The gold standard of AI adoption for me would be what's encoded in this post https://mitchellh.com/writing/my-ai-adoption-journey. I've had tremendous success with roughly following the ideas there.
> The point is: let the agent do the boring stuff, the stuff that won't teach you anything new, or try out different things you'd otherwise not have time for. Then you evaluate what it came up with, take the ideas that are actually reasonable and correct, and finalize the implementation.
That's partially true. I've also had instances where I could have very well done a simple change by myself, but by running it through an agent first I became aware of complexities I wasn't considering and I gained documentation updates for free.
Oh and the best part, if in three months I'm asked to compile a list of things I did, I can just look at my session history, cross with my development history on my repositories and paint a very good picture of what I've achieved. I can even rebuild the decision process with designing the solution.
It's always a win to run things through an agent.
Kitty is fine, but there is a big issue with tmux and the dev seems to think it is about tiling and not about using remote machines.[0] Sure, I tile because it is there and I don't have control of the terminal I'll use on the other end, but the main draw is I gotta work on machines I'm connecting to with ssh. I think there's a lot of us still needing tools like this (and mosh) but little support. Looks like people were trying to help the dev but there was communication breakdown. I'm all for making sure things are done right and not just accepting hacky solutions, but there has to end up being a solution.
I'd honestly just love to have a minimal terminal like foot[1], but that's wayland only and wayland support is still very mixed. And who knows when ghostty will come out[2]. But I also need linux + mac support and I think a lot of people do (and no wayland to mac port?). Too many terminals are far too bloated. And boy... do I not need this bullshit[3]
[0] https://github.com/kovidgoyal/kitty/issues/391
[1] https://codeberg.org/dnkl/foot
[2] https://mitchellh.com/ghostty
[3] https://github.com/warpdotdev/Warp/issues/900