Top all-time · #7437
Neal Gafter
Personal blog · gafter.blogspot.comprogramming
Neal Gafter's personal blog at gafter.blogspot.com covers programming. Since 2008, 11 different Hacker News readers have linked it 12 times, most often “A Definition of Closures (2007)”. The last post was in 2024, but the archive is still widely read.
Too few sampled comments (4) to say how often HN recommends it.?
Why HN links it
HN readers link Neal Gafter's blog posts on generics, reification and language design, using them as examples of workarounds such as super type tokens and as background on Java's closures and null type.
Summarised by Claude from a sample of 4 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Thoughts about Programming Languages, Science and Philosophy.
Most-linked posts?
- A Definition of Closures (2007)3 people · 3 mentions · first linked 2010-01-19
- Tennent's Correspondence Principle and Returning from a Closure (2006)2 people · 2 mentions · first linked 2020-06-27
What Hacker News says?
And the hacks to work around them started rolling in quite quickly. For example: http://gafter.blogspot.com/2006/12/super-type-tokens.html At its root, the real problem here isn't "reification good" vs "reification bad", per se. Haskell has an excellent implementation of generics, and erases types far more aggressively than Java does. C# also has a very good implementation of generics, this time based on reification…
Comment linking /2006/12/super-type-tokens.html
on “Go is Google's language, not ours”Submitted Is Java Dying? as a story · 8 points
HN discussionSee Felleisen's "On the Expressive Power of Programming Languages"[1] for one formalization that differs from conciseness. Essentially, Turing complete languages can express the same programs at the very coarse "whole program" level, but the paper advocates taking a more local view to assess expressiveness (e.g. what programs in L1 can you write in L2 without having to do a whole program transformation). See also Ne…
Comment linking /2007/03/on-expressive-power-of-programming.html
on “On comparing languages, C++ and Go”Submitted A Definition of Closures (2007) as a story · 7 points
HN discussionIt also happens with method overloading. In Java, you can't have a class that has both of these methods at the same time: Integer sum(List<Integer> values) { ... } float sum(List<Float> values) { ... } because, as far as Java is concerned, both of these methods have exactly the same argument list. You also have no way in the language to express things like "Map<String, Option<Integer>>.class", which has some ergonom…
Comment linking /2006/12/super-type-tokens.html
on “Reified Generics: The Search for the Cure”Submitted Tennent's Correspondence Principle and Returning from a Closure (2006) as a story · 2 points
HN discussionGreat. According to Neal Gafter's blog http://gafter.blogspot.com/2006/08/closures-for-java.html there will be a java.lang.Null class to handle the type of null. Talk about putting the cart before the horse. ...But I guess that's what happens when you have to worry about backward-compatibility.
Comment linking /2006/08/closures-for-java.html
on “James Gosling supports closures in Java”Submitted A Syntax Option for Project Lambda (Closures for Java) as a story · 2 points
HN discussionSubmitted A Definition of Closures as a story · 2 points
HN discussionSubmitted Tennent's Correspondence Principle and Returning from a Closure (2006) as a story · 1 points
HN discussionSubmitted Accidentally Quadratic Constant Folding as a story · 1 points
HN discussionSubmitted A Definition of Closures as a story · 1 points
HN discussion