[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: of applications for gnustep...
From: |
Philippe C . D . Robert |
Subject: |
Re: of applications for gnustep... |
Date: |
Sun, 15 Jun 2003 14:04:15 +0200 |
On Sunday, June 15, 2003, at 01:38 AM, Philip Mötteli wrote:
Am Samstag, 14.06.03, um 17:53 Uhr (Europe/Zurich) schrieb Philippe
C.D. Robert:
On Friday, June 13, 2003, at 08:49 PM, Philip Mötteli wrote:
C++ completely misses the point what OO is all about. Yes, I'm
referring
to Alan Kay's legendary comment:
I invented the term 'object oriented programming' and I can tell
you I didn't have C++ in mind.
C++ is one big mess of afterthoughts. C++ is evil and should be
buried
at midnight under a full moon in an abandoned graveyard. And best be
forgotten as well.
I do completely agree. And I would even add something: As someone,
who believes, that the most important part of an oo-program is its
design: It would be impossible for me to make any project in C++,
because the language is so little oo, that every design is just a
huge tinkering with, in other languages not needed, design patterns.
It becomes an unmaintainable mess.
In other words, you don't like C++ because you are not able to use it
properly...
Thanks, you seem to know me very well or you just want to insult me.
Anyway, you have a simple logical problem:
I did not mean to be insulting, sorry if it came along that way. I also
do not claim to be a language expert, I just use and did use both
languages for quite some time in my professional life which involves
dealing with relatively large code bases. BTW the comment I made above
is just a 'tweaked rephrasing' of your comment:
"It would be impossible for me to make any project in C++, because the
language is so little oo, that every design is just ...".
The oo features of different oo languages are not the same, are they?
Or are all languages the same? No they aren't otherwise we wouldn't
have this thread here. So somewhere these differences have to take
effect. They take effect in the code you can write – in the
restrictions you have or not. Software code models a part of the real
world. The models are different when written in languages with
different oo possiblities. I don't think, we can discuss anything
here. So far this is only a logical conclusion.
Of course, I agree.
But concretely: Please tell me, how I can replace Categories. I really
would like to ask you this question. Or, I want to override a C++
method, that is not declared as being virtual (of course, you don't
have the source or are not allowed to change it)?
And here it's you having a logical problem... using different languages
will result in different designs, thus comparing feature X against
feature Y does not proof anything, it's as if I would say you cannot
overload operators in ObjC and therefore it is a bad language. Besides
what do categories have to do with OO programming? They are a language
feature which can lead to elegant designs (or bloat classes or be a
potential security problem or...), but they are not a prerequisite for
OO programming.
Moreover the misuse of a C++ "feature" does even imply less in this
discussion - if you are not supposed to override a method then you are
either not allowed to because of good reasons or then it is a design
flaw, and this has nothing to do with the language being used.
You should now just put up a simple, yet maintainable solution for
these questions, without tinkering a lot around, building wrapper
objects (you don't call this "good fractionizing", are you?) or
thelike. And this is just a start of examples, that I really prefer
forgetting.
And anyway, if the architectural possibilities of C++ would be as
large as the ObjC ones, would we then pay the penalty of this
dynamic-dynamic method binding? Are we all just plain stupid?
Every languages has advantages and disadvantages, so every language has
areas where it is stronger than the other, does this mean it is a
better language per se? I do not think so... Don't get me wrong, I
prefer ObjC over C++ as much as you do, but I also believe that bashing
other languages is completely superfluous and counterproductive.
C++ is faster, ObjC is more oo. One leads to faster programs, the
other to more elegant designs.
It's easy to use common stereotypes, but it does not mean a lot...
also you are aware that there exist many design patterns which are
used when programming in ObjC, aren't you!? You will even find
concrete references to NeXT software in Gamma's book.
I said "…a huge tinkering with, in other languages not needed, design
patterns". I didn't say, there are no design patterns for ObjC. But
the more restrictive/less oo a language is, the more often you have
typical cases, where you have to circumvent the restriction with a
solution, proposed by a design pattern.
Sorry, I misread this one then.
And BTW the quality of a design and/or code is much more influenced
by the knowledge and experience of its author than the language of >
choice.
Of course, if you give to a very bad designer ObjC as a tool and a
very good designer C++, it might even happen, that the C++ design will
be better. The problem is, that I even think, that this is the biggest
problem of all: Most people are not conscious, that when they design,
they apply specific restrictions. Restrictions, that were necessary
with the language, they used before, but are not any more there with
e. g. ObjC. Removing these habits/restrictions in my mind took me much
more time, than learning the language itself.
A good C++ designer will come up with better solutions than a bad ObjC
designer, if not then something is wrong as it is not the language
which defines the (potential) quality of a design.
BTW every language has pros and cons, even ObjC ...
I really fail to see why the argument of maintainability always pops
up in this context, I could show you really ugly ObjC code which is
everything but definitely not maintainable...
Has anybody said, that you can't abuse ObjC? Has anybody said, that
using ObjC automatically makes you a great and unbeatable
designer/programmer?
It has been said that "C++ is evil and should be buried at midnight
under a full moon in an abandoned graveyard. And best be forgotten as
well" and that it basically needs a very good C++ designer to compete
against a very bad ObjC designer.
But as an experienced ObjC architect, one can come up with a much more
fractionized design than with other languages. And fractionizing means
maintainability.
Computer languages are not religions, they are tools,
Exactly. And they are different. It's not just always the same tool
with a different name.
Exactly! And I am glad that I can use different tools for different
purposes.
so use them or don't if you have the choice,
Exactly.
I really do not believe that this kind of attitude helps getting more
(new) people attracted to GNUstep and/or Objective-C.
You are the first, who sais, that we have to say, that C++ is great or
at least as great as ObjC, in order to attract more people to gnustep.
Others have been talking about killer apps or completing the
libraries. Well it's a new proposition. Lets talk about it.
I don't think, we will attract a lot of programmers, by hyping C++,
are we? But I think, having ObjC++ would help attract some people. And
now we're back at the original thread.
I did not say that, don't put words in my mouth.
-Phil
--
Philippe C.D. Robert
http://www.nice.ch/~phip
- Re: GWorkspace.app Feature Request-- Tabbed Shelf, (continued)
- Re: GWorkspace.app Feature Request-- Tabbed Shelf, Fred Kiefer, 2003/06/26
- Re: GWorkspace.app Feature Request-- Tabbed Shelf, Nicolas Roard, 2003/06/26
- Re: GWorkspace.app Feature Request-- Tabbed Shelf, Enrico Sersale, 2003/06/26
- Re: GWorkspace.app Feature Request-- Tabbed Shelf, Charles Philip Chan, 2003/06/26
- Re: GWorkspace.app Feature Request-- Tabbed Shelf, Alex Perez, 2003/06/27
- Re: GWorkspace.app Feature Request-- Tabbed Shelf, Martin Brecher, 2003/06/27
- Re: GWorkspace.app Feature Request-- Tabbed Shelf, Nicolas Roard, 2003/06/27
- Re: GWorkspace.app Feature Request-- Tabbed Shelf, Fabien VALLON, 2003/06/27
- Re: of applications for gnustep...,
Philippe C . D . Robert <=
- Re: of applications for gnustep..., Philip Mötteli, 2003/06/15
- Re: of applications for gnustep..., Philippe C . D . Robert, 2003/06/16
- Re: of applications for gnustep..., Banlu Kemiyatorn, 2003/06/17
- Re: of applications for gnustep..., Eric Christopherson, 2003/06/14
RE: of applications for gnustep..., Mondragon, Ian, 2003/06/13
Re: of applications for gnustep..., MJ Ray, 2003/06/14
of applications for gnustep..., Richard Stonehouse, 2003/06/16