Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
Every programming/scripting language that I have heard of is an Object Oriented Programming (O.O.P) language. What are some examples of languages that aren't considered an O.O.P language.
OOP is a paradigm, not language. Some languages like Javascript or PHP can use OOP, but don't need to (they are multiparadigmatic).
Some languages like C# or Java have to use objects, but that doesn't mean the programs need to be Object-Oriented. In that case it is considered bad design, though. There are even antipatterns that describe screwed OOP, although C# supports coding sugar like lambdas or linq that is not OOP.
Some people try to emulate their favorite paradigm in languages that don't support it well. For example, jQuery tries to use functional (or monadic) paradigm and some say it is not a good idea (although the library is very popular).
I recommend this article to get grasp of most popular paradigms and their difference to OOP.
Assembly, C, BASIC, Fortran, Forth, Pascal, Brainf**k, Malbolge, and dozens upon dozens more.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
I read about OOP and Function programming. And I found both have pros and cons.
Such as:
OOP: have side effect, and sometimes it is very usefull
Function: easy to code and think. But don't have side effect and loop.
And I wonder if I can using both OOP and Function paradigm in one project. Is it be recommended in practice?
There's nothing preventing both paradigms from being used together. Arguments on each side sometimes can be misleading as people tend to focus on languages and their features as opposed to the paradigms themselves. OOP doesn't need to have state/side effects, and functional programming doesn't always make things easier or faster. The good engineer will use the right tools for the right task, which means getting a good understanding of both.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I wanted to ask little bit generic question about Java API's. I'm new in Java, learning myself and of course I enjoy it while learning. But when it comes to Java API's, to me it's hard to understand even if I know OOP's Concepts. Actually I often confuse while reading JavaDoc's. Agree that there are bunch of information about what class's(interface, enum..) has, what they extend, implements or whatever. Even though I couldn't use them without looking from the internet.
So, what is the best way of learning those API's in general, just give me your followed way while learning Java.
The best way to learn Java is to read articles with examples. It is common approach for newbies and professionals. JavaDocs is dry, too formal and really are often confusing (especially for methods from Stream API with 3+ generic parameters).
The way I did was to read certification books, for OCA and OCP, they start from the very basic, and builds up on the top of that, with examples and exercises.
It is a really nice way to build your core knowledge of the language. With that solidified knowledge you can start reading articles about different subjects in the Java universe ...
Just be patient, code as much as possible, and it will become natural aftar some time.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
How Composition is a lesser principle level, than Inheritance? One always has to consider Composition over Inheritance, but there is no mention of Composition in the four major OOP principles. What is the reason behind this? Are they not at the same level?
Composition is a lower-level and a much older concept than inheritance; it comes from the analysis-synthesis approach which basically states that things are either composed of other things or trivial (atomic). It was first introduced back in ancient Greece as a general approach to understanding things.
Composition is not specific to OOP, e.g. in plain C, which is far from being OO, structs are authored using composition, likewise in functional programming functions are composed of other functions, though the nature of composition is totally different in these two examples.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
I am having a very strange question, although I am learning OOPS through C++ since last few months. That why there is a need of a construct like class?
There is no need for classes in object-oriented programming. There are lots of languages which do just fine without them: Self, Io, Ioke, Seph, Slate, NewtonScript and ECMAScript have only objects, no classes. Other languages have mixins. Yet other languages have traits. Some languages have classes and mixins, some classes and traits.
The only thing you really need for object-orientation is some way to perform procedural abstraction. That's it. Lambda Calculus is a perfectly fine OO language, in fact, since it has only procedural (well, actually functional) abstraction and nothing else, one might argue that Lambda Calculus is the purest OO language of all.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
I've been reading Wirth's books on Oberon--or at least trying to--and I'm hitting a mental road block when it comes to figuring out what is going on regarding object oriented programming in Oberon.
I know his method is supposed to simplify object oriented programming by avoiding "standard" OOP syntax, which he labels a perpetration, as if it was somehow criminal, and maybe I'm just too rooted in class, method, etc... kind of thinking, but can someone translate Oberon's method into standard OOP language, or at least conceptually explain it.
You may get some insight by comparing Ada's tagged type, examined in Ada 95 Rationale: II.1 Programming by Extension, with Oberon-2's type tag, discussed in Object-Oriented Programming in Oberon-2: Run-Time Data Structures, cited here. Both use a record structure with hidden type information to implement inheritance and polymorphism. See also A Comparison of the Object-Oriented Features of Ada 95 and Java, cited here.
Addendum: So are they simply associating procedures with records?
An Oberon record type encapsulates both procedures and data, in a manner similar to the object type in Object Pascal. An Ada tagged record encapsulates the data, while the enclosing package encapsulates the subprograms and record.