Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
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

    Object-Oriented Programming is Bad

    Brian Will

    13 HN recommenders · recommended in 16 months, 2016–2025

    YouTube

    44:35 · 2.6M views · Jan 18, 2016

    Brian Will makes the case for procedural programming over object-oriented programming, arguing that OOP's promised encapsulation and decoupling are largely illusory. He analyzes real code examples and the problems of tying data to behavior in classes.

    HN returns to it as the go-to critique of OOP, recommended for explaining the costs of abstraction better than most written arguments.

    Software Engineering & LanguagesSoftware architecture & designProgramming language design
    1. 28:03
      Object-Oriented Programming is Embarrassing: 4 Short ExamplesBrian Will2.2M views • 10 years ago
    2. 1:27:46
      CppCon 2014: Mike Acton "Data-Oriented Design and C++"CppCon863K views • 12 years ago
    3. 52:48
      Object-Oriented Programming is Garbage: 3800 SLOC exampleBrian Will258K views • 10 years ago
    4. 2:27:34
      Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025Better Software Conference929K views • 1 year ago
    5. 46:09
      Why Isn't Functional Programming the Norm? – Richard FeldmanMetosin1.6M views • 7 years ago
    6. 1:03:31
      Brian Goetz - Stewardship: the Sobering PartsClojureTV39K views • 11 years ago
    7. 56:39
      Alan Kay - Programming and ScalingColin McDonnell36K views • 11 years ago
    8. 1:23:35
      "Uncle" Bob MartinProgram on Entrepreneurship179K views • 11 years ago
    9. 1:32:47
      Data-Oriented Demo: SOA, compositionJonathan Blow201K views • 11 years ago
    10. 36:42
      Bottom Up vs Top Down Design in Clojure - Mark BastianClojureTV29K views • 10 years ago
    11. 1:14:52
      Effective Programs - 10 Years of Clojure - Rich HickeyClojureTV176K views • 9 years ago
    12. 59:03
      Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '17Dyalog User Meetings7.2K views • 9 years ago
    13. 1:29:27
      The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]cpponsea245K views • 7 years ago
    14. 1:01:39
      "Simple Made Easy" - Rich Hickey (2011)Strange Loop Conference220K views • 5 years ago
    15. 1:10:05
      Are We There Yet - Rich HickeyZhang Jian24K views • 7 years ago
    16. 12:31
      OSCON 2010: Rob Pike, "Public Static Void"O'Reilly119K views • 16 years ago
    17. 1:01:33
      A Possible Future of Software DevelopmentGoogle TechTalks82K views • 18 years ago
    18. 4:57
      Rich Hickey rants about HttpServletRequest in 1080p: Death By Specificity from Clojure Made SimpleFred Overflow43K views • 6 years ago
    19. 33:52
      Nordic.js 2014 • Douglas Crockford - The Better PartsNordic.js73K views • 12 years ago
    20. 25:01
      Dan Abramov The wet codebaseeswarnichtsmehrfrei27K views • 5 years ago

    20 comments from Hacker News

    1. @jmulhoDec 2019· in “Ask HN: Books you plan to read in 2020?”

      Looking at your top priority books I recalled a slide from one of Brian Will's videos on object oriented programming: "Object Oriented Programming is Bad" this video . At around the 43:51 he pulls up a slide picturing several of these (and similar) books. Here is a rough quote: "I can tell you from personal experience of having read these books that you don't need to read them. They don't have answers, they aren't going to square the circle, and you are going to waste productive years of your life trying to live up to their ideals." Now that is just one rather controversial opinion, but we are talking about potentially wasting productive years of your life so I wanted to let you know that opinion is out there. That being said, it would probably be hugely beneficial to read a few of those books and then watch a few of Brian's videos (he has three or four on the topic) and sort out your own opinion. Also, Brian's other (not controversial) videos (dozens) are excellent for learning about programming. Also, Steve Krug's Don't Make Me Think is a keeper. I thought of it last night when I was checking out at a store. I stuck my debit card into the thing, entered my PIN number, then clicked the big blue button that said "Skip PIN". The woman behind the counter said "don't worry about it; everybody does that!"

      Strongly recommendsView on HN
    2. @ryanmarshNov 2017· in “When I use classes, when I don’t, what I do instead and why”

      Code should be written first and foremost for humans to understand, and incidentally for compilers to understand. [LINK] If we can all agree about that then we have to ask ourselves if encapsulating data and behavior at the granularity of classes makes the most sense for human comprehension. In naive OO examples (Animal -> Cat) it does. In practice however, it's debatable (at best). I highly recommend this video by Brian Will who does a much better job explaining this problem than I could. this video Douglas Crockford also does a good job of explaining some of the trouble with classes. [LINK]

      Strongly recommendsView on HN
    3. @DeathArrowMar 2022· in “.NET Myths Dispelled”

      I think this is a valid critique. But then, most of the development (C aside) has been a victim to OOP. I have begun to think that OOP creates more problems than it solves. Added complexity and performance loss being the biggest. It's insane if you peek into a big projects where many developers came and went and each of them read an article about what it seemed an interesting design pattern and tried to implement them. You can have some kind of procedural programming if you use classes just to store data and use static methods. But the frameworks are OOP and there is no way around that unless you write your own frameworks. I am a big fan of Mike Acton's Data Oriented Architecture speeches, but I didn't find a way to implement something similar in C#. For those interested in something better than OOP, here's a few links: [LINK] this video [LINK]

      RecommendsView on HN
    4. @NegatioNMar 2017· in “How we secretly introduced Haskell and got away with it”

      Prodcedural code can also be well compartmentalized and tested. I was also until recently quite convinced OOP was the only way to go, but I'm seeing signs everywhere that a lot of the design-problems I've met over the past few years are at least magnified by OOP. The abstraction promised by OOP is a good thing, however very few people are able to consistently make good, reusable and maintained abstractions. To the point where it becomes a weakness rather than a strength. I don't want a billion wrapper-objects that obfuscate my code, and makes the surface area of it bigger than it has to be. Often I struggle understanding code more because of how it was separated, than because of the complexity of what it actually does. I liked Rich Hickeys talk "Simple made Easy" [1] and "Brian Will: Why OOP is Bad" [2] [1]: [LINK] [2]: this video

      RecommendsView on HN
    5. @crimsonalucardDec 2019· in “Ask HN: Books you plan to read in 2020?”

      This isn't about OOP vs. FP. This is about OOP vs. everything else. Rust, Go and javascript are three languages that are moving away from the OOP paradigm. None of those three languages are classified as functional. >Is there some resource you can point to that says in the past when faced with situation X developers tended to use pattern Y, these days that has been superseded with way of doing things Z? No. A general trend is an anecdotal observation. Still a quick google search yielded: [LINK] Take a look at the following video: this video While I don't agree with a lot of it, I think it sums up my opinion really clearly. It's not about DP's but because DP's focus around OOP and the video is a criticism of OOP therefore the arguments apply to DPs.

      RecommendsView on HN