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
    C

    Charles Scalfani

    medium.com/@cscalfani · Personal blog · on HN since 2016

    Charles Scalfani writes Medium essays on functional programming, the problems of object-oriented design, Elm, and teaching programming.

    Visit blogHN submissions
    ProgrammingLanguages & Compilers
    What HN says

    HN links his OOP critique in discussions of object-oriented design problems, and his Elm post alongside other complaints about Elm. One commenter flags a plagiarized copy of the OOP essay.

    Stats for nerds
    27HN people shared it
    23linked in comments
    607story points
    Jan 2022last shared
    2017people per year2022

    Top posts on HN

    1. 1
      Goodbye, Object Oriented Programming
      13 people · 468 points · first shared 2016 · 340 comments on HN
    2. 2
      Why Experts Make Bad Teachers
      3 people · 104 points · first shared 2016 · 66 comments on HN
    3. 3
      So You Want to Be a Functional Programmer (Part 1)
      6 people · 20 points · first shared 2016 · 1 comments on HN
    4. 4
      Why Is Learning Functional Programming So Damned Hard?
      1 person · 6 points · first shared 2019 · Discussion on HN
    5. 5
      The Biggest Problem with Elm
      2 people · 4 points · first shared 2019 · 2 comments on HN
    6. 6
      So You Want to Be a Functional Programmer (Part 5)
      1 person · 3 points · first shared 2016 · Discussion on HN
    7. 7
      Why Programmers Need Limits
      1 person · 2 points · first shared 2016 · 1 comments on HN

    What HN people wrote when they linked it

    • zelphirkaltMar 2021

      After many years of a lot of OOP, many people have realized, that putting behavior and state together into one entity might not be a good idea. We can see modern languages moving away from such practices. For example in Clojure one has defmethod, which defined a method separately. In Rust one has structs and implements traits for them separately. In some languages OO systems are libraries, which are optional, opt-in, not part of the core language. Think GOOPS and CLOS. Usually those languages define functions for data structures separately and you will have something like vector-length.

      So it seems wisdom is slowly sinking in and we are progressing away from bundling state and behavior together.

      Why is this done? For example to avoid having to subclass loads of stuff. For example in Rust one uses composition over inheritance and one can add behavior later by implementing traits, that make use of the parts of the structs. This way one does not need to subclass everything to add a new behavior. Similar for defmethod in Clojure. With Erlang this is raised to a whole new level, by defining the behavior in separate actors, which process messages, which are the data, which travel around without the behavior part. Overall it makes it possible to actually have encapsulation. A similar thing happens when we leave the boundaries of one machine and look at the web and REST, where we basically pass messages, conceptually similar to what happens between actors. For details about how…

    • simon83Jun 2017

      Joe Armstrong said that in the context of code re-usability in OOP. At first it took me a while to understand what he actually meant with that, because OOP is about making code re-usable, after all. But then I read an article that explained this quote in great length and other potential pitfalls of OOP, and then it all started to make sense.

      I would write all of this in my own words, but it would become really long and I don't have the time at the moment. I tried to find the original article I read, but I'm unable to, but here is a similar article I just found: https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53

      I'd understand if the inflammatory writing style and the memes are not yours, but I skimmed through it and I think it does explain some of the problems well. I'm sure there are better written articles on this subject, but I have to leave now unfortunately.

    • leshowApr 2021

      It's not just luke, here's a couple more, two of these I remember in particular the others are just from a google search

      https://reasonablypolymorphic.com/blog/elm-is-wrong/

      https://dev.to/kspeakman/elm-019-broke-us--khn

      https://blog.bitsrc.io/elm-and-why-its-not-quite-ready-yet-2c516a81e252

      https://medium.com/@cscalfani/the-biggest-problem-with-elm-4faecaa58b77

      I've come to view Elm as someones personal compiler project. If you are good with the decisions made then you're going to have a fine time, otherwise you probably won't

    • JohnDeHopeJan 2022

      This link (to devgenius.io) is to a plagiarized copy of the original, which is here: https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53 .

      Update: The way I figured this out is that I mod a subreddit called OOP Is Bad. I usually jump the gun on new articles, and then I have to roll back my posts when I realize they're duplicates. Anyway if you want to read up on the subject, you could do worse. http://reddit.com/r/oopisbad

    • DeathArrowApr 2020

      I suggest searching google for "problems with object oriented programming". There have been countless discussions, articles and videos.

      Examples:
      https://www.youtube.com/watch?v=QM1iUe6IofM
      https://medium.com/machine-words/the-rise-and-fall-of-object-oriented-programming-d67078f970e2
      https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53

    Related

    John A. De Goesdegoes.net81 people

    Twitter's Fucked

    John A. De Goes
    Personal · last shared 2026
    Philip Nilssonphilipnilsson.github.io19 people

    Escaping Hell with Monads (2017)

    Philip Nilsson
    Personal · last shared 2026
    Bartosz Milewskibartoszmilewski.com196 people

    Functorio

    Bartosz Milewski
    Personal · last shared 2026
    Jenksterblog.jenkster.com28 people

    Which Programming Languages Are Functional?

    Jenkster
    Personal · last shared 2026
    Lambda the Ultimatelambda-the-ultimate.org615 people

    Simon Peyton Jones Elected into the Royal Society Fellowship

    Lambda the Ultimate
    Publication · last shared 2026
    Raganwaldweblog.raganwald.com115 people

    My favourite interview question

    Raganwald
    Personal · last shared 2025
    programming is terribleprogrammingisterrible.com124 people

    Write code that is easy to delete, not easy to extend

    programming is terrible
    Personal · last shared 2026
    Elm Blogelm-lang.org283 people

    A Farewell to FRP

    Elm Blog
    Company · last shared 2026