What is the opposite of OOP? [closed]

2020-02-16 20:45发布

问题:

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 6 years ago.

I started in High School learning java and python and I guess I just always learned OOP and nothing else my question is What are the other programming paradigms or types of programming languages beside OOP?

回答1:

"Opposite" isn't really a good way of putting it. What's the "opposite" of Democracy? OOP is a a paradigm -- a way of viewing the problem of programming.

The four main coding paradigms are functional (viewing programs as mathematical formulas), imperative (programs are series of instructions for the computer), logical (model information and the relationship between that information), and OOP (Model objects and how it interacts with other data.)

http://www.cs.aau.dk/~normark/prog3-03/html/notes/paradigms_themes-paradigm-overview-section.html#paradigms_logic-paradigm-overview_title_1

Logical is the most different by far and you have to jump through a lot of hoops to solve some problems in logical programming. The other three all solve the same problems, but the approaches are different.



回答2:

Procedural Programming is one of the other forms used.

http://en.wikipedia.org/wiki/Procedural_programming



回答3:

There is no such thing. OOP is a concept built on top of procedural programming, there is no opposite rather there is a choice of writing in OO or not.



回答4:

There are several but i would say Functional Programming is the most opposite.

http://en.wikipedia.org/wiki/Functional_programming



回答5:

These answers are all wrong ... and that is a VERY good question ... and the answer is .... "AOP" - i.e. an "Algorithmic Oriented Programming" entirely based on the "algorithm" being at the very centre of the concept - in an AOP the "data" or an "object" or "objects"are simply "passed to the algorithm" - i.e. THE ALGORITHM IS ENTIRELY KING (it "knows" what to do with the data) - the data carries around "nothing".

In fact "we" (at Inferix) think OOP is a blind alley!

AOP is a much better model of reality - OOP is fine for "images on screens" and "data processing" but it cannot encapsulate intelligence - because "relationships and dynamics and intelligence" are not at it's core!

So we think that "AI Entities" (coming soon) will use only AOP!

Practically speaking Algol60, Coral66 and Inferix-MTR are examples of AOP languages - Algol60 became Pascal and Ada and the likes - and these just became more and more OOP (e.g. Delphi)!

The start of "typing" of values marked the end of AOP!

However: MTR is still a strictly AOP language (but unfortunately at present it is designed for AI entities to use and not humans).

You could think of an AOP as a language that strictly "prohibits" the typing of data elements and is only concerned with "values" of "signals".