Any1 can tell me abt what are the disadvantages in OO modeling

Recommended Answers

All 29 Replies

I think that asking what are the cons of OOP is the same as asking which languages you should not use. And everyone know that the best language is the one we know best......everything else will not be as good on our hands unless we take time to learn it....

Keep in mind that regardless which type of programming you use (OOP or not) you are going to run into different issues. Now these issues really depend on the type of project you are working on. Some languages will have a greater advantage, over others, depending on what you are trying to do (resources and headaches).

You should not use OOP in order to code directly into the hardware because of the memory limitations, nor you should use assemble to write OS application due to the time and detail it will need.

OOP allows you to code large programs in a large development environment, so besides the multiple ego and god-like issues you'll run into...the biggest down side of OOP is that it needs more memory/resources in order to give us an environment that allows for development of complex and large programs, which by default reduces the speed of the applications.

Memory limitations? What are you smoking? You're 100% wrong, there are no memory costs to OOP.

I thinks its disadvantages are more of philosophy than hardware thing. once get compiled to machine language/byte code, that disappears. I don't have any good reason to offer you though

The main disadvantage of OO modeling is that it implies a vastly inferior type system.

when we use the OO concept we have to use the object.
So if we want to do more advance, may b its should not worth.
i mean,if we going to make a kernel it may b not useful..

As my knowledge Linux or Windows didn't use like that system while implement their OSs.
My point is OO concept always not suitable for every problem domain...
so it can be disadvantage of a OO modeling.........
(plz corrct me,if im wrong)

you are right the pros and cons do not really come from the tools that you are using but rather than the type of task you have implement...remember that the disadvantages of one language on one task can be its advantage on a different task

Put it like this...you will write an OS application using an OO language but not its compiler for this language

Memory limitations? What are you smoking? You're 100% wrong, there are no memory costs to OOP.

... to answer your question, home grew....but really, are you going to tell me there are no cons for OOP? because if that is the case, then there would be no need to develop anything on non-OOP languages.

Also, now a days of course we are no going to run into any memory costs due to the large amount of memory most of our systems have for the OS; however, CPU memory is always limited by the manufacture, so if your treads require more resources than those that can be allocated on the available CPU memory then your program will run slower (correct me if I'm wrong...I'm not an expert on CPU programming nor on how everything is processed in the background)

Alos keep in mind that when running an OS application (which are usually done on OOP) they still need to go through more steps then low level languages before they get executed. So if speed is critical...well you know...you might not want to go with an OO language

... to answer your question, home grew....but really, are you going to tell me there are no cons for OOP? because if that is the case, then there would be no need to develop anything on non-OOP languages.

Also, now a days of course we are no going to run into any memory costs due to the large amount of memory most of our systems have for the OS; however, CPU memory is always limited by the manufacture, so if your treads require more resources than those that can be allocated on the available CPU memory then your program will run slower (correct me if I'm wrong...I'm not an expert on CPU programming nor on how everything is processed in the background)

Alos keep in mind that when running an OS application (which are usually done on OOP) they still need to go through more steps then low level languages before they get executed. So if speed is critical...well you know...you might not want to go with an OO language

You should really learn assembly and some architecture design; then dissect your OOP driven apps to see how they tick. Because I have this hunch that you have no ideal what you're talking about.

You should really learn assembly and some architecture design; then dissect your OOP driven apps to see how they tick. Because I have this hunch that you have no ideal what you're talking about.

Like I said before...I'm not expert on assemble language nor on CPU architecture,like I said before, please correct me if I'm wrong...also, I'm not taking the whole "correctly if I'm wrong" as a free card to say anything that comes to mind. I will follow your advice, as it will be really interesting to see how everything moves on that level.

I made the mistake of saying the when running an OS application, it pretty much needs to be recompile, which is wrong, my bad....as it is already set to interact with the OS without the need of the actual code text file. Also, probably my example was not the best to point the pros/cons between OO and non-OO languages, but I think that showing the differences between an OO-language and low level language it is the best way to point out that the pros/cons really depends on the type of project you are working on and the type of language you want/have to use.

However, you brought an interesting point I mentioned earlier...the biggest issue we deal with is the mentality of say..."ha-ha! you are wrong!" rather than making a constructive comment on why the other person has the wrong idea (that is why I asked to correct me if I have the wrong idea).

Now to my understanding, when a program is executed, it sends instructions "telling" the CPU what to do, what to use, and what/where to read/write, this information needs to be loaded somewhere (CPU will look in the cache before looking outside it). If an instruction requires information that is not available, yet, the CPU will move to the next and eventually go back to the first one when it turn comes again. Each program will allocate its own information in the piece of memory it can access. Now that is the beauty of assemble, in which we can actually allocate information directly into the CPU registers and set the different flags in a way in which the program runs in a more efficient way.....now, this is just my understanding...whether it is enough to develop regular OS application, I think it is....whether it is enough to work on assembly....hell no!!...as you well know

