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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: "G.B." Newsgroups: comp.lang.ada Subject: Re: Things that OO programming lacks Date: Tue, 18 Nov 2014 19:50:23 +0100 Organization: A noiseless patient Spider Message-ID: References: <10d9w.55626$8w1.22302@fx12.iad> <150er0b62wsh3$.1xabmp81w5kdw.dlg@40tude.net> <1azsoc77wjhmi$.1grmnnlq033tz.dlg@40tude.net> <5yzci4a8snfg.1dfsqjyvneeym$.dlg@40tude.net> <1dqj0bjtbadcq$.150sjuwku2zbk$.dlg@40tude.net> <55b6ald1m6ow$.1rho1th3fqrgm.dlg@40tude.net> Reply-To: nonlegitur@futureapps.de Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Tue, 18 Nov 2014 18:50:11 +0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="b96887e80893c84a90c3007226ca0d1c"; logging-data="26380"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+gV+lnQVyWOlyAQhbwgyBo6eU1f8p/JGY=" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 In-Reply-To: <55b6ald1m6ow$.1rho1th3fqrgm.dlg@40tude.net> Cancel-Lock: sha1:Z5HPSJhWyo73zS9cKUvJRPNaTwA= Xref: news.eternal-september.org comp.lang.ada:23524 Date: 2014-11-18T19:50:23+01:00 List-Id: On 18.11.14 14:42, Dmitry A. Kazakov wrote: > ... meaning is in the programmer and customer heads. Right, and meaning follows communication using languages like English and also programming formalisms. > Name them better. It's not just names, but also anything important in the programming situation. Co-existence of objects, in Ada and other languages, is not expressible well insofar as they have no dedicated language entities for co-existence in general. > Important things must have corresponding language > entities. E.g. objects, types, operations, modules etc. You must talk about > them, in the language. Precisely my point. > Your point was that object, types, operations, modules might be not enough > to maintain this mapping. Which would constitute a new paradigm. Yet, you > failed to present anything beyond objects, types, operations, modules. That was your judgment, while my perspective is above a formalism that confines your meaning, I think. And here you say it: > That is not a language term, so far. And unlikely it would. But OO is still lacking such terms, right? One way to find something is by extensional definition, starting at the level of a suitable metalanguage, and experimenting. Starting from a new paradigm would be quite a feat. >> Certainly every computation is Boolean valued operations if you reduce it >> to logic. > > Relation is a logical term. Which is why I preferred relationship, which is more open to new interpretation. >> But since for the reasons you named (when mentioning Post-Turing) >> we shy way from Boolean valued operations for everything, why not invent >> something that expresses what programmers need to known in order to make >> those answers? > > To which questions? To those listed so far. Variations of things, tiny or not: "Why did the effect of Obj_1's doings occur before those of Obj_2's? Are they not ordered here? Does Obj_4 respond to Event_B if user/input has arranged for Obj_2 to become alive?" (Some say, I think, that event aware object oriented systems are (worth) a new paradigm waiting to be formalized for the very reason that those FSMs and global variables are nasty, be they dressed as OO or not.) > I suppose you are confusing relationships between objects with > relationships between types and correctness statements. I don't think that time is involved in a relationship between types in general, or can I express that relationship in Ada OO types? There are cases where in Ada I can approximate order of types in time, so to speak, thanks to nesting: procedure Stage_0 is type T is ...; begin ... end Stage_0; procedure Stage_1 is type T is ...; begin ... end Stage_1; begin Stage_0; Stage_1; Due to the order of calls, it is now fairly certain that objects of type Stage_0.T all exist and "cease to exist" before any object of type Stage_1.T starts to exist. Is this conclusion(!) perfection of expressiveness already? I don't think so. I suppose I'm thinking merely in term of objects, not just OO-ish, but just objects that have identity, and any property, shared or emerging, that is derived from the formal properties of the objects, the program, as well as from the interpretation of (non-OO-)objects discussed by the people involved. So that the model developed during discussion can adequately be turned into program text, where adequacy requires modes of expression that aren't in the language yet.