Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Elm Blog

    elm-lang.org · Company blog · on HN since 2011

    The official blog of Elm, a functional language that compiles to JavaScript, written by its creator Evan Czaplicki.

    Visit blogHN submissions
    Languages & CompilersWeb DevelopmentProgramming
    What HN says

    HN commenters like Elm as a stable, opinionated language for web front ends, and one notes it has less learning material than Haskell.

    Stats for nerds
    283HN people shared it
    49linked in comments
    4.7Kstory points
    Feb 2024last shared
    2014people per year2024

    Top posts on HN

    1. 1
      A Farewell to FRP
      9 people · 771 points · first shared 2016 · 241 comments on HN
    2. 2
      Virtual DOM in Elm
      6 people · 372 points · first shared 2014 · 112 comments on HN
    3. 3
      Elm 0.19.1
      1 person · 348 points · first shared 2019 · 145 comments on HN
    4. 4
      Small Assets without the Headache in Elm 0.19
      2 people · 313 points · first shared 2018 · 122 comments on HN
    5. 5
      Compiler Errors for Humans
      10 people · 295 points · first shared 2015 · 90 comments on HN
    6. 6
      Elm: a functional reactive programming language that compiles to JavaScript
      150 people · 285 points · first shared 2011 · 50 comments on HN
    7. 7
      New Adventures for Elm
      2 people · 283 points · first shared 2016 · 86 comments on HN
    8. 8
      Escape from Callback Hell: Callbacks are the modern goto
      4 people · 247 points · first shared 2012 · 147 comments on HN
    9. 9
      Making Elm faster and friendlier in 0.16
      12 people · 243 points · first shared 2015 · 90 comments on HN
    10. 10
      Elm 0.14 – Simpler Core, Better Tools
      2 people · 231 points · first shared 2014 · 70 comments on HN

    What HN people wrote when they linked it

    • giovannibonettiMar 2023

      One alternative is the Model-View-Update framework developed in the Elm language [1]. A few years ago, it influenced Redux [2], but JS doesn't have good ergonomics to support it, so people complained it was too verbose. Anyway, I brought Elm to the company I worked at two jobs ago, and it worked very well, since it is conceptually very simple. The experienced developers loved its explicitness, which made it possible to build a very intricate app from just a few dependencies, which in turn allowed the company to have a very fine-grained control of the UI, and the customers loved the result.

      On the other hand, other less experienced developers didn't like Elm so much because React allows you to write your app with fewer lines of code. The article from this discussion explains well that React (especially with hooks) hides complexity, which bites people later. At that time, it is perhaps too late to switch to something else.

      Needless to say, I haven't been able to convince any other employer to use Elm, and then I see issues popping out all the time that would never happen with it. Such a waste, just because people like shiny toys and just follow what others around them are doing without thinking too much.

      [1] https://elm-lang.org/
      [2] https://redux.js.org/understanding/history-and-design/prior-art

    • carapaceJan 2023

      There's a common pattern I've seen over and over. When people learn a new thing they tend to go through a creative phase with it. The first time I noticed it was in a programming class I took in school. We were learning in Pascal. (It was cute!) When we got to the lesson on changing output colors, for the next week it was like some unicorn barfed rainbows all over our screens.

      People like to play. (Remember blink tag? Scrolling marquee?)

      What you're seeing in the JS Frontend space is (in my considered opinion) a combination of the effect of:

      1) Lots of people learning to program by messing around with JS, and

      2) Folks willing to pay people to mess around with JS.

      So you have a volcano of creativity combined with a tidal wave of money...

      The results were inevitable.

      > Follow up question : Is that complexity necessary or artificially inflated?

      No, and yes. It's not necessary (for the vast majority of sites) so it's definitely (IMO) artificially inflated.

      The good news is that you can end-run all the introduced complexity by using e.g. Elm lang ( https://elm-lang.org/ ), or just sticking to simple "plain vanilla" JS systems. The only reason to use something other than Elm is if you enjoy some other particular system (I hear good things about "htmx" https://htmx.org/ )

    • didyouchecktheFeb 2015

      > The first question I usually get ... is “Why not Haskell?”.

      > The answer is JavaScript.

      My current favorite language for this is Elm[1]. It compiles to JS, is based on Haskell, and has a few simple differences between either[2].

      Elm doesn't let you use the tons of available Haskell libraries, and makes it slightly painful to integrate with JS. But it's the coolest thing for the web so far. And here's why:

      It uses a completely declarative state machine to model a fully interactive and complete GUI! This is the dream React.js and Om didn't even know they were heading towards! And yes, it is as good as it sounds.

      [1]: http://elm-lang.org/

      [2]: http://elm-lang.org/learn/FAQ.elm

      EDIT:

      Also, Elm fixed Haskell's awful syntax record name collision problem, and awesomely too!

    • bruSep 2014

      There are several paths:

      1. JS as an assembly language. This is what emscripten[0], a LLVM bytecode-to-JS does, by following the asm.js specification[1]. This is for CPU-intensive tasks, not DOM manipulation. You can use any language that has a LLVM frontend.

      2. JS as a target language, from a specific, new language. Those include cleaner variants that keep the same semantics (CoffeeScript, TypeScript, maybe Dart, ...) or more innovative ones, such as Elm[2], which is written in Haskell too. I'd say that a big innovation that makes the life easier is FRP (which is at the heart of Elm or React.js).

      I fail yet to see what advantages PureScript brings compared to Elm.

      0: https://github.com/kripken/emscripten
      1: http://asmjs.org
      2: http://elm-lang.org/

    • gnodeJun 2019

      For direction of learning, I'd recommend finding challenging projects with them which they have a strong interest in, and can feel a sense of ownership over, then let their curiosity and creativity drive the teaching. The teaching should reward them by solving problems they are perceptive of and value.

      I think for a language, Javascript is a great choice. It's convenient because it can be used in the browser, or CLI / server with Node. It has powerful and user-friendly tools for debugging and profiling. NPM has a wealth of libraries for graphics, robotics, machine learning, and pretty much anything else you might want.

      For functional programming, with interoperability with Javascript, there's Elm: https://elm-lang.org/

    • arianvanpJun 2014

      How about http://elm-lang.org/ ? It is very similar to haskell but a bit less daunting and all its libraries are focussed on building inbrowser games. Sounds like something kids would love.

      Now that i am brainstorming anyway. Something like http://scratch.mit.edu would be so much nicer if it were a functional language! Instead of confusing blocks that maintain state every block is just a standalone welldefined function and combining blocks is just functional composition and application! I think it would be reaallt easy for a kid to digest mentally: blocks have inputs and outputs, thats it.

      Does anybody know if there are projects tjat accomplish this?

    Related

    Lambda the Ultimatelambda-the-ultimate.org615 people

    Simon Peyton Jones Elected into the Royal Society Fellowship

    Lambda the Ultimate
    Publication · last shared 2026
    FP Complete Blogfpcomplete.com201 people

    Monads and GATs in Nightly Rust

    FP Complete Blog
    Company · last shared 2025
    Prezi Engineeringengineering.prezi.com17 people

    Elm at Prezi

    Prezi Engineering
    Company · last shared 2025
    NoRedInk Engineeringtech.noredink.com38 people

    Haskell for the Elm Enthusiast

    NoRedInk Engineering
    Company · last shared 2026
    Rust Blogblog.rust-lang.org533 people

    Announcing Rust 1.0

    Rust Blog
    Company · last shared 2026
    Jenksterblog.jenkster.com28 people

    Which Programming Languages Are Functional?

    Jenkster
    Personal · last shared 2026
    Futurice Blogfuturice.com48 people

    Elm in the Real World

    Futurice Blog
    Company · last shared 2023
    PyPy Blogmorepypy.blogspot.com242 people

    Let's Remove the Global Interpreter Lock

    PyPy Blog
    Company · last shared 2024