Вы находитесь на странице: 1из 2

Criticism[edit]

A number of well-known researchers and programmers have analysed the utility of OOP. Here is an incomplete list: Luca Cardelli wrote a paper titled "Bad Engineering Properties of Object-Oriented Languages".
[32]

Richard Stallman wrote in 1995, "Adding OOP to Emacs is not clearly an improvement; I used OOP when working on the Lisp Machine window systems, and I disagree with the usual view that it is a [33] superior way to program." A study by Potok et al. has shown no significant difference in productivity between OOP and procedural approaches. Christopher J. Date stated that critical comparison of OOP to other technologies, relational in [35] particular, is difficult because of lack of an agreed-upon and rigorous definition of OOP. Date and [36] Darwen propose a theoretical foundation on OOP that uses OOP as a kind of customizable type system to support RDBMS. Alexander Stepanov compares object orientation unfavourably to multimethods: "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 [37] true it is not very interesting - saying that everything is an object is saying nothing at all. ...". Paul Graham has suggested that OOP's popularity within large companies is due to "large (and frequently changing) groups of mediocre programmers." According to Graham, the discipline imposed [38] by OOP prevents any one programmer from "doing too much damage." Joe Armstrong, the principal inventor of Erlang, is quoted as saying "The problem with object-oriented languages is they've got all this implicit environment that they carry around with them. You wanted a [39] banana but what you got was a gorilla holding the banana and the entire jungle." Richard Mansfield, author and former editor of COMPUTE! magazine, states that, "Like countless other intellectual fads over the years ("relevance", "communism", "modernism", and so on history is littered with them), OOP will be with us until eventually reality asserts itself. But considering how OOP currently pervades both universities and workplaces, OOP may well prove to be a durable delusion. Entire generations of indoctrinated programmers continue to march out of the academy, committed to [40] OOP and nothing but OOP for the rest of their lives." He also is quoted as saying "OOP is to [41] writing a program, what going through airport security is to flying". Steve Yegge, making a roundabout comparison with Functional programming, writes, "Object Oriented Programming 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 [42] strangely skewed perspective." Rich Hickey, creator of Clojure, described object systems as overly simplistic models of the real world. He emphasized the inability of OOP to model time properly, which is getting increasingly [43] problematic as software systems become more concurrent. Carnegie-Mellon University Professor Robert Harper in March 2011 wrote: "This semester Dan Licata and I are co-teaching a new course on functional programming for first-year prospective CS majors... Object-oriented programming is eliminated entirely from the introductory curriculum, because it is
[34]

both anti-modular and anti-parallel by its very nature, and hence unsuitable for a modern CS curriculum. A proposed new course on object-oriented design methodology will be offered at the [44] sophomore level for those students who wish to study this topic."

See also[edit]
This article may be in need of reorganization to comply with Wikipedia's layout guidelines. Please help by editing the article to make improvements to the overall structure.(November 2012)
Computer programming portal

Aspect-oriented programming CADES Circle-ellipse problem Comparison of programming languages (object-oriented programming) Comparison of programming paradigms Component-based software engineering Concurrent object-oriented programming Constructor (object-oriented programming) Constructor overloading CORBA DCOM Design by contract

Вам также может понравиться