Top all-time · #7839
Ben Fiedler
Personal blog · 3fx.ch/blogprogrammingweb
Ben Fiedler's personal blog at 3fx.ch covers programming and web. Since 2021, 10 different Hacker News readers have linked it 12 times, most often “Typing Is Hard”. The last post was in 2022, but the archive is still widely read.
Too few sampled comments (9) to say how often HN recommends it.?
Why HN links it
HN readers link Ben Fiedler's 'Typing is Hard' page, which lists programming languages by whether their type systems are decidable. Commenters use it to back claims about type system soundness and undecidability.
Summarised by Claude from a sample of 9 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Typing Is Hard8 people · 8 mentions · first linked 2021-02-15
What Hacker News says?
Type checking /compiling often is conservative for this purpose. It's sound (Rejects all incorrect programs), decideable (There is an algorithm to reject all incorrect programs) but due to Godel's decidability problem they're incomplete (There are always correct programs which the type checker rejects as incorrect). There are exceptions of course (C++ templating is turing complete; so type-checking is undecidable) b…
Comment linking /typing-is-hard.html
on “Compiling Rust is NP-hard”Submitted Typing Is Hard as a story · 190 points
HN discussionRust's type system is undecidable. You can see a few languages listed here: https://3fx.ch/typing-is-hard.html
Comment linking /typing-is-hard.html
on “Compiling Rust is NP-hard”Submitted CSS: Avoid Horizontal Scrolling as a story · 2 points
HN discussion> Do you mean JVM language? TypeScript, C#, and F# at least come to mind. As I mentioned in another comment [1] on this thread, soundness and decidability are non-negotiable for me. Types in C#, F# and TS are all Turing Complete [2], and therefor these languages are tooling-adverse in the sense that static analysis is fundamentally unreliable. [1]: https://news.ycombinator.com/item?id=33329509#33332183 [2]: https://…
Comment linking /typing-is-hard.html
on “From zero to 10M lines of Kotlin”Submitted Bundlewrap: First Impressions as a story · 1 points
HN discussionYes, but it is not required that a type system has a singular top type. It is entirely valid for a type system to have any number of types which are not in any sub- or supertype relationship. And once there are two types T1 and T2 which are neither subtypes, nor supertypes of each other, and 2 expressions A1 and A2 of types T1 and T2, and a statically undecideable expression p, then statically typing "if p then A el…
Comment linking /typing-is-hard.html
on “Tests aren’t enough: Case study after adding type hints to urllib3”"Typing is Hard" is a popular list of languages and the decidability of typechecking in them: https://3fx.ch/typing-is-hard.html
Comment linking /typing-is-hard.html
on “The λ-Cube”On a type to be named _separately_. To-be-named-at-runtime is simply dynamic typing. It's polymorphism without static typing. Generics based on type erasure, e.g. Java, wrap that with a type system hoping* to prove safety at compile time, yet compile to a single dynamicly typed implementation, that does not use this type info at runtime. Generics based on code generation / specialization, e.g. C++, generate distinct…
Comment linking /typing-is-hard.html
on “Functional Programming in Go with Generics”Type systems aren't programs because sensible type systems are decidable. They're very specifically not a programming language but a constraint language. https://3fx.ch/typing-is-hard.html ; more people should understand Hindley-Milner. Now, there's also a case for compile-time programmability, but that is a feature that needs to be used carefully because it can make the question of what code is actually running ver…
Comment linking /typing-is-hard.html
on “Live Objects All the Way Down: Removing the Barriers Between Apps and VMs”Wat. The Zig compiler is finite and deterministic, yes, but that's not the problem. The problem is that user code is not finite nor deterministic. Even worse, Zig's compiler may be deterministic and finite, but the language is not, by far. In fact, the language is one of the most infinite languages in existence because just the type system is uncomputable! [1] (In this context, the word "undecidable" used by that so…
Comment linking /typing-is-hard.html
on “The two types of C programmers (a provocative thesis)”https://3fx.ch/typing-is-hard.html is a neat summary, and yes the situation is worse than most programmers would guess: Most industry languages, including "boring" reliable ones like C++, Java or Rust have _undecidable_ type systems;( and quite a few are unsound as well.) This doesn't mean type systems are useless! But as GP said there are tradeoffs, and suspiciously many language designers gave up "clean" propertie…
Comment linking /typing-is-hard.html
on “TypeScripting the Technical Interview”