Java Performance/Python etc
Simon Bowring
pmmail@rpglink.com
Wed, 20 Sep 2000 12:40:11 +0100 (BST)
On Tue, 19 Sep 2000 10:54:16 -0700, Steve Lamb wrote:
Tut, tut, Steve, you really don't mind "laying in" when you're
half-informed at best! If there's one thing I really know about
it's programming languages!
Firstly, I'm sure you'll agree that the facilities in a language
are much more important than what they're called, though it helps
if the terminology is descriptive, and in Java this is mostly true,
and far, far more true than in C++. But python arguably has the best
terminology of the three.
As you point out "java bean" is a crap term. However it's not
really a language term at all, a java bean is simply a separately
packagable resuable component (which is a normal java class
with appropriate methods implemented to work with java's
excellent and simple component model). As you say, the term is
a vile cutesy name, but you incorreclty say a bean is java's
term for a class; it just isn't! Java classes are (unsurprisingly)
called "classes"! So, no reinvention of terms here!
One new innapropriate term does not constitute "a whole new
set of terms for concepts already defined!" C++ was *far* worse
for that!
> Well, what is a method? It is a function in the class. Member
>/function/. At least you have links back to the terminology of the past.
>Also C++ and other OO languages were jockeying for terminology.
The term "method" pre-dates java and C++, and is *the* standard
terminology used in OOP! It's used by all other OO languages
I'ved ever encountered, including Python(!), SmallTalk and Scheme.
So who reinvented what?
An OO programmer who doesn't understand the term "method", isn't an
OO Programmer, but an OO Programmer who doesn't understand the term
"member function", is simply not a C++ Programmer (C++ being a general
purpose programming language *allowing* OO constructs, as opposed to
Java, smalltalk etc which are "pure" OO languages)!
C++ has many stupid, reinvented and overloaded terms (like static
which has several completely unrelated separate specific meanings
dependent on the context!). The reason for this (and many other
dumb terms, "overloadings" and notations in C++ has been stated by
Soupstrap(sp?) as not being due to technical reasons, not even
being due to marketting reasons, but simply because introducing
new terms for new features slows down the standardisation process,
so they overload existing reserved words (like static) and other
symbols (like "0") instead! Not a great way to extend a
language! A different example of this is when Soupstrap wanted to
introduce a keyword "virtual" for pure virtual member functions,
instead you have to say: "void myVirtualFunction()=0;".
So in this context "=0" means "virtual" (i.e. that the implementation
of the method/member-function needs to be supplied by derived
classes). Hmmm - obvious!
Do you hear programmers saying "I won't look at C++ because of
stupid terminology? Rarely, so how come this is one of two major
reasons that you cite for not considering the language (bearing
in mind that this "terminology" reason is simply untrue, and
merely demonstrates how little you apparaently *know* about
java!)?
>I guarantee you "Member function" and "static" would not
>have gotten the same reaction!
LOL! Perhaps you or your room full of 20 (C/C++ background?)
programmers are too "parochial" to appreciate the stupidity of the
above C++ terms, or that they are shared by no other languages, or
that this language is alone in deviating from commonly used OO
terminology!? This seems especially "odd" to me since you
assert they also apparently know python which (like java) has
far saner and more "common" terminology than C++!
>That is the biggest problem, the terminology was dictated by /MARKETING/,
Bollocks as we say over here! A few of the later terms were probably
invented by marketting (not that you or I know which if any at all)
but none of the the core *language* terms were because the language
(originally called Oak at the time) was initially designed and
implemented by Sun techies for Sun techies (embedded systems
programmers like me!) and their original terminology (*all* of
which predated Oak/Java) survives intact to this day in Java!
BTW: Even the "Swing" library (marketting term only - no meaning
in the language itself) was dreamt up by one of the software
engineer's that designed and implemented this (second to none)
UI class library (I met him at a Sun jamboree once)!
Simon