Slightly OT: static typing
Richard A. O'Keefe
ok@REDACTED
Fri Oct 24 03:19:58 CEST 2003
Michael Hobbs asked about R.P.Gabriel's "Objects Have Failed".
I pointed out that reuse is actually very successful.
Joachim Durchholz <joachim.durchholz@REDACTED> replied:
Right, but this reuse isn't happening in an OO fashion... so,
reuse has failed /for OO/ (which is, after all, his point), and
has worked for the standard "structured programming" approach.
Reuse is working *in* OO languages; it's not clear to me that it makes any
practical sense to say that it "has failed /for OO/" when it is blatantly
working well *in* OO. It is very clear to me that reuse in R (one of my
examples) *DOES* depend on R's OO features.
While I personally loathe and detest Java (but less than half as much as
I loathe and detest C++) it would not have been possible to build up the
large library available for Java if the designers hadn't done _something_
right. The better (Smalltalk, Eiffel, CLOS, Dylan) and even the marginally
tolerable (Java) OO languages are at least workable structured programming
languages.
And while unit testing and "refactoring" are things that people have
been doing for 50 years, I don't believe that it is an accident that
SUnit and the Refactoring Browser were invented in and for Smalltalk.
(The SUnit idea has been applied to a bunch of other languages, but most
if not all of them OO to a greater or lesser degree.) Such tools definitely
make it easier to produce code that has been reused (RB) and is worth
reusing (SUnit).
This does actually bring us back to Erlang. Some of the things that
the better OO languages rely on which has these good results are actually
Lispy things. Smalltalk is really _very_ like Lisp in many ways. So is
Erlang. It's quite possible that the SUnit and RB ideas could be adapted
to Erlang in interesing ways.
More information about the erlang-questions
mailing list