8 ms·
OOP is a nice feature for a language to have. The backlash was against the religious fervor around OOP. People were claiming that OOP is the one true way to org
by blt 6y ago
OOP is a nice feature for a language to have. The backlash was against the religious fervor around OOP. People were claiming that OOP is the one true way to organize software. Java's designers went so far as to eliminate the concept of free functions from the language. Almost everyone agrees this was a bad idea.
Yegge's anti-OOP rant is mainly about this design in Java. Norvig's presentation on design patterns points out that some OOP tropes are compensating for missing non-OOP features like first-class functions.
Python's standard library is a good example of how to use OOP effectively. For example, `multiprocessing.Process` is a class because it explicitly manages state.
- acdha 6y agoDogma and also specific bad implementations - a significant percentage of the complaints I’ve heard from other developers were basically Java’s cumbersome design and the enterprise software complexity fetishists. Python developers complain about it orders of magnitude less because it’s usually not a problem. There are two biases skewing perception, too: the first is simply that people using other languages or writing newer Java well are probably not writing blog posts about how their language is less hassle than the business. The second is that OOP is so much more popular that people forget to adjust for things like skill levels for a mainstream versus niche language. There are tons of jobs in OOP languages so there’s a ton of code written by people who weren’t going to write great code in any language, whereas a lot of less widespread languages - especially those built around an academic concept - will self-select programmers who are trying to improve their craft. This is telling you more about the job market and how much companies value quality than the languages.
- johnisgood 6y agoI cannot stand any programming languages in which you cannot create C-like structs in any way other than using classes. That is not even remotely similar! That means Java, and Python, for example.