Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #2818

H

hirrolot

Personal blog · hirrolot.github.io/postsprogramming

hirrolot is a personal blog at hirrolot.github.io about programming. Since 2021, 27 different Hacker News readers have linked it 40 times, most often “Why static languages suffer from complexity”. It is still writing: the last post was on 2026-10-26, and you can follow it by feed.

Visit the blog
40mentions?
27HN people?
2021–2025first – last linked?
Links on Hacker News per year · peak 19 in 2022

Too few sampled comments (20) to say how often HN recommends it.?

Why HN links it

HN commenters cite these posts on the "two languages" problem of static typing (a separate type-level language beside the runtime one), on Rust's difficulty, and on metaprogramming in C and Zig.

Summarised by Claude from a sample of 20 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. Why static languages suffer from complexity
    6 people · 6 mentions · first linked 2022-01-19
  2. Rust Is Hard, Or: The Misery of Mainstream Programming
    5 people · 6 mentions · first linked 2022-06-02
  3. Why static languages suffer from complexity
    4 people · 6 mentions · first linked 2022-08-23
  4. Extend Your Language, Don’t Alter It
    3 people · 3 mentions · first linked 2021-07-06
  5. What’s the Point of the C Preprocessor, Actually?
    2 people · 2 mentions · first linked 2021-08-02
  6. Pretty-Printable Enumerations in Pure C
    2 people · 2 mentions · first linked 2022-05-23
  7. Macros on Steroids: How pure C can benefit from metaprogramming
    2 people · 2 mentions · first linked 2021-07-22
  8. Why static languages suffer from complexity
    2 people · 2 mentions · first linked 2022-01-19

What Hacker News says?

  1. > Expect<Equal<Hello, "World">> This seems like a great time to bring up "Why Static Languages Suffer From Complexity"[1], which explains the "statics-dynamics biformity" that leads to languages like TypeScript that are actually two languages: the runtime one and the compile-time type-system one. [1] https://hirrolot.github.io/posts/why-static-languages-suffer...

    Comment linking /posts/why-static-languages-suffer-from-complexity

    on “Learn how to unleash the full potential of the type system of TypeScript”
  2. Submitted Rust Is Hard, Or: The Misery of Mainstream Programming as a story · 532 points

    HN discussion
  3. > Rust even seems to provide you with the multi-page compile errors. rustc strives to provide you as much relevant context as possible. When hitting very verbose output, it is a hint that what you're trying to do is difficult and will require considered design that the compiler can't help you with. The compiler is trying to help you clarify your code so that it can understand it. Looking at the diagnostics shown in…

    Comment linking /media/rust-is-hard-or-the-misery-of-mainstream-programming/teloxide-error.txt

    on “Rust Is Hard, Or: The Misery of Mainstream Programming”
  4. Submitted Why static languages suffer from complexity as a story · 213 points

    HN discussion
  5. This blog post is disqualified from any serious discussion, because it doesn't know the distinction between templates, which Zig's comptime constructs are not, and partial evaluation with reified types, which Zig's comptime constructs are. It's not possible to make a positive contribution after a mistake that basic. Here's an example of someone getting the design space correct, and therefore contributing to the disc…

    Comment linking /posts/why-static-languages-suffer-from-complexity.html

    on “Crabtime: Zig’s Comptime in Rust”
  6. Submitted Solving SAT via Positive Supercompilation as a story · 153 points

    HN discussion
  7. I have a similar essay entitled "Why Static Languages Suffer From Complexity" [1]. I don't deal with TypeScript, so it's up to you whether the essay relates to it or not. Basically, the idea is that languages make type-level and value-level programming different in surface, while they're (or at least can be) the same. From hence we have type-level astronautics that boggles library developers' minds. [1] https://hirr…

    Comment linking /posts/why-static-languages-suffer-from-complexity.html

    on “TypeScript is terrible for library developers”
  8. Submitted Macros on Steroids: How pure C can benefit from metaprogramming as a story · 92 points

    HN discussion
  9. I am the author of the original post. Unfortunately, before publishing anything, it's very hard to predict all possible misinterpretations of my text. > I really wish the author clearly pointed out that they write the article from a point of view of a library author trying to come up with generic and flexible APIs. Most commentators viewed the text from the perspective of application programming. You are more close…

    Comment linking /posts/rust-is-hard-or-the-misery-of-mainstream-programming.html

    on “Async Rust doesn't have to be hard”
  10. Submitted Lolita: A tagless, dependently typed, self-aware programming language as a story · 32 points

    HN discussion
  11. Unsafe Rust is an esoteric language without iron-clad guarantees, and type-level programming and async Rust is an esoteric metalanguage ( https://hirrolot.github.io/posts/rust-is-hard-or-the-misery-... ). For example, matklad made a recent blog post on "Caches In Rust" ( https://matklad.github.io/2022/06/11/caches-in-rust.html ). The cache is built around https://docs.rs/elsa , which is built around https://docs.rs/…

    Comment linking /posts/rust-is-hard-or-the-misery-of-mainstream-programming.html

    on “How safe is Zig?”
  12. Submitted Beatrice: A tagless, dependently typed, self-aware programming language as a story · 22 points

    HN discussion
  13. samatman · 2022-11-05Recommends
    I found this blog post on HN some time this year, and refer to it frequently: https://hirrolot.github.io/posts/why-static-languages-suffer... The key thing the author identifies is the two languages problem. Static types are a second program about the program , and that's great when the second program is simple declarations that keep you from passing one struct when another is expected. But a flexible language needs…

    Comment linking /posts/why-static-languages-suffer-from-complexity.html

    on “The type system is a programmer's best friend”
  14. Submitted Why static languages suffer from complexity as a story · 3 points

    HN discussion
  15. Having used trait-based generics, I think that trying to piece together what's going on in typenum, the GAT stabilization process, https://hirrolot.github.io/posts/rust-is-hard-or-the-misery-... , num-traits, and variance and https://github.com/rust-lang/rust/issues/25860 is absolutely bogging me down. I feel (and observe as people try modeling contracts in traits) that trying to build code which plays well with ope…

    Comment linking /posts/rust-is-hard-or-the-misery-of-mainstream-programming.html

    on “Go generics are not bad”
  16. Submitted Pretty-Printable Enumerations in Pure C as a story · 3 points

    HN discussion
  17. Zig is an attempt to merge metaprogramming and type system into a single, coherent unit, however not without drawbacks. Basically, in an ideal language, I see that type system permits three kinds of dependencies: - Values dependent on values (algorithms) - Values dependent on types (parametric polymorphism) - Types dependent on types (type-level functions) This is one dimension weaker than Calculus of Constructions…

    Comment linking /posts/why-static-languages-suffer-from-complexity.html

    on “Zig-style generics are not well-suited for most languages”
  18. Submitted Why static languages suffer from complexity as a story · 3 points

    HN discussion
  19. Rather than traits like what Rust has, the approaches I've generally seen for polymorphic behavior are explicit "interface" structs that hold a vtable, or comptime "duck-typing". I'm still rather new to Zig so there may be other approaches, but this is what I have seen so far. One positive side effect is that there is only one "language" to learn as opposed to two different syntaxes like Rust does. While most people…

    Comment linking /posts/why-static-languages-suffer-from-complexity

    on “Some Thoughts on Zig”
  20. Submitted Why Static Languages Suffer from Complexity as a story · 3 points

    HN discussion
  21. brabel · 2022-02-02Recommends
    This is called a "biformity". There was a great post about this the other day: https://hirrolot.github.io/posts/why-static-languages-suffer...

    Comment linking /posts/why-static-languages-suffer-from-complexity

    on “An introduction to type programming in TypeScript”
  22. Submitted What’s the Point of the C Preprocessor, Actually? as a story · 3 points

    HN discussion
  23. Borrow checker is a good motivator And rust is hard: https://hirrolot.github.io/posts/rust-is-hard-or-the-misery-...

    Comment linking /posts/rust-is-hard-or-the-misery-of-mainstream-programming.html

    on “Worm: A dynamic, tag-based window manager written in Nim”
  24. Submitted Why Static Languages Suffer from Complexity (2022) as a story · 2 points

    HN discussion
  25. https://hirrolot.github.io/posts/why-static-languages-suffer... Dynamic typing didn't come to dominate for no reason.

    Comment linking /posts/why-static-languages-suffer-from-complexity

    on “Ana is a Python, PHP, and C inspired dynamically typed scripting language”
  26. Submitted How to Keep Lambda Calculus Simple as a story · 2 points

    HN discussion
  27. I don't think the suggested metaprograms in the blog post don't look like C, in opposite [1]. [1]: https://hirrolot.github.io/posts/extend-your-language-dont-a...

    Comment linking /posts/extend-your-language-dont-alter-it.html

    on “Macros on Steroids: How pure C can benefit from metaprogramming”
  28. Submitted Why Static Languages Suffer from Complexity as a story · 2 points

    HN discussion
  29. If you're asking about debugging macros, I've put a huge effort to this [1]. There are several macros that help you test, debug, and report errors at compile-time. For example, you can make calls to ML99_abort and see the expansion with -E. Usually I debug macros in this way. If you're asking about debugging code generated by macros, Interface99 has no problems with it since the generated code is trivial, pretty muc…

    Comment linking /posts/compiling-algebraic-data-types-in-pure-c99.html

    on “Macros on Steroids: How pure C can benefit from metaprogramming”
  30. Submitted What’s the Point of the C Preprocessor, Actually? as a story · 2 points

    HN discussion

Search all of HN for hirrolot.github.io

Linked by the same people?