... to answer your question, home grew....but really, are you going to tell me there are no cons for OOP? because if that is the case, then there would be no need to develop anything on non-OOP languages.

I didn't say there are no cons, I said that there are no memory costs to OOP. For example, there are no memory costs to using C++, relative to C. In dynamic languages, there are no memory costs to having OOP, instead of plain old dynamic typing.

There are plenty of reasons to develop using non-OOP languages. OOP is nothing more than the use of runtime interfaces, and that is not an exciting feature, any reasonable language supports that. (To classify languages into "OOP languages" and "non-OOP languages" is demented.)

5th generation of programming languages are used Object oriented concept?
Do you think OO Concept will be used in future?

At least these concept is used to develop Super embedded software???

1. There is no 5th generation of programming languages.
2. Yes.
3. What is super-embedded software?

1. There is no 5th generation of programming languages.


Really?
Prolog would like to have a word with you.

Ya...Prolog may be good answer for the 5th generation language.
but the thing is as my knowledge its allow to use object oriented concept after version 5 or 6.But now its allow to use OOC.

By the the way the idea of 5th generation of Programming languages already release to computer world...


above my post i mention Super-embedded system, as like
1.auto-driving(like auto-pilot but MAY BE it's difficult than it)
2.the robot who has good analytical knowledge relatively human culture...
like that...Those are challengers for computer sciences as i think...

Any1 can tell me abt what are the disadvantages in OO modeling

As far as I'm concerned, there are no disadvantages, and tonnes of advantages. If I didn't apply rigorous OO (UML) modeling to some projects I have done, they would never have been successfully completed. One of those resulted in a US patent for adaptive systems. To say it was complex, allowing the modification of classes in compiled machine code at run time via specification, and a rule-processing language that could reduce many pages of complex C++ code to a half-dozen rules that also could be altered at run time without recompiling the code or even restarting the application servers, would be an understatement. However, by using UML modeling I was able to create the design in a few months, and write the implementation code in weeks. This is now used to run most semiconductor fabs in the world today.

Anyway Its hard to find any disadvantages about OOP concept..
Until now I didn't meet any disadvantages about it....

So...I think there are no disadvantages..
But If U have find any conflict, update this Thread also...

OOPS have a lot of advantages associated with it, but have some disadvantages also like:
1. Overhead of creating various objects.
2. Harder to design and code.
3. If not properly designed it can be very difficult to maintain.

I do not get any disavantage of OOP. It reduces programming complexity ,also complexity of writing code.

One can find the error of coding in OOP easily. It divides a complex code in many different simple parts. Object is the main thought of OOP. A programmer can use many programs by defining objects rather than wring a long and complex code. The object oriented method reduces the complexity of coding.

Re. herbert11

1. Overhead - not so much as to make a difference
2. Harder to design and code - huh? Not in my 30 years of experience.
3. Maintenance - not difficult - in fact much easier to maintain well-written OO code than traditional coding constructs.

As I know there is no disadvantages of OOP if I am not wrong.

As I know there is no disadvantages of OOP if I am not wrong.

You're wrong. Go do a google search and educate yourself.

You're wrong. Go do a google search and educate yourself.

If so,Please post some of disadvantages in OO Concept.
if not please pointing some URLs for us to refer it.:)

If so,Please post some of disadvantages in OO Concept.

Please define what you mean by OO Concept. Oh wait, that's a disadvantage: there's no consistent agreement on what OO is. :)

Oh!!...
i mean that the thing what we are use in object oriented modelling...
such as use classes object encapsulation etc...
I want to know are there have any disadvantages using that OO modelling rather than others..
and also will it be used in future application also rather than now?

(until I'm not a expert about Computer Science or IT..even I haven't more experience about that field more than 2 or 3 year..may be i have some mistake.if so plz point me out)

such as use classes object encapsulation etc...

Please define precisely what you mean by "OO Concept". "etc.." isn't a valid definition because it presumes that everyone knows what you're talking about. When I've already mentioned that OOP is vague and inconsistently defined, it's critical that you make it clear exactly what features you want to discuss.

Or you can do what I suggested in the first place: search google for disadvantages and criticism of OOP.

The mentioned below are few

Unfamiliarity (causing an added training cost for developers).
Inability to work with existing systems (a major benefit of C++)
Data and operations are separated
No data abstraction or info hiding
Not responsive to changes in problem space
Inadequate for concurrent problems

You can check here

It is the basic part of the computer coding languages.Oop depend on abstraction,encapsulation,polymorphism,inheritance.It use the object method.Variables and attributes are untyped,everything in an object.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.