Why I write books instead of threads
Almost everything I publish is long. The books on this site run to chapters; the posts run to a thousand words or more. That is a worse strategy for reach than short posts, and I keep doing it for reasons that have nothing to do with reach.
Length is not the point; completeness is
A thread about weak versus unowned can say “use weak unless you are certain the reference
outlives the object”. That is true and it is not usable, because “certain” is doing all the work and
the thread has no room to say what certainty looks like.
The chapter version has to answer the next question, and the one after that: what guarantees the lifetime, what happens when you are wrong, what the crash looks like, how to find it. Somewhere in that chain is the sentence that actually helps, and it is usually three questions deep — past where a short post ends.
I do not write long because long is better. I write until the thing is answered, and it usually takes longer than I expected.
Writing is how I find out I do not understand it
This is the real reason, and it is not a metaphor.
I have started chapters on subjects I have used daily for years and discovered halfway through that I
could not explain them. Actor reentrancy, method dispatch through protocol extensions, what
@Observable actually tracks — in each case I had a working intuition that produced correct code and
fell apart the moment I had to write down why.
Prose is unforgiving in a way that code is not. Code that works is evidence you got the mechanism right; it is not evidence you know why. A paragraph explaining the mechanism either holds together or does not, and there is nothing to hide behind.
Every book chapter here has at least one section that exists because I got something wrong while writing it.
What the format lets me do
Order things properly. A chapter on layout can assume you have read the chapter on identity. A thread cannot assume anything, so it re-explains context every time, and the interesting part never arrives.
Include the failure. The most useful thing in most of these posts is the bug I shipped — the
unowned crash, the actor reentrancy, the four times I optimised the wrong thing. That does not fit
in a short post, and it is the part people write to me about.
Be wrong in public, durably. A thread scrolls away. A chapter has a URL, and when someone emails to say a claim is out of date, I fix the chapter. The writing improves over time instead of being replaced by more writing.
The costs, honestly
Fewer readers. A short post about a Swift gotcha reaches an order of magnitude more people than a chapter on the same topic. That is simply true and I have decided to accept it.
It is slow. A chapter is several evenings, and a book is a year. There is no version of this that is fast.
Most of it does not get read. People search for a specific problem, land on one section, solve it, and leave. That is fine — it is what reference material is for — but it means the careful ordering I spent time on is mostly invisible.
It goes out of date. A thread is a snapshot and nobody expects otherwise. A chapter looks authoritative, so being wrong in one is worse, and keeping several books current as Swift changes every year is real ongoing work.
Who it is for
Partly me. I have looked up my own chapters more than anyone else has, and a thing I wrote carefully eighteen months ago is a better answer than my memory of it.
Partly the person I was in 2021, self-taught, learning from blog posts that all explained the same introductory paragraph and stopped exactly where it got interesting. What I wanted then was something that kept going — that assumed I could handle the detail and told me what was underneath. Very little of that existed for free, and none of it existed in Vietnamese.
Which is why everything here is in both languages. That doubles the work and it is the part I am least willing to drop, because the gap in Vietnamese technical writing is much larger than the gap in English, and I am one of the people who can close a little of it.
The one thing I would say to someone deciding
Write the version that answers the question completely, and see how long it turns out to be. If that is four hundred words, publish four hundred words — the goal was never length.
But do not stop at the point where you would have to look something up. That point is exactly where the writing starts being worth reading, and it is where almost everything published stops.