<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: kristoff_it</title><link>https://news.ycombinator.com/user?id=kristoff_it</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 09 Jul 2026 08:26:35 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=kristoff_it" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Returning to Zig]]></title><description><![CDATA[
<p>Article URL: <a href="https://gracefulliberty.com/articles/return-to-zig/">https://gracefulliberty.com/articles/return-to-zig/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48539020">https://news.ycombinator.com/item?id=48539020</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 15 Jun 2026 09:59:22 +0000</pubDate><link>https://gracefulliberty.com/articles/return-to-zig/</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48539020</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48539020</guid></item><item><title><![CDATA[New comment by kristoff_it in "My Software North Star"]]></title><description><![CDATA[
<p>> Writing memory safe code in unsafe languages requires global reasoning<p>If you learn how to use arena allocators and in general use modern techniques, you don't need global reasoning to write correct memory management code pretty much never.<p>If your code is a RAII and abstraction maze, then yes, you will probably need global reasoning, but that's not the case with Zig.</p>
]]></description><pubDate>Sun, 07 Jun 2026 12:35:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=48434212</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48434212</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48434212</guid></item><item><title><![CDATA[New comment by kristoff_it in "My Software North Star"]]></title><description><![CDATA[
<p>Thanks, yeah Andrew gave a pretty good interview to the JetBrains people recently <a href="https://www.youtube.com/watch?v=iqddnwKF8HQ" rel="nofollow">https://www.youtube.com/watch?v=iqddnwKF8HQ</a></p>
]]></description><pubDate>Sun, 07 Jun 2026 09:30:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48433247</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48433247</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48433247</guid></item><item><title><![CDATA[New comment by kristoff_it in "My Software North Star"]]></title><description><![CDATA[
<p>I think you will be surprised by how many developers do not have this same list of priorities (or in that order) when developing software.<p>I posted this link at the same time when I posted it to Lobsters (<a href="https://lobste.rs/s/g6lkw1/my_software_north_star" rel="nofollow">https://lobste.rs/s/g6lkw1/my_software_north_star</a>) 3 days ago, but it didn't get on the front page. Seeing that the submission time has been reset, I imagine it was given a second chance by HN curators (it's a known process), but that doesn't mean free upvotes, it's just that some people resonate with the thinking.</p>
]]></description><pubDate>Sun, 07 Jun 2026 09:07:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48433138</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48433138</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48433138</guid></item><item><title><![CDATA[New comment by kristoff_it in "My Software North Star"]]></title><description><![CDATA[
<p>The truth is a bit of everything, bun being a messy codebase written primarily with "move fast and break things" in mind, cultural divergence between Bun and the Zig community, and also hiring issues. People maybe forgot but Jarred at some point caused a bunch of drama when he tweeted that working at Bun is not for people that value life/work balance, which went viral and caused an uproar. Must not have been super easy to hire from the Zig community after that, and in fact once Bun got acquired by Anthropic, it was pretty much Jarred and Claude doing all the work on the codebase. Pivoting to Rust is probably at least in part a way to reset the clock on those hiring interactions.</p>
]]></description><pubDate>Sun, 07 Jun 2026 09:00:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48433100</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48433100</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48433100</guid></item><item><title><![CDATA[New comment by kristoff_it in "My Software North Star"]]></title><description><![CDATA[
<p>> I imagine it's a difficult time to be a Zig developer.<p>In some ways it always has been, the community was 'born' in the middle of the pandemic, then for a long time there was a constant influx of Rust zealots coming into threads about Zig to remark how immoral it is to use Zig, and now LLM shovel sellers are telling everybody that the only way forward is to become efficient at consuming tokens.<p>But it's actually not that bad.<p>The Zig community is growing pretty well, useful software is being written in Zig, and the advantages that Zig brings are still valid whether you hand-code or use LLMs (e.g. cross-compilation of C/C++ code).</p>
]]></description><pubDate>Sun, 07 Jun 2026 08:52:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=48433068</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48433068</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48433068</guid></item><item><title><![CDATA[New comment by kristoff_it in "My Software North Star"]]></title><description><![CDATA[
<p>That is correct, this blog post is about understanding the priority of various subgoals and the ultimate goal (creating useful software). Memory-safety is important but overfitting on that subgoal, as I believe the memory-safety blog post is doing, won't make you create better software.<p>If Rust helps you get all the way to correctness, then great, but that blog post was insane.</p>
]]></description><pubDate>Sun, 07 Jun 2026 08:30:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=48432965</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48432965</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48432965</guid></item><item><title><![CDATA[New comment by kristoff_it in "Zig Zen Update"]]></title><description><![CDATA[
<p>trying to make good software :^)</p>
]]></description><pubDate>Sat, 06 Jun 2026 10:13:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=48423365</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48423365</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48423365</guid></item><item><title><![CDATA[New comment by kristoff_it in "Changing how we develop Ladybird"]]></title><description><![CDATA[
<p>That is the opposite of what's going on, read this <a href="https://kristoff.it/blog/contributor-poker-and-ai/" rel="nofollow">https://kristoff.it/blog/contributor-poker-and-ai/</a></p>
]]></description><pubDate>Fri, 05 Jun 2026 11:39:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48411051</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48411051</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48411051</guid></item><item><title><![CDATA[New comment by kristoff_it in "Changing how we develop Ladybird"]]></title><description><![CDATA[
<p>The problem statement is clear to everybody.<p>> For decades, code contributions have been how open source projects learned who to trust. People would show up, do the work, take responsibility for their changes, and stick around. Over time, trust emerged from the work itself.<p>The solution, IMO, is a strictly worse version than what we chose in the Zig project (banning LLM contributions).<p>> AI tools have changed the economics of this very quickly. We use them ourselves every day, but a pull request no longer tells us as much as it used to about the person submitting it. A substantial patch used to imply substantial effort, and that effort was a reasonable proxy for good faith. That assumption no longer holds.<p>Things that worry me about this choice:<p>- open source is a tough business and you need to leverage the good things about it to make it worth doing. contributors bring in a huge amount of value that they offer you essentially for free (see contributor poker: <a href="https://kristoff.it/blog/contributor-poker-and-ai/" rel="nofollow">https://kristoff.it/blog/contributor-poker-and-ai/</a>), on top of being a hugely valuable recruitment funnel. They're rejecting all of that, which seems insane to me.<p>- one could argue that LLMs could fill that gap but, first of all they could have just banned LLM usage only in PRs from untrusted contributors, and second even the best LLM:
  1. is a cost, not just free value, and the price of tokens is increasing
  2. the code has to be reviewed anyway, unless you think that just passing tests is good enough for a browser
  3. ultimately can't become a trusted core contributor able of taking ownership of a part of the codebase<p>- removing the influx of code that comes from PRs means that over time the whole project will have a small number of contributors that own all the code, making it easier for the project to do a license rugpull. when copyright ownership is well distributed this kind of thing is harder to pull off.<p>Overall, this is not good in my opinion. They're making open source a more problematic business model for them than it has to be, while at the same time making it harder to recruit more core contributors, as the code ownership coalesces to small group of people.<p>This is an obvious recipe for disaster (a rugpull), and I'm forced to wonder if this is just by mistake or if some of the Ladybird sponsors are playing a mean game of Secret Hitler. I guess only time will tell.</p>
]]></description><pubDate>Fri, 05 Jun 2026 10:03:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48410328</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48410328</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48410328</guid></item><item><title><![CDATA[New comment by kristoff_it in "Gooey: A GPU-accelerated UI framework for Zig"]]></title><description><![CDATA[
<p>Another Zig GUI project that people might be interested in is DVUI:<p><a href="https://github.com/david-vanderson/dvui" rel="nofollow">https://github.com/david-vanderson/dvui</a></p>
]]></description><pubDate>Wed, 03 Jun 2026 20:21:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=48389433</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48389433</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48389433</guid></item><item><title><![CDATA[My Software North Star]]></title><description><![CDATA[
<p>Article URL: <a href="https://kristoff.it/blog/north-star/">https://kristoff.it/blog/north-star/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48389368">https://news.ycombinator.com/item?id=48389368</a></p>
<p>Points: 220</p>
<p># Comments: 155</p>
]]></description><pubDate>Wed, 03 Jun 2026 20:16:07 +0000</pubDate><link>https://kristoff.it/blog/north-star/</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48389368</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48389368</guid></item><item><title><![CDATA[New comment by kristoff_it in "Zig: Build System Reworked"]]></title><description><![CDATA[
<p>It's not Future.await that is special per se, it's that it (Future.await) will have in it somewhere either in its body or in another function that it calls in turn, a use of `suspend` (using old Zig syntax).<p>`suspend` is the keyword that best fits your description (you can think of it as being closely related to `yield` in other languages), and it's kind of a lower-level primitive compared to async/await.<p>This also means that, according to our plans, Zig will have to propagate "stackless-ness" upwards in the call chain while analyzing the code (thus making Future.await not special per-se).</p>
]]></description><pubDate>Sat, 30 May 2026 20:33:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48340342</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48340342</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48340342</guid></item><item><title><![CDATA[New comment by kristoff_it in "Zig ELF Linker Improvements Devlog"]]></title><description><![CDATA[
<p>None of it, we've been working on this stuff for a long time already, scroll the devlog backwards, you will find plenty of entries on that topic.<p>It's the opposite: people have become more receptive to communication about this work now that there's "drama" attached to it.<p>This post I co-authored with Andrew is from 2020. In it we announce the idea of getting rid of LLVM from the debug build pipeline and since then work has been steadily going forward, it's just not trivial to bootstrap a full compiler pipeline for all major targets, but we're finally getting there.<p><a href="https://kristoff.it/blog/zig-new-relationship-llvm/" rel="nofollow">https://kristoff.it/blog/zig-new-relationship-llvm/</a></p>
]]></description><pubDate>Sat, 30 May 2026 18:18:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48339171</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48339171</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48339171</guid></item><item><title><![CDATA[New comment by kristoff_it in "Zig: Build System Reworked"]]></title><description><![CDATA[
<p>> If so, does that mean that every function in zig is a stackless coroutine?<p>No and yes.<p>If you're using Io.Threaded, then the concurrency model is multithreading and calling Future.await will block your thread on a OS futex.<p>If you're using Io.Evented, then the concurrency model is green threads / fibers and calling Future.await will suspend the current green thread by yielding (swapping CPU state with another fiber).<p>Zig currently does not support stackless coroutines so today you can't have that, but we used to have them (pre self-hosted compiler), and there's an accepted proposal to bring them back, in which case any function that calls await, or that otherwise has a suspension point, would have to be transformed into a stackless coroutine by the compiler, yes. The plan is for that to happen transparently without requiring an `async` annotation in the function signature, like we already did in the past.<p>This is an old post of mine that explains how that worked at a high level: <a href="https://kristoff.it/blog/zig-colorblind-async-await/" rel="nofollow">https://kristoff.it/blog/zig-colorblind-async-await/</a></p>
]]></description><pubDate>Sat, 30 May 2026 18:08:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=48339067</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48339067</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48339067</guid></item><item><title><![CDATA[Zig ELF Linker Improvements Devlog]]></title><description><![CDATA[
<p>Article URL: <a href="https://ziglang.org/devlog/2026/#2026-05-30">https://ziglang.org/devlog/2026/#2026-05-30</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48338673">https://news.ycombinator.com/item?id=48338673</a></p>
<p>Points: 227</p>
<p># Comments: 102</p>
]]></description><pubDate>Sat, 30 May 2026 17:29:22 +0000</pubDate><link>https://ziglang.org/devlog/2026/#2026-05-30</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48338673</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48338673</guid></item><item><title><![CDATA[New comment by kristoff_it in "Zig: Build System Reworked"]]></title><description><![CDATA[
<p>A vtable indirection is essentially free when you're going to perform a syscall. What matters is that the buffer is above the vtable (which is already the case for the current implementation) so that you don't pay for the indirection when hitting the buffer.</p>
]]></description><pubDate>Sat, 30 May 2026 16:16:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48337849</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48337849</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48337849</guid></item><item><title><![CDATA[New comment by kristoff_it in "Zig: Build System Reworked"]]></title><description><![CDATA[
<p>> You are supposed to do as much programming as you can in the high level language, and only drop into the low level language as needed.<p>I think that's a neat idea, but in the reverse: do as much as you can in the lower level language, and only go up to the high level language when the convenience is worth the cost.<p>Roc allows this: every program has a platform written in a low-level language, and then the Roc program uses the API that the platform exposes.<p><a href="https://www.roc-lang.org/" rel="nofollow">https://www.roc-lang.org/</a><p>Then how you want to balance high vs low is of course up to you :^)</p>
]]></description><pubDate>Sat, 30 May 2026 16:14:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48337833</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48337833</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48337833</guid></item><item><title><![CDATA[New comment by kristoff_it in "Zig: Build System Reworked"]]></title><description><![CDATA[
<p>Bun has de-facto refused to use incremental compilation in Zig for ages. It got to the point where Jarred somehow seems to have forgotten that the feature exists.<p>In any case Bun has already committed to the Rust slop switch, so it doesn't matter anymore.</p>
]]></description><pubDate>Sat, 30 May 2026 12:59:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48335680</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48335680</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48335680</guid></item><item><title><![CDATA[New comment by kristoff_it in "About LLMs at Zig Days"]]></title><description><![CDATA[
<p>The whole reason for this blog post is because discussion about LLMs does happen already (to the point of being a bit suffocating).<p>see also <a href="https://news.ycombinator.com/item?id=48314145">https://news.ycombinator.com/item?id=48314145</a></p>
]]></description><pubDate>Thu, 28 May 2026 20:03:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48314623</link><dc:creator>kristoff_it</dc:creator><comments>https://news.ycombinator.com/item?id=48314623</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48314623</guid></item></channel></rss>