From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public From: jhd@herold.franken.de (Joachim Durchholz) Subject: Re: OO, C++, and something much better! Date: 1997/01/21 Message-ID: <6PI998tV3RB@herold.franken.de>#1/1 X-Deja-AN: 211348883 references: newsgroups: comp.object,comp.lang.c++,comp.lang.ada,comp.lang.smalltalk,comp.lang.eiffel Date: 1997-01-21T00:00:00+00:00 List-Id: Alan wrote: > > If OO is about conceptual separation of code into independent modules, > > why should the modules be concerned about what somebody else gives them? > > Why should they manually check that the object is capable of the > > operations demanded when the compiler can? > > This is a non argument. Since someone must check, there is no difference in > principle whether that someone is the compiler or the run-time system. It's > an implemenation difference, not a difference in kind. Oh yes there is a difference. The compiler will catch all errors; the run- time system will miss some. In other words: I'd feel really embarrassed if the user ever saw a "message not understood" error. IMHO, bugs that can be found automatically should be found automatically. Each 2% failure probability that's taken out will make the total system more stable (remember a dozen 2% failure sources give a total failure probability of about 22%). So, dynamic typing has the disadvantage that it makes a set of compile- time checks impossible. The only issue worth discussing is wether this disadvantage is set off by added flexibility, or not. And the result of the discussion may well be different depending on circumstances - e.g. how much of the Smalltalk flexibility is actually due to the environment, not to dynamic typing? Besides, some aspects of static typing in an OO language aren't really settled yet. Don't take C++ design for the whole truth on static typing! C++ has a working type system, but not a well-designed one. Unfortunately, there is no consensus yet on how a well-designed OO type system should look like. In this light, it's no wonder that StrongTalk didn't succeed - I think that it was too far ahead of its time. I'm still waiting for an Algol 60 that shows how to do static typing well. As soon as such a beast exists it will be sensible to build a Smalltalk- like system with class browsers and minimal edit-test cycles, or to extend Smalltalk with static typing. > Just how do you do an AspectAdaptor or > PluggableAdaptor in Java? I'm not familiar with the patterns used in current Smalltalk systems. What do these adapters do? And what are their basic principles of operation? Regards, -Joachim -- Joachim Durchholz, Hans-Herold-Str. 25, D-91074 Herzogenaurach, GERMANY