Top all-time · #2564
blog.tmorris.net
Personal blog · blog.tmorris.netprogramming
blog.tmorris.net is a personal blog at blog.tmorris.net about programming. Since 2007, 30 different Hacker News readers have linked it 43 times, most often “Sticks, stones, but names are not useful to me”. No feed was found, so read it on the site itself.
Too few sampled comments (15) to say how often HN recommends it.?
Why HN links it
Tony Morris's blog on Haskell, Scala and type systems. HN commenters cite its posts as supporting references in debates on Liskov substitution, type classes, Java pass-by-value and Scala levels.
Summarised by Claude from a sample of 15 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Sticks, stones, but names are not useful to me2 people · 2 mentions · first linked 2013-07-23
- Java is pass by value2 people · 2 mentions · first linked 2011-01-13
- Three and a half friggin years later2 people · 2 mentions · first linked 2011-04-30
- /critique-of-oderskys-scala-levels/2 people · 2 mentions · first linked 2011-09-06
What Hacker News says?
> That said, it isn't hard or long to learn monads. I am not sure any definition does that justice. It's similar with concept of recursion - it's easy to define (function calls itself), but to put it into programming practice (writing all loops as recursion), that's a lot harder. I read "Learn Yourself a Haskell" as a tutorial (which is in my opinion great) and still it was a lot of work to figure out this: http://b…
Comment linking /posts/20-intermediate-haskell-exercises/
on “Learn Haskell Fast and Hard”Submitted Reverse.jar as a story · 50 points
HN discussionYou can have a type-safe fluent Builder, but it requires having one or more static nested classes with private constructors. The outer class will not have a build() method, but rather that method will live in one of the nested classes. You use the type system to control what parameters have already been set, and what parameters need to be set. Obviously, this can apply to many sorts of fluent API. This is at least p…
Comment linking /posts/understanding-practical-api-design-static-typing-and-functional-programming/index.html
on “Better Java – Resources for Writing Modern Java”Submitted Understanding Practical API Design, Static Typing, and Functional Programming as a story · 48 points
HN discussionI recently (well, a few years ago) went through functional programming in schools. They don't really teach you functional programming, as much as why you shouldn't program imperatively. Even when they're teaching functional programming, the consistent emphasis on only x% effective really cuts out student interest. It's almost like saying, "yeah we have a method for preventing destructive assignment, but it doesn't r…
Comment linking /critique-of-oderskys-scala-levels/
on “Teaching Good Sex”Submitted Dear Java library guy as a story · 15 points
HN discussionThe Liskov substitution principle always holds in a type-safe language with subtyping. What is failing isn't the LSP, but rather your expectations from types. Just because a type is called “Rectangle”, it doesn't mean its instances actually behave like rectangles. See: http://blog.tmorris.net/posts/identifier-names/index.html
Comment linking /posts/identifier-names/index.html
on “SOLID Go Design”Submitted Why are there no big applications written using functional languages? as a story · 15 points
HN discussionI don't think you can refer to function composition as a design pattern. The syntax for function composition in Haskell is so light that most of the time it's more effort to write in all the arguments explicitly than it is to use composition. Consider lineLengths = map (length . words) . lines as compared to lineLengths text = map length (map words (lines text)) I don't think that monads are a design pattern either…
Comment linking /
on “Does Functional Programming Replace GoF Design Patterns?”Submitted Java 7 as a story · 14 points
HN discussionYou might be right, I've interacted with him very little online. On the other side, you should read the blog post he put up an hour ago (possibly in response to this thread): http://blog.tmorris.net/three-and-a-half-friggin-years-later... PS: This is why I sometimes demonstrate low tolerance for stupidity and/or failure or refusal to entertain the possibility of thinking. People get hurt. No, I am not sorry. (for co…
Comment linking /three-and-a-half-friggin-years-later/
on “Silk: why we use Haskell”Submitted Never ever again as a story · 7 points
HN discussionMost of the complaints I see from Java programmers amount to this: http://blog.tmorris.net/anti-intellectual-euphemisms/ Specifically: > using the word complex, unnatural, academic, “your world” or unintuitive to mean “I am not able nor am I willing to invest the effort to come to to understand this.” Other than those people: The blog author I quote above is one of the many "PL gurus" you speak of that rip into Scal…
Comment linking /anti-intellectual-euphemisms/
on “Why Scala seems difficult but really isn’t”Submitted Idempotence versus Referential Transparency as a story · 6 points
HN discussionThat's a shame. And I agree. I guess the author should provide translations in C or Java or whatever along with his examples as far as possible. I understand his Haskell examples, but that's preaching to the choir. I read a blog post were somebody re-implemented some examples of Haskell concepts in C. I can't remember the URL, but searching for "Monads in C" or "Monads in Java" etc brings up some interesting posts.…
Comment linking /maybe-monad-in-java/
on “Haskell features I'd like to see in other languages”Submitted Java/Ruby does not generalise to static/dynamic as a story · 5 points
HN discussionHmm, yes "type" can mean a lot of things, but would many dispute that the languages with the most evolved type systems are those discussed in the post(ML, ocaml, haskell, F#) plus scala? (Leaving aside coq, agda which I'm not familiar with http://blog.tmorris.net/a-brief-point-on-static-typing/ http://james-iry.blogspot.com/2010/05/types-la-chart.html
Comment linking /a-brief-point-on-static-typing/
on “Modules Matter Most”Submitted What you call integration testing, I call sloppy programming as a story · 5 points
HN discussionThe author conflates quite a few unrelated concepts. Monads with "interfaces and object models," and templates with type inference. Perhaps in the programmer's head these all serve similar functions (often erroneously. See, e.g. http://blog.tmorris.net/type-classes-are-nothing-like-interf... ), but language designers need to make clearer distinctions.
Comment linking /type-classes-are-nothing-like-interfaces/
on “The genesis of the perfect programming language”Submitted Why Functional Programming Matters in short prose as a story · 4 points
HN discussionrelevant exercises from one of scalaz' authors http://blog.tmorris.net/lifting-haskell-addendum/ http://blog.tmorris.net/lifting/ and the applicative functor and following chapters in Learn you a Haskell (it wasn't real easy to navigate scaladocs, source, etc. Some folks used to just hoogle and then look for the same-named scalaz method http://groups.google.com/group/scala-user/browse_frm/thread/... and the scalac s…
Comment linking /lifting/
on “Scalaz: An Introduction to Scala's Library”Submitted Tests as Documentation as a story · 4 points
HN discussionhttp://blog.tmorris.net/java-is-pass-by-value/
Comment linking /java-is-pass-by-value/
on “Huge war over whether Java is pass by reference or pass by value.”Submitted Scalaz lead developer: Critique of oderskys scala levels as a story · 3 points
HN discussionI might consider taking this way: “My 6 year old son is learning computer programming by first understanding the mathematical foundations, then applying what he has learned using Haskell, because it is short and natural (he doesn’t even know what Haskell is)” http://blog.tmorris.net/does-java-cause-self-delusion/
Comment linking /does-java-cause-self-delusion/
on “Kid's intro to programming: ideas?”Submitted Fizzing and buzzing in Haskell, Scala, and Functional Java as a story · 3 points
HN discussion(i guess most of the Scala guys went to burning Man ;-} 1. read the (many) "levels" posts http://www.scala-lang.org/node/8610 http://blog.tmorris.net/critique-of-oderskys-scala-levels/ http://erikengbrecht.blogspot.com/2011/01/martin-odersky-sca... http://www.fogus.me/thunks/scala.html http://stackoverflow.com/questions/4247528/efficacy-of-stick... http://pchiusano.blogspot.com/2010/09/four-stages-of-functio... 2. T…
Comment linking /critique-of-oderskys-scala-levels/
on “What are the best resources for a complete beginner to learn Scala from?”Submitted I cannot use Language X as a story · 2 points
HN discussion> Your wording sounds like it implies that Lisp "got stuck" somewhere in the past, no? Pretty much. See pg's famous "Blub Paradox" where he sees Lisp as the top of a tower of lesser languages. He doesn't recognize that Lisp might at best be called a limit ordinal, to use math jargon. That is, Lisp is just another Blub, and the Lisp zealots haven't figured that out. You don't necessarily want to keep going further an…
Comment linking /posts/understanding-practical-api-design-static-typing-and-functional-programming/
on “A Road to Lisp: Why Lisp”Submitted Brief point on static typing (general purpose languages vs. Coq, Agda as a story · 2 points
HN discussion