comp.lang.ada
 help / color / mirror / Atom feed
From: Georg Bauhaus <rm.dash-bauhaus@futureapps.de>
Subject: Re: Ada OOP alternatives?
Date: Fri, 25 Jul 2008 18:24:26 +0200
Date: 2008-07-25T18:24:26+02:00	[thread overview]
Message-ID: <4889fe3a$0$18828$9b4e6d93@newsspool2.arcor-online.net> (raw)
In-Reply-To: <en861ln1rnyi$.1je4v1x4rs1ce.dlg@40tude.net>

Dmitry A. Kazakov schrieb:
> On Fri, 25 Jul 2008 10:47:49 +0200, Georg Bauhaus wrote:
> 
> [...] 
>> Suppose you try to use an IDE in place of "separate",
>> to hide away the details of Special_Case. Then the dependences
>> on the with'ed package Ada.Text_IO and on All_Kinds_of_Things_Neccessary
>> will have to be listed for the entire package.
> 
> Yes, but it would not change dependencies.

Yes, separate units can change the dependences of a package
body. E.g., in a good many cases, a package body can be compiled
without the separate unit. (It can be compiled without
a child package, too).

When the separate unit depends on a yet-to-be written/delivered
package, the parent body is not affected.  You cannot achieve this
kind of compilation advantage when you put the separate subprogram
into the parent body instead. (Not different from a child.)


> Better, there should be a "without" clause/pragma (:-))

:-)


> So, yes, an ADT, even if it is a singleton today.

For what?  I think that language theorists have ways to
associate a synthetic OO type with a singleton package
without loss.


>  Only objects should have states.

Yes, only objects can have states. I am assuming you mean that every
variable object of a scope other than the scope of an innermost
subprogram is evilly global?


> Global variables is
> a no-no. There cannot be stateful procedures otherwise than impure, with
> global variables.

When the "global" variable cannot be manipulated by
anything besides a visible procedure, this statement
is false.

private
package Parent.Singleton is
    procedure Bump(Item: Some_Type);
end;


I see you disagree with state variables hidden in singleton package
bodies. I claim that passing them around instead has potential for
creating spaghetti. Plus it requires a visible, private type
and a way to enforce only one object.

The weekend is near, I'll go for a walk if you don't mind.


--
Georg Bauhaus
Y A Time Drain  http://www.9toX.de



  reply	other threads:[~2008-07-25 16:24 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-15 20:38 Ada OOP alternatives? raould
2008-07-16  0:15 ` Robert A Duff
2008-07-16  6:33   ` Georg Bauhaus
2008-07-16  9:54     ` Alex R. Mosteo
2008-07-16 13:03       ` Dmitry A. Kazakov
2008-07-16 14:07       ` Robert A Duff
2008-07-16 18:11         ` (see below)
2008-07-17  0:05           ` Robert A Duff
2008-07-17  0:43             ` (see below)
2008-07-17  1:36               ` Robert A Duff
2008-07-17 11:07                 ` (see below)
2008-07-17 16:45                   ` Robert A Duff
2008-07-17 12:00                 ` Dmitry A. Kazakov
2008-07-17 16:50                   ` Robert A Duff
2008-07-17 18:56                     ` Dmitry A. Kazakov
2008-07-18 12:54                       ` Robert A Duff
2008-07-18 13:36                         ` Dmitry A. Kazakov
2008-07-17 23:27                 ` Randy Brukardt
2008-07-18 12:45                   ` Robert A Duff
2008-07-18 23:22                     ` Randy Brukardt
2008-07-22 20:32                 ` Adam Beneschan
2008-07-22 22:18                   ` Ludovic Brenta
2008-07-23  9:25                     ` Alex R. Mosteo
2008-07-22 23:35                   ` Randy Brukardt
2008-07-23  7:56                   ` Dmitry A. Kazakov
2008-07-23 21:04                     ` Robert A Duff
2008-07-24  7:07                       ` stefan-lucks
     [not found]                       ` <5ob7w7usrc74$.kms2e1vqs4k0.dlg@40tude.net>
     [not found]                         ` <48883529$0$18826$9b4e6d93@newsspool2.arcor-online.net>
     [not found]                           ` <ygdmhl22lzh4$.1dx98hja6p2o6.dlg@40tude.net>
     [not found]                             ` <48883f41$0$18829$9b4e6d93@newsspool2.arcor-online.net>
     [not found]                               ` <6i1s0y8eeka.121ek9qcgunha$.dlg@40tude.net>
     [not found]                                 ` <48885757$0$18818$9b4e6d93@newsspool2.arcor-online.net>
2008-07-24 12:48                                   ` Dmitry A. Kazakov
2008-07-25  8:47                                     ` Georg Bauhaus
2008-07-25 13:28                                       ` Dmitry A. Kazakov
2008-07-25 16:24                                         ` Georg Bauhaus [this message]
2008-07-25 17:55                                           ` Dmitry A. Kazakov
2008-07-26  5:05                   ` Jeff Koftinoff
2008-07-16 14:03     ` Robert A Duff
2008-07-16 14:29       ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox