Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    B

    Bertrand Meyer

    bertrandmeyer.com · Personal blog · on HN since 2009

    Bertrand Meyer, creator of the Eiffel language, writes about programming theory, software engineering and object-oriented design.

    Visit blogHN submissions
    ProgrammingLanguages & CompilersMath
    What HN says

    HN commenters link it for his set-theory-based formulation of programming concepts and for Eiffel's specification ideas, such as modifies clauses.

    Stats for nerds
    47HN people shared it
    60linked in comments
    772story points
    Feb 2026last shared
    2012people per year2026

    Top posts on HN

    1. 1
      Introduction to the Theory of Programming Languages (1991)
      2 people · 204 points · first shared 2022 · 54 comments on HN
    2. 2
      Why not program right?
      3 people · 138 points · first shared 2018 · 181 comments on HN
    3. 3
      Lampsort: Leslie Lamport's Non-recursive Quicksort
      1 person · 93 points · first shared 2014 · 44 comments on HN
    4. 4
      New Paper: Theory of Programs
      2 people · 63 points · first shared 2015 · 31 comments on HN
    5. 5
      Soundness and Completeness: With Precision
      1 person · 54 points · first shared 2019 · 2 comments on HN
    6. 6
      The one sure way to advance software engineering
      1 person · 40 points · first shared 2009 · 26 comments on HN
    7. 7
      Your IP: does Google care?
      1 person · 34 points · first shared 2013 · 38 comments on HN
    8. 8
      Doing it right or doing it over?
      1 person · 24 points · first shared 2013 · 1 comments on HN
    9. 9
      Programming Is Simple Mathematics
      2 people · 12 points · first shared 2025 · Discussion on HN
    10. 10
      The theory and calculus of aliasing
      1 person · 11 points · first shared 2010 · 1 comments on HN

    What HN people wrote when they linked it

    • RochusFeb 2026

      I'm not particularly sure what the autor's claim has to do with Wirth, but there is a quote which he could have added to the article: "To hell with AI" (see https://inf.ethz.ch/people/faculty/emeriti/niklaus-wirth-quotes-faculty.html). Wirth distrusted AI mostly because of the "grandiose promises" its proponents made at the time (see https://bertrandmeyer.com/2024/01/16/niklaus-wirth-importance-simple/).

      Besides that, I don't think that the "appeal to authority" the author makes in his article works. Wirth was a pragmatist, not a luddite. His "Lean Software" philosophy was about determinism and understandability, i.e. building systems where the engineer comprehends every instruction cycle. He criticized software that was written poorly (from his very own perspective).

      The author implies that because we ignored Wirth’s warnings about OS bloat in the 90s, we were culturally primed to accept the "ultimate bloat" of LLMs in the 2020s; that's pretty wild logic. The author essentially criticizes that using LLMs for simple tasks is overkill. This is another concern than writing bloated software.

      LLMs have demonstrated that they are able to generate both, lean and bloated software. When I use an LLM to review my code, it often finds logic reductions and possibilities for minimization which were not obvious. Ultimately, it once again comes down to the question of how tools are used. In the case of LLMs, they can obviously be used in line with or contrary to Wirt's recommendations.

    • rramadassDec 2025

      > not the result of the concept itself being fundamentally different, it's a result of object lifetimes being different between GC'd and non-GC'd languages.

      This is the fundamental misunderstanding. The RAII ctor/dtor pattern is a very general mechanism not limited to just managing object (in the OO sense) lifetimes. That is why you don't need finally/defer etc. in C++. You can get all of these policies using just this one mechanism.

      The correct way to think about it is as scoped entry and exit function calls i.e. a scoped guard. For example, every C++ programmer writes a LogTrace class to log function (or other scope) entry and exit messages. This is purely exploiting the feature to make function calls with nothing whatever to do with objects (in the sense of managing state) at all. Raymond gives a good example when he points to how wil::scope_exit takes a user-defined lambda function to be run by a dummy object's dtor when it goes out of scope.

      > I don't view RAII/scoped destructors as being equivalent or alternatives to things like `finally` blocks or `defer` statements. In C++ you basically use scope guards for everything because they are the only option, but I think C++ would still ultimately benefit from at least having `finally`.

      Scope guards using ctor/dtor mechanism is enough to implement all the policies like finally/defer etc. That was the point of the article.

      > You can kind of emulate it, but not 100%: `finally` blocks are outside of the scope of the…

    • HerrMonnezzaJan 2012

      The link is the text of an article [1] by Simone Santini that appeared in:
      Computer, Volume 38 Issue 12, December 2005

      It's a parody piece, although the author declared that "Many of the
      sentences that I use in the article are from actual reviews." (quoted
      by B. Meyer review in [2])

      [1]: http://dl.acm.org/citation.cfm?id=1106763
      [2]: http://bertrandmeyer.com/2009/08/14/rejection-letter-classic/

    • grep2Sep 2012

      Just in case it is not obvious: These rejection letters are fictional[1], created as collage of negative reviews Santini received. But it's hilarious to read, I agree.

      Since the original site where Santini commented on it is gone, probably it's only a question of time until this document becomes internet "truth". Brave new world.

      [1]http://bertrandmeyer.com/2009/08/14/rejection-letter-classic/

    • conaclosJun 2024

      View types make me think of the modifies clause introduced by some verification tools and in an earlier specification of Eiffel [1]. Basically the clause allows you to list the fields that are affected by a function with mutations.

      [1] https://bertrandmeyer.com/2011/07/04/if-im-not-pure-at-least-my-functions-are/

    • nickpsecurityJun 2025

      B. Meyer made an attempt to formulate many concepts in programming using simple, set theory. It might help in discussions like this. I say might since I'm not mathematically-inclined enough to know for sure.

      https://bertrandmeyer.com/2015/07/06/new-paper-theory-of-programs/

    Related

    Hillel Waynehillelwayne.com294 people

    1/0 = 0

    Hillel Wayne
    Personal · last shared 2026
    Lambda the Ultimatelambda-the-ultimate.org615 people

    Simon Peyton Jones Elected into the Royal Society Fellowship

    Lambda the Ultimate
    Publication · last shared 2026
    Jonathan Reesmumble.net/~jar36 people

    The T Project (2010)

    Jonathan Rees
    Personal · last shared 2026
    call-with-current-continuation.orgcall-with-current-continuation.org42 people

    Fleng 22 (concurrent logic programming)

    call-with-current-continuation.org
    Personal · last shared 2026
    Modeling Languagesmodeling-languages.com21 people

    JavaScript libraries to draw your own diagrams

    Modeling Languages
    Personal · last shared 2025
    Galois Bloggalois.com80 people

    Claude can sometimes prove it

    Galois Blog
    Company · last shared 2026
    John Regehrblog.regehr.org401 people

    Teaching C

    John Regehr
    Personal · last shared 2026
    John A. De Goesdegoes.net81 people

    Twitter's Fucked

    John A. De Goes
    Personal · last shared 2026