Chris Done

chrisdone.com · Personal blog · on HN since 2008

Chris Done is a Haskell programmer who writes about functional programming, Emacs tooling, and language design.

What HN saysCommenters recommend him among notable Haskell writers and link his posts on monads, Dijkstra's view of Haskell, and his Hakyll-built site.
118HN people shared it
53linked it in comments
80stories submitted
3.2Kstory points
1 year agolast shared
2008people per year2026

Most-shared posts

  1. 1
    Dijkstra on Haskell and Java (2001)
    15 people · 378 points · first shared 2014 · 250 comments on HN
  2. 2
    A tiny language called Z
    7 people · 240 points · first shared 2013 · 52 comments on HN
  3. 3
    German Naming Convention
    6 people · 59 points · first shared 2019 · 23 comments on HN
  4. 4
  5. 5
    Client-side web programming in Haskell: A retrospective
    5 people · 173 points · first shared 2019 · 47 comments on HN
  6. 6
    An alternative Haskell home page
    5 people · 139 points · first shared 2014 · 38 comments on HN
  7. 7
  8. 8
    God-Mode for Emacs
    5 people · 3 points · first shared 2014 · discussion on HN
  9. 9
    Emacs users are like Terry Pratchett’s Igors
    4 people · 237 points · first shared 2013 · 83 comments on HN
  10. 10
    Monads Are Burritos?
    4 people · 4 points · first shared 2013 · discussion on HN
  11. 11
    A tiny language called Z (2013)
    3 people · 165 points · first shared 2019 · 47 comments on HN
  12. 12
    Twitter waterflow problem and loeb (2013)
    3 people · 28 points · first shared 2013 · 5 comments on HN
  13. 13
    Fast Haskell: Competing with C at parsing XML (2017)
    3 people · 9 points · first shared 2017 · 1 comments on HN
  14. 14
    Hell: Shell Scripting Haskell Dialect
    3 people · 3 points · first shared 2024 · discussion on HN
  15. 15
    Homepage
    3 people · first shared 2010

What HN people wrote when they linked it

chrisdone · 2011-04-27
Also recommend Hakyll! http://jaspervdj.be/hakyll/ The "configuration" is a Haskell program that uses the Hakyll library as a DSL. I use it for my home page: http://chrisdone.com/ Sauce: https://github.com/chrisdone/chrisdone-homepage/blob/master/hakyll.hs
unhammer · 2019-09-20
Nah, like any bad analogy, it can be stretched :) Once you've moved past the "lies-to-children[1]" version, you can ascend to the real meat of the burrito: https://blog.plover.com/prog/burritos.html And once you've fully grokked burritos in terms of monads, you can finally reach that zen level where you solve your problems without even a single line of code (because you've started working at the burrito shop instead: http://chrisdone.com/posts/monads-are-burritos ). [1] https://en.wikipedia.org/wiki/Lie-to-children
icebraining · 2015-08-06
EWD seemed quite sure when he recommended Haskell over Java: http://chrisdone.com/posts/dijkstra-haskell-java
mlitchard · 2015-04-06
In no particular order Dan Piponi http://blog.sigfpe.com/ The ever awesome oleg http://okmij.org/ftp/ Chris Done http://chrisdone.com/ Gabriel Gonzalez http://www.haskellforall.com/ There are many more. The haskell community has awesome developers in abundance.
kyllo · 2014-04-24
This is my favorite monad analogy, though: "Monads are burritos?" http://chrisdone.com/posts/monads-are-burritos
dschiptsov · 2014-01-08
Of course Java is the best solution for any problem, who could dare to think otherwise. It is mature, stable, incorporates millions of man hours (of solid mediocrity) and there are no shortage in coders and believers. http://chrisdone.com/posts/dijkstra-haskell-java
rsmaniak · 2013-07-31
That was brilliant, there's also a cartoon: http://chrisdone.com/posts/monads-are-burritos
reirob · 2012-02-06
This post is interesting but it is from August 2011. The author experimented just a minimal functionality and planned to work on a more complex program - a pong game. I looked at his blog, but did not find any follow-up except a post from January this year where he tries the UHC JavaScript compiler: http://chrisdone.com/posts/2012-01-06-uhc-javascript.html What does this mean?
jknupp · 2010-07-21
I'm not the author (just the submitter), but I did try the example you mentioned and it worked fine for me. Are you sure you typed everything exactly as it was listed? If so, I'm sure the author would appreciate the feedback. You can find his contact info here: http://chrisdone.com/
qubitcoder · 2015-02-15
I really like the new design. The old site was certainly showing its age--very dense and hard to navigate. Never mind the lovely 1990s motif. This is far more welcoming and user-friendly, especially to those who might be curious about Haskell. It's exciting to witness Haskell gain traction within industry. Facebook announced last week that its building an entirely new Haskell team to focus on distributed systems, data mining, and machine learning. They're also hiring for a second team to support Haxl [1]. For those eager to use Haskell in the workplace, I imagine the new design should make it easier to formulate a compelling business case. Being able to point your project manager and/or colleagues to a website that clearly explains what Haskell is--and what sets it apart--is a big plus. The source code for the site can be found on GitHub [2]. Awesome work by Chris Done, who kicked this off last year; see his blog post about the motivation for the new site [3]. [1] http://www.reddit.com/r/haskell/comments/2useoq/haskell_opportunities_… [2] https://github.com/haskell-infra/hl [3] http://chrisdone.com/posts/haskell-lang
subtextminer · 2025-07-25
Related: when UT Austin computer science dropped Haskell for Java for it's first course in 2001. Dijkstra on Haskell and Java https://chrisdone.com/posts/dijkstra-haskell-java/ "A fundamental reason for the preference is that functional programs are much more readily appreciated as mathematical objects than imperative ones, so that you can teach what rigorous reasoning about programs amounts to."
adamc · 2024-10-10
Java went through this too, although there, a lot of it is part of the ecosystem. See https://chrisdone.com/posts/tamagotchi-tooling/
whateveracct · 2024-10-03
It's "#!/usr/bin/env hell" - this isn't ghc. See https://chrisdone.com/posts/hell/ This seems to be a deep tour of the implementation as much as the language. So it's not supposed to be a first principles talk. That's fine. It's not all for everybody.
tmoertel · 2024-10-02
Chris discusses the rationale in his blog post at https://chrisdone.com/posts/hell/
cassianoleal · 2024-07-29
> AI hater identified OMG! PLEASE DON'T SHOOT! :hands-up: You suggested to add more AI in order to make it good. I made a joke on top of that old XML joke. https://chrisdone.com/posts/reasoning-violently/
agumonkey · 2023-08-06
there were some pseudo syntax made for scheme to remove some nesting see https://srfi.schemers.org/srfi-110/srfi-110.html not too far from https://chrisdone.com/posts/z/ posted before ps: personally, lisp syntax has been an issue once every 4 years. with threading macros, paredit .. you spend 0.00001% of your time thinking about it.
throwaway858 · 2023-05-18
There is this for Haskell, which automatically converts all shell commands (like "ls") to regular Haskell functions: https://chrisdone.com/posts/shell-conduit/ It uses a Haskell streaming library so you can do stuff like shell pipelines and file redirection (but in a more structured, safer and more powerful way)
hungrygs · 2023-02-12
Dijkstra had a lot of influence for some years on the UTCS undergraduate program, whose first undergraduate course for much of the 1990s was taught in Haskell and was a brutal weed out, at ~70% attrition for the first year courses. However, by 2001, the failure rate was so high that the department moved to Java, much to Dijkstra's chagrin: https://chrisdone.com/posts/dijkstra-haskell-java/ The UTCS undergrad program has been "nerfed" twice since the 1990s - in 2001 and in in 2014. Various political interests during the first tech bubble - to produce more graduates - and later, to have more under-represented minorities, have dramatically reduced what Dijkstra pushed for.
gregwebs · 2023-02-03
This might give you some idea, but you basically just want to reload your top level module and ghci will automatically reload any dependent modules. https://chrisdone.com/posts/ghci-reload/ It’s not really a mix, you do one or the other although certainly ghci for local dev and compilation for prod.
bradrn · 2022-12-04
There’s Inflex [0], which has a very interesting (and I think better) approach to spreadsheets. I’ve also been working independently on a very similar idea [1], though it’s early days yet and I’m still busy figuring out the how to build it in a principled way. The Inflex website also has a really nice bibliography [2] with a fairly complete catalogue of what else has been done in this space. [0] https://chrisdone.com/posts/inflex/ [1] https://github.com/bradrn/nexo [2] https://chrisdone.com/posts/inflex-bibliography/
cies · 2022-09-15
Here Dijkstra weep with you: https://chrisdone.com/posts/dijkstra-haskell-java/ But for going to Java from Haskell :)
TazeTSchnitzel · 2021-06-27
Dijkstra famously argued it was better for new students to learn Haskell than Java. https://www.chrisdone.com/posts/dijkstra-haskell-java/
odyssey7 · 2020-09-02
“usually it turns out that their undergraduate curriculum has not recovered from the transition from Pascal to something like C++ or Java.” Also: “what has become our past, forever remains so” — Dijkstra, on trendy 90s/millennium OOP in academia. https://www.chrisdone.com/posts/dijkstra-haskell-java/
sxp · 2020-08-02
Javascript and Python have similar capabilities, but they're missing the stream fusion optimization mentioned at https://chrisdone.com/posts/stream-composability/ Javascript: a = [...Array(20).keys()] p = x=>!(x%2); a.slice(3).filter(p).slice(0,3) Python: a = range(20) p = lambda x: not x%2 filter(p, a[3:])[:3]
andreareina · 2020-06-29
" Emacs users are like Terry Pratchett’s Igors": https://chrisdone.com/posts/emacs-users-are-like-igor/
mikorym · 2020-04-11
If I am not mistaken, Dijkstra advocated for Haskell to be used as a language of instruction at universities. There is an essay somewhere online about it. What I could find is this: [1]. Edit: Indeed, the PDF that is linked to in [1] looks like a scan of the original. [2] [1] https://chrisdone.com/posts/dijkstra-haskell-java/ [2] http://www.cs.utexas.edu/users/EWD/OtherDocs/To%20the%20Budget%20Counc…
emmelaich · 2019-10-12
Would you prefer indentations and newlines? https://chrisdone.com/posts/z/
ducaale · 2019-10-06
Cieplak · 2018-07-16
Since we're talking about Dijkstra, thought I'd bring up the letter he wrote to the University of Texas when they replaced Haskell with Java in their introductory programming course: https://chrisdone.com/posts/dijkstra-haskell-java https://www.cs.utexas.edu/users/EWD/OtherDocs/To%20the%20Budget%20Coun…
zerker2000 · 2018-02-17
> None of this is to say that it’s impossible to design a macro system for languages with non-Lispy syntax For me this was most poignantly demonstrated by https://chrisdone.com/z/

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close