Skip to content
0:00 / 0:00

#oop#proceduralprogramming#encapsulation

Object-Oriented Programming is Bad

Brian Will

100K subscribers • 5 videos on Hallway

YouTube
  • Recommended by 15 people: 13 on Hacker News and 2 on Lobsters.
  • A classic. People kept recommending it from 2016 to 2025.
  • Presented by Brian Will
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

2.6M views10 years ago15 recommendations

Software designProgramming languagesObject-oriented designFunctional programmingDesign patterns

Brian Will critiques object-oriented programming, arguing that its promises of encapsulation and decoupling are illusory and that procedural programming is superior.

An explanation of why you should favor procedural programming over Object-Oriented Programming (OOP).

Why it's here

15 people recommend this

What people say. Highly recommended by engineers as a compelling critique of object-oriented programming and a defense of procedural alternatives.

Moments people linked to

pushcxon Lobsters • Recommends

Object-Oriented Programming is Bad

ryanmarshon Hacker News • Recommends

On “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. link to this video Douglas Crockford also does a good job of explaining some of the trouble with classes. link

jmulhoon Hacker News • Recommends

On “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" link to 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 opini…

thunderbongon Hacker News • Recommends

On “Object-Oriented Programming is Garbage: 3800 SLOC example [video]”

Previous videos Object-Oriented Programming is Bad link to this video Object-Oriented Programming is Embarrassing: 4 Short Examples link I'm watching the 'is Bad' one, and honestly, it rings too close to my experience. Need to think about this a bit more deeply!

NegatioNon Hacker News • Recommends

On “How we secretly introduced Haskell and got away with it”

…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: link to this video…

hackitson Hacker News • Recommends

On “Principles for C programming”

One of the video that can articulate the whole thing better than me is ( link to this video ) It was a long winded written rant. I still use OOP but its more or less glorified name spaces with functions. Today I rather work on procedural code than OOP code. It may have bugs, it may have their own little quirks but its like a old rusted vehicle that still keeps going.

lazulicurioon Hacker News • Recommends

On “Why Isn't Functional Programming the Norm? [video]”

There was an article on state in OOP posted here a few days ago that I found very thought-provoking1. The blog post and related youtube videos are pretty interesting as well234. 1 link 2 link 3 link to this video 4 link

crimsonalucardon Hacker News • Recommends

On “Ask HN: Books you plan to read in 2020?”

…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: link to 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.…

cxron Hacker News • Recommends

On “Design Principles Behind Smalltalk (1981)”

At the risk of putting readers off by the title, there's a video essay on YouTube called "Object-Oriented Programming is Bad"1. It's both thoughtful and thought-provoking, although I don't agree with the conclusion. Steve Naroff (from Stepstone/NeXT/Apple) did a recent-ish set of interviews with the Computer History Museum23 and referenced that video a bit (and extemporized about objects in small parts throughout). Side note: Naroff and Brad Cox are set to present a paper on Objective-C at this year's HOPL4. I wish it were as readily available as Allen Wirfs-Brock's JS paper for the same conference56. 1. link to this video 2. link 3. link 4. link 5. link 6. link

zamalekon Hacker News • Recommends

On “.NET Myths Dispelled”

Here's a really popular video that touches on many of the contentions: link to this video My personal tipping point was the realization that OOP forces you to first figure out how you solution maps to OOP, before figuring out (or iterating on) how it maps to code. It creates nothing more than accidental complexity: link

DeathArrowon Hacker News • Recommends

On “.NET Myths Dispelled”

…s 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 link to this video link…

cloogshiceron Hacker News • Recommends

On “The Big TDD Misunderstanding”

That's fair - I'm not against abstraction in general. I agree that we wouldn't be able to handle the essential complexity of software without it. I'm just saying that each abstraction also has a cost, and makes understanding the whole thing more difficult. Abstraction is, in my understanding, a necessary but costly tool. A lot of my thoughts are summarized well by Brian Will in this video: link to this video

_dain_on Hacker News • Recommends

On “C Object Oriented Programming (2014)”

This video has a pretty good breakdown of how the "encapsulation" and "decoupling" promised by OOP is mostly a mirage: link to this video

cutleron Hacker News • Recommends

On “99 Bottles of OOP now available in Python”

OOP is an industry of its own which generates a ton of incidental complexity. See "Object-Oriented Programming is Bad" by Brian Wills ( link to this video ) and most of Rich Hickey's excellent videos, especially his keynote at Rails Conf 2012 where he basically told the Ruby crowd they're doing it wrong ( link ).

lor_louison Lobsters • Recommends

Object-Oriented Programming is Bad (2016)

u/dechichiin r/C_Programming • Mentions

On “You guys asked me to compare my C animation system with Godot next. It did about 3x better than Unity.”

So after many years programming, and having used a lot of OOP, as well as having tried to apply principals from books like Clean Code, I mostly learned that this abstractions are a bad way to organize complex systems. I'm not the only engine programmer that thinks that, here's a short video were Casey explains how his first version of RAD's animation library was a mess due to the OOP design. For longer form arguments, I'd suggest this talk from Mike Acton and this presentation from Brian Will. That is not to say that you shouldn't think about high level system architecture, but the way I do those now do not use features like Inheritance hierarchies, interface, SOLID and stuff like th…