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

Top all-time · #327

R

Robert Harper

Personal blog · existentialtype.wordpress.comprogrammingphilosophy

Robert Harper writes Existential Type, a personal blog at existentialtype.wordpress.com about programming and philosophy. Since 2011, 157 different Hacker News readers have linked it 247 times, most often “Dynamic Languages Are Static Languages (2011)”. The last post was in 2017, but the archive is still widely read.

Visit the blog
247mentions?
8recommend?
157HN people?
2011–2026first – last linked?
Links on Hacker News per year · peak 36 in 2011

Sometimes recommended · 8 of 40 sampled comments recommend it?

Why HN links it

HN readers cite Robert Harper's posts on dynamic typing ('unityped'), boolean blindness and parallelism, and recommend several as explanations and classic take-downs.

Recommended for · 8 comments
Called a 'delightfully snarky' take-down, a 'favorite' rant and a 'nice explanation'; recommended for boolean blindness.

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.

Most-linked posts?

  1. Dynamic Languages Are Static Languages (2011)
    27 people · 31 mentions · first linked 2011-03-21
  2. Boolean Blindness
    13 people · 16 mentions · first linked 2015-04-15
  3. Dynamic languages are static languages
    13 people · 15 mentions · first linked 2011-03-20
  4. Modules Matter Most (2011)
    11 people · 12 mentions · first linked 2011-04-18
  5. The Holy Trinity: Logic, Languages, Categories (2011)
    8 people · 9 mentions · first linked 2011-03-31
  6. Parallelism is not concurrency
    8 people · 8 mentions · first linked 2011-03-18
  7. Parallelism is not concurrency
    7 people · 7 mentions · first linked 2011-03-22
  8. Boolean Blindness
    6 people · 9 mentions · first linked 2011-04-06
  9. What, If Anything, Is a Declarative Language? (2013)
    6 people · 7 mentions · first linked 2013-12-25
  10. Existential Type, new blog by Bob Harper (of CMU) on programming languages
    5 people · 6 mentions · first linked 2011-03-21

