Top all-time · #169
Alex Kladov
Personal blog · matklad.github.ioprogrammingsystems
Alex Kladov writes matklad, a personal blog at matklad.github.io about programming and systems. Since 2018, 245 different Hacker News readers have linked it 554 times, most often “Rust's Ugly Syntax (2023)”. It is still writing: the last post was on 2026-10-29, and you can follow it by feed.
Sometimes recommended · 14 of 40 sampled comments recommend it?
Why HN links it
HN readers link this blog for its posts on Rust, Zig, parsers, rust-analyzer, LSP and testing, and several commenters recommend specific posts by name.
- Recommended for · 14 comments
- Called a nice write-up, very well-written, succinct and objective, a great introduction and a favourite essay.
Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
matklad's Arts&Crafts
Most-linked posts?
- Rust's Ugly Syntax (2023)15 people · 15 mentions · first linked 2023-01-27
- Simple but Powerful Pratt Parsing9 people · 11 mentions · first linked 2020-04-14
- Zig and Rust9 people · 10 mentions · first linked 2023-03-27
- Hard Mode Rust (2022)9 people · 9 mentions · first linked 2022-10-20
- Push Ifs Up and Fors Down8 people · 8 mentions · first linked 2023-11-15
- Resilient LL Parsing Tutorial (2023)7 people · 10 mentions · first linked 2023-05-21
- Architecture.md (2021)7 people · 8 mentions · first linked 2021-05-29
- How to Test6 people · 7 mentions · first linked 2023-04-20
- Fast Rust Builds6 people · 6 mentions · first linked 2021-09-05
- Why LSP?6 people · 6 mentions · first linked 2022-10-13
What Hacker News says?
You can reduce inherent problem complexity by picking a simpler subset of the task to solve (for example only support a single backend rather than plugins and interfaces, or exclude complex problems like text ligatures and glyph shaping). The resulting program will be shorter, have less indirections (making it easier to trace statically, and require less scrolling between functions and jumping between files), easier…
Comment linking /2021/02/06/ARCHITECTURE.md.html
on “The Grug Brained Developer”Submitted Architecture.md as a story · 1349 points
HN discussion- https://matklad.github.io/ - https://danluu.com/ - https://raphlinus.github.io/ - https://rosenzweig.io/ - https://flak.tedunangst.com/ - https://ciechanow.ski/
Comment linking /
on “Ask HN: Favorite Blogs by Individuals?”Submitted Push Ifs Up and Fors Down as a story · 569 points
HN discussionI’m still unsure of how to feel about Rust. But if it has made it into the Linux Kernel, then I assume adoption is ongoing. Still, Zig seems somewhat more intuitive to me, even though I’ve used it as little as Rust thus far. A nice write up on the topic Zig and Rust: https://matklad.github.io/2023/03/26/zig-and-rust.html edit: typos
Comment linking /2023/03/26/zig-and-rust.html
on “Static search trees: faster than binary search”Submitted Things Zig comptime won't do as a story · 466 points
HN discussionThe problem is that most people criticising Rust don't make the case very well. If you want to read good critique, I'd recommend this - https://matklad.github.io/2020/09/20/why-not-rust.html . This post up-to-date, succinct and objective. And most pertinently, this critique was written by someone who genuinely loves programming in Rust. Shows you that Rust users aren't blinded to the faults of the language. You shou…
Comment linking /2020/09/20/why-not-rust.html
on “Speed of Rust vs. C”Submitted Why LSP? as a story · 373 points
HN discussionInterestingly, I just read an article from matklad (who works a lot with Zig) talking about the benefits of splitting up error codes and error diagnostics, and the pattern of using a diagnostic sync to provide human-readable diagnostic information: https://matklad.github.io/2025/11/06/error-codes-for-control... Honestly I was quite convinced by that, because it kind of matches my own experiences that, even when usin…
Comment linking /2025/11/06/error-codes-for-control-flow.html
on “Why is Zig so cool?”Submitted Mutexes are faster than Spinlocks as a story · 373 points
HN discussionmatklad did it justice in his post here, in my opinion https://matklad.github.io/2025/08/09/zigs-lovely-syntax.html
Comment linking /2025/08/09/zigs-lovely-syntax.html
on “Why is Zig so cool?”Submitted Architecture.md (2021) as a story · 313 points
HN discussionThat's the point, I think: for a large number of real-world algorithms, you don't actually need a Turing Machine. There was a very well-written explanation of this on the front page[1] some time ago, concluded with: > Any algorithm that can be implemented by a Turing Machine such that its runtime is bounded by some primitive recursive function of input can also be implemented by a primitive recursive function! Also,…
Comment linking /2024/08/01/primitive-recursive-functions.html
on “A minimax chess engine in regular expressions”Submitted Why Not Rust? as a story · 310 points
HN discussionIf I understand TFA correctly, the author claims that D’s approach is actually different: https://matklad.github.io/2025/04/19/things-zig-comptime-won... “In contrast, there’s absolutely no facility for dynamic source code generation in Zig. You just can’t do that, the feature isn’t! [sic] Zig has a completely different feature, partial evaluation/specialization, which, none the less, is enough to cover most of use-…
Comment linking /2025/04/19/things-zig-comptime-wont-do.html
on “Things Zig comptime won't do”Submitted Use Long Options in Scripts as a story · 297 points
HN discussionAnother commenter recommended rust-analyzer as a source of inspiration. the main author, matklad, has written some very interesting blog posts describing ideas used that might be of interest to you: * https://rust-analyzer.github.io/blog/2020/09/16/challeging-L... * https://rust-analyzer.github.io/blog/2020/10/24/introducing-... * https://rust-analyzer.github.io/blog/2020/09/28/how-to-make-... * https://matklad.gith…
Comment linking /2020/04/15/from-pratt-to-dijkstra.html
on “Parsing Algorithms”Submitted Zig's Lovely Syntax as a story · 237 points
HN discussionI've wrote a bit about this in https://matklad.github.io/2020/11/11/yde.html Some specific things which IntelliJ brings to me: 1. Rich refactors -- things like "change signature" are a huge time saver in big codebases. LSP still can't do interactive refactors which require user input. 2. Structural Search Replace -- you can grep and sed sourcecode by matching on AST and semantic information. 3. Significantly more po…
Comment linking /2020/11/11/yde.html
on “Why LSP?”Submitted Fast Rust Builds as a story · 237 points
HN discussionYou read my comment, but you are missing that I'm building to tools to bundle the work together, which is the way to make a strong enough open foundation that things like open accessibility technologies can have more ground to stand on. Scratching our own itch works better when coordination means we can bundle together a whole lot of itch. There is no such thing as individual incentive to cooperate without a means o…
Comment linking /2020/09/12/rust-in-2021.html
on “Neuralink 'Participant 1' says his life has changed”Submitted Why Not Rust? (2020) as a story · 235 points
HN discussionMore to the point. Sadly I can't locate a great article outlining all the problems, bt these quotes will do From rust-analyzer's main contributor [1] === start quote === The essential complexity for a server is pretty high. It is known that compilers are complicated, and a language server is a compiler and then some. First, like a compiler, a language server needs to fully understand the language, it needs to be abl…
Comment linking /2022/04/25/why-lsp.html
on “JetBrains invites developers to join the Fleet Public Preview Program”Submitted Properly testing concurrent data structures as a story · 200 points
HN discussionThere is room for improvement: https://matklad.github.io/2023/06/18/GitHub-merge-queue.html
Comment linking /2023/06/18/GitHub-merge-queue.html
on “I'll think twice before using GitHub Actions again”Submitted Perils of Constructors as a story · 197 points
HN discussionRust's lack of fast thread-local storage makes it a non-starter for me. It's really disappointing, especially when the language has incorporated so many other excellent performance improvements like Google's SwissTable and pattern-defeating quicksort. https://github.com/rust-lang/rust/issues/29594 https://matklad.github.io/2020/10/03/fast-thread-locals-in-r...
Comment linking /2020/10/03/fast-thread-locals-in-rust.html
on “The wild world of non-C operating systems”Submitted Git Things as a story · 196 points
HN discussionEDIT: Paste this hacky snippet into your browser's console to save all of the links into your clipboard: (() => { let result = [...document.querySelectorAll('td a')] .map((link) => link && !link.href.includes('ycombinator') && !link.href.includes('javascript:void') ? link.href : '' ) .filter(Boolean); result = [...new Set(result)]; result.sort(); copy(result.join('\n\n')); })(); Just to help, here's a compiled-list…
Comment linking /
on “Ask HN: Great Blogs by Programmers”Submitted Primitive Recursive Functions for a Working Programmer as a story · 189 points
HN discussion