IsC# 100% OOPS?

  • Thread starter Thread starter Gopinath
  • Start date Start date
Hi,

I has been my experience that the definition of 100% object oriented
language/environment is highly dependent on the person defining what it
means to be 100% object oriented. It is however my opinion that C# is
sufficiently object oriented to be a productive and efficient development
language giving a very good balance between object oriented features and
runtime performance. What makes it even more object oriented is not the
language but the fact that the .NET framework is object oriented so it is a
paradigm carried through the entire platform. Enabling the object oriented
nature of the .NET framework to transcend the language barriers.

Maybe you should give your definition of a 100% object oriented language and
we see how well C# fits that particular mold.

Just an opinion

Chris Taylor
 
100% sounds very extreme to me. I doubt that for instance that constants are
treatable as objects but I haven't tried it. (eg 55.GetType() returns
System.Type.Integer? I doubt it )

C# is more object oriented than most. But not as OO as Smalltalk for
example.

Just my 2c

Tom
 
Heinz Kiosk said:
100% sounds very extreme to me. I doubt that for instance that constants are
treatable as objects but I haven't tried it. (eg 55.GetType() returns
System.Type.Integer? I doubt it )

Indeed - but it returns System.Int32, which is more understandable.
 
Jon Skeet said:
Indeed - but it returns System.Int32, which is more understandable.

Really? More OO than I expected then. My example wasn't intended to be
rigorous syntax.

Tom
 
Whether or not it's 100% OO, it doesn't have 100% if features. True multiple
inheritance for example.
 
I think this is exactly the problem with the Q as phrased.

Who says that MI is necessary for 100% object orientation? Where is the
definition? Smalltalk is amongst the most OO languages out there but the
examples I saw a few years ago didn't have MI.

Once Gopinath supplies a definition the question answers itself. Just look
at the ticklist and say Y or N.

Tom
 
Whether or not it's 100% OO, it doesn't have 100% if features. True multiple
inheritance for example.

What a totally rediculous thing to say. M.I. isn't a requirement and
never was for "true OO".

Oz
 
Indeed - but it returns System.Int32, which is more understandable.
Really? More OO than I expected then. My example wasn't intended to be
rigorous syntax.

Tom

It supports inheritance, and polymorphism. It also has abstract types
and interfaces, which makes it object oriented enough. But there are
things you cannot derive from things like Int32 because they are
structures or sealed types. When you do a 55.GetType() or int i=55;
i.GetType(); Compiler boxes the struct and then does the call, boxing
the struct creates a glossy (I don't know if there is a better word to
describe it) object that holds the struct, and when you need to access
the properties or the methods of the boxed struct you have to cast it
bact to its actual type, so I don't think this feature makes dotnet
any more object oriented than it already is or isn't, you cannot use
polymorphism on structures, and obviously boxed versions of them.


Sinan
 
Well ... question is, what is "true OO", I don't believe there is a definition for 'True OO'.
You can hardly say that MI is not an OO concept, just like you can't say that when a language doesn't support MI, it is an
half-hearted OO environment and you should reject it as totally inadequate.

Willy.
 
O-O requires three things: encapsulation, inheritence, and
polymorphism. C# provides all three. C# is therefore
100% O-O, q.e.d.

Oz
 
If it ain't OO, then I am perfectly happy not to do OO. Besides, "true" OO
has nothing to do with a language. True OO involves dozens of people having
meetings, designing UML diagrams, and coming up with obscure and detailed
coding standards until the project is cancelled due to lack of funds. Who
cares what language you use as long as we have all these pretty pictures of
classes and use cases???
 
[This followup was posted to microsoft.public.dotnet.framework and a
copy was sent to the cited author.]

hi,
Is C# is a 100% object oriented language? Can u plz
justify ur answer.

Thanx
My 1c worth: I think that MS has designed a very capable language and
runtime that is capable of demonstrating any of the OOP behaviours of
consequence.
I have noticed however, that in the applications they show as examples,
OOP is not in their thinking, only components. Further, in OOP we are
supposed to think of objects and their behaviors. They however, are
modeling Business Objects separatelly from a Data layer. I would think
that in OOP we would have the object show a business rule behaviour and
a have persistance. The approach by MS, is my opinion pragmatic and
scalable.
 
I think the answer cannot be a general one, what is one person's OOP
language isnt anothers, Its OOP enough for my needs. Maybe not somebody
elses , so in my view it is 100% OOP (based on my requirements)


junk said:
[This followup was posted to microsoft.public.dotnet.framework and a
copy was sent to the cited author.]

hi,
Is C# is a 100% object oriented language? Can u plz
justify ur answer.

Thanx
My 1c worth: I think that MS has designed a very capable language and
runtime that is capable of demonstrating any of the OOP behaviours of
consequence.
I have noticed however, that in the applications they show as examples,
OOP is not in their thinking, only components. Further, in OOP we are
supposed to think of objects and their behaviors. They however, are
modeling Business Objects separatelly from a Data layer. I would think
that in OOP we would have the object show a business rule behaviour and
a have persistance. The approach by MS, is my opinion pragmatic and
scalable.
 
Back
Top