9 май 2023 г.

OOP

Joe Armstrong: The problem with OOP languages is they've got all this implicit environment that they carry around with them. You wanted a banana, but what you got was a gorilla holding the banana, and the entire jungle

Lawrence Krubner: OOP languages have no unique strengths, and inflict a heavy burden of unneeded complexity

Alexander Stepanov: I find OOP technically unsound. It attempts to decompose the world in terms of interfaces that vary on a single type. To deal with the real problems you need multisorted algebras - families of interfaces that span multiple types. I find OOP philosophically unsound. It claims that everything is an object. Even if it is true, it is not very interesting - saying that everything is an object is saying nothing at all

Paul Graham: OOP's popularity within large companies is due to large and frequently changing groups of mediocre programmers. The discipline imposed by OOP prevents any one programmer from doing too much damage

Steve Yegge: OOP puts the nouns first and foremost. Why would you go to such lengths to put one part of speech on a pedestal? Why should one kind of concept take precedence over another? It's not as if OOP has suddenly made verbs less important in the way we actually think. It's a strangely skewed perspective

Rich Hickey: Object systems are overly simplistic models of the real world. Inability of OOP to model time properly, which is getting increasingly problematic as software systems become more concurrent

Eric Raymond: OOP languages tend to encourage thickly layered programs that destroy transparency

Rob Pike: OOP is the Roman numerals of computing. OOP languages frequently shift the focus from data structures and algorithms to types. Idiomatic solution to a problem was to create six new classes, rather than to simply use a lookup table

Bob Martin: Because they are software, related classes do not necessarily share the relationships of the things they represent

May 9, 2023, Wikipedia, "Object-oriented programming" -> "Criticism" (link)

----------

OOP = Object-oriented pro-gramming

Нападката против предварителното насочване към нещо е състоятелна, но доколкото подлежи на изнамиране нещо, нежели начално език; е, ами че тъкмо езикът поначало е разтворителят за нищото

Допълнението към статията ми "Дяволите да ни вземат", pdf: link