I know, I know. I promise I will explain myself, but before I do, I need to set the stage. That said, if that title did not make you spit out your drink, you might want to reflect on that. Yes, this post was written with my own feeble brain. No, I do not look forward to comments by people who haven’t read it. On coding agents I feel like every one of these articles starts with staking some flag in…
Some readers may disagree with this article due to years of indoctrination by Big O. In this article, I will rationalize why I choose to write all of my applications in one 50,000-line main() function using strongly worded convictions, contrarian arguments, and loosely constructed hypotheticals. Our industry has fully embraced using functions as the fundamental primitive to build all software on…
A common observation of language ecosystems that reach a certain amount of critical mass in adoption is that they start to have an explosion in the depth of dependency trees when building applications. The more I think about the problem, the more it resembles evolutionary biology. In natural ecosystems, resources are limited. This creates a selective pressure that regulates the growth of…
I just got back from my first “ Zig Day ”, which happened to also be Portland’s inaugural . We started the day with a quick mingle. We then briefly formed a circle to introduce ourselves and say what project we had brought with us, or what we were hoping to learn. We then broke out organically into groups, coded all day, went out to lunch, came back, coded some more, and finally, shared what we…
In this post I will make the case for the concept of a “runtime resizable struct” in Zig. I will then design an API by exploiting Zig’s powerful comptime functionality. If you want to skip straight to the implementation, a minimal proof of concept is available as a package on GitHub . Arrays and many-item pointers Zig has support for many kinds of collection types in its standard library. All of…
In a recent blog post , Loris Cro highlighted the new direction for Zig’s approach to async I/O. Various discussions have since unfolded on whether or not this design really removes function coloring or not. I can see why if you squint at the design in a certain way, you might see red and blue. Personally, I think calling it coloring is a stretch; but I’m not sure the answer to whether it is or…