What Hacker News says?

  1. The word "type" has a specific meaning in maths/logic, which is not the same as that used by the "dynamic" languages community. Professor Bob Harper of CMU would refer to Python as unityped, i.e. having a single type: https://existentialtype.wordpress.com/2011/03/19/dynamic-lan...

    Comment linking /2011/03/19/dynamic-languages-are-static-languages/

    on “Python Is Eating the World”
  2. Submitted The Holy Trinity: Logic, Languages, Categories (2011) as a story · 111 points

    HN discussion
  3. Python is not "strongly typed". Please don't repeat this phrase near management folk. Python just gives good error messages when it crashes at runtime, e.g. "expected an Int but got a String". This is better than a segfault, but it's still a crash. Call it "strongly tagged" if you like, but "type" unqualified should mean static type. Even "dynamic type" is a marketing hijack of the word type. Professor Robert Harper…

    Comment linking /2011/03/19/dynamic-languages-are-static-languages/

    on “Pyre: Fast Type Checking for Python”
  4. Submitted Haskell Is Exceptionally Unsafe (2012) as a story · 107 points

    HN discussion
  5. tempodox · 2016-10-08Recommends
    This is an extreme demonstration of the validity of a delightfully snarky blog post by Robert Harper on how dynamic typing is actually static typing using a unitype: https://existentialtype.wordpress.com/2011/03/19/dynamic-lan... A string is a Boolean is a number is a function, and braindead conversions can happen without anyone noticing. How does one keep their sanity using a language like that?

    Comment linking /2011/03/19/dynamic-languages-are-static-languages/

    on “A Javascript journey with only six characters”
  6. Submitted Summer of Programming Languages as a story · 101 points

    HN discussion
  7. > I don't get this. Most of the known refactorings can't be easily implemented by IDEs so you're left with the trivial ones like renaming or moving things. First, the trivial ones are great and useful refactorings too -- and still difficult in dynamic type systems. Second, static types also benefit the more difficult refactorings that you still have to do manually, by giving you compiler errors and warnings when you…

    Comment linking /2011/03/19/dynamic-languages-are-static-languages/

    on “Announcing TypeScript 2.0”
  8. Submitted Haskell Is Exceptionally Unsafe as a story · 86 points

    HN discussion
  9. The idea that parallel code is executed through a concurrency mechanism should be hidden, but it doesn't mean that the distinction between the two should be. http://existentialtype.wordpress.com/2011/03/17/parallelism-... http://existentialtype.wordpress.com/2014/04/09/parallelism-...

    Comment linking /2014/04/09/parallelism-and-concurrency-revisited/

    on “Programming paradigms that change how you think about coding”
  10. Submitted Higher-Dimensional Type Theory as a story · 76 points

    HN discussion
  11. It is meaningless to nitpick about whether a language is declarative or not since the term "declarative" lacks a good definition. Robert Harper, a programming languages researcher, lists 6 separate definitions and concludes, "It seems to me that none of them have a clear meaning or distinguish a well-defined class of languages. " [1] [1] http://existentialtype.wordpress.com/2013/07/18/what-if-anyt...

    Comment linking /2013/07/18/what-if-anything-is-a-declarative-language/

    on “Why Racket? Why Lisp?”
  12. Submitted Parallelism is not concurrency as a story · 68 points

    HN discussion
  13. > Python is dynamically typed and weakly typed, but still typed. People who claim that dynamic typing is a thing claim that Python is strongly typed. (This is of course nonsense; there's no such thing as dynamic typing, because types are by definition something that expressions in a language have, not something that runtime values have). > There's a nice explanation here: https://existentialtype.wordpress.com/2011/0…

    Comment linking /2011/03/19/dynamic-lan..

    on “Mercurial’s journey to and reflections on Python 3”
  14. Submitted Dynamic languages are static languages as a story · 54 points

    HN discussion
  15. vmchale · 2020-01-14Recommends
    > None of that would be a problem in a typed language. Python is dynamically typed and weakly typed, but still typed. That's precisely the problem! The difference is just that a statically typed language gives you all the information, and a dynamically language doesn't, but still fails. Just without providing you the necessary information up-front. There's a nice explanation here: https://existentialtype.wordpress.c…

    Comment linking /2011/03/19/dynamic-languages-are-static-languages/

    on “Mercurial’s journey to and reflections on Python 3”
  16. Submitted It Is What It Is (And Nothing Else) – Why Recursion Still Matters as a story · 52 points

    HN discussion
  17. panic · 2017-07-25Recommends
    Here are a bunch of blogs from my RSS reader that I think are worth reading. Some of them haven't updated in a while, but the archives may be worth a look anyway. * Blogs with a math focus: http://blog.sigfpe.com http://bit-player.org http://mathr.co.uk/blog/ https://www.johndcook.com/blog/ * Blogs with a programming languages focus: https://existentialtype.wordpress.com https://bluishcoder.co.nz http://blog.ezyang.…

    Comment linking /

    on “Ask HN: What programming blogs do you follow?”
  18. Submitted Modules Matter Most as a story · 47 points

    HN discussion
  19. Thanks for the response, I was being a bit tongue in cheek. I don't think you actually think it's awful :) And thanks for clarifying that. About concurrency vs. parallelism, I think it is fairly standard to think of them as two different concepts that overlap somewhat. You can have concurrency with parallelism (e.g. pthreads, or M:N threading where you map "green threads" on to processes that can run in parallel). Y…

    Comment linking /2014/04/09/parallelism-and-concurrency-revisited/

    on “We have to talk about this Python, Gunicorn, Gevent thing”
  20. Submitted The Point of Laziness (2011) as a story · 45 points

    HN discussion
  21. I just want to add a link for people interested in this discussion. (Dynamic Languages are Static Languages by Robert Harper): http://existentialtype.wordpress.com/2011/03/19/dynamic-lang... With HN discussion here: http://news.ycombinator.com/item?id=2346590

    Comment linking /2011/03/19/dynamic-languages-are-static-languages/

    on “Steve Yegge: Notes from the Mystery Machine Bus”
  22. Submitted Of Course ML Has Monads as a story · 44 points

    HN discussion
  23. The problem's not on your end -- a lot of these blogs are just junk, probably the vast majority of ones that fall under "advocacy". As far as I can tell, the author's objection to conditionals is based on a misunderstanding of a different blog post[0]. It's nonsense. Really understanding where FP is coming from requires an introduction to programming language semantics[1]. Interesting stuff, but not immediately usef…

    Comment linking /2011/03/15/boolean-blindness/

    on “Destroy All Ifs – A Perspective from Functional Programming”
  24. Submitted Some advice on teaching FP as a story · 44 points

    HN discussion
  25. dwrensha · 2016-07-16Recommends
    I recommend Bob Harper's essay on "boolean blindness": https://existentialtype.wordpress.com/2011/03/15/boolean-bli... An excerpt: > The problem is computing the bit in the first place. Having done so, you have blinded yourself by reducing the information you have at hand to a bit, and then trying to recover that information later by remembering the provenance of that bit.

    Comment linking /2011/03/15/boolean-blindness/

    on “Destroy All Ifs – A Perspective from Functional Programming”
  26. Submitted Parallelism is not Concurrency as a story · 39 points

    HN discussion
  27. "Haskell is, in my view, the world’s best imperative programming language, and second-best functional language" - Robert Harper ( https://existentialtype.wordpress.com/2011/04/09/persistence... )

    Comment linking /2011/04/09/persistence-of-memory/

    on “Rust as a gateway drug to Haskell”
  28. Submitted Teaching FP to freshmen as a story · 33 points

    HN discussion
  29. Ericson2314 · 2020-09-27Recommends
    No "dynamically typed" is an oxymoron, and untyped or "unityped" is correct. Please read https://existentialtype.wordpress.com/2011/03/19/dynamic-lan... , the classic take-down of this mistake.

    Comment linking /2011/03/19/dynamic-languages-are-static-languages/

    on “Things I Was Wrong About: Types”
  30. Submitted Dynamic Languages Are Static Languages (2011) as a story · 23 points

    HN discussion

Search all of HN for existentialtype.wordpress.com

Linked by the same people?