comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Derived private interface
Date: Thu, 11 Aug 2011 23:52:13 -0500
Date: 2011-08-11T23:52:13-05:00	[thread overview]
Message-ID: <j22bi2$547$1@munin.nbi.dk> (raw)
In-Reply-To: 1luxw3i4h9z8e$.7a8ee3cf99u2.dlg@40tude.net

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:1luxw3i4h9z8e$.7a8ee3cf99u2.dlg@40tude.net...
> On Wed, 10 Aug 2011 16:56:00 -0500, Randy Brukardt wrote:
>
>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
>> news:1bs0xoar40rx.6yb23bgkfrew.dlg@40tude.net...
>
>>> In reality
>>> there are many dispatching calls and many class-wide operations (for 
>>> which
>>> there is no typed procedural equivalent).
>>
>> Reality? The reality is in the web server interface I was describing 
>> there
>> was only one such point of dispatch, and only a single interface to 
>> dispatch
>> to. It's clearly a special case, but one that is pretty common in the
>> systems I've worked on.
>
> The problem is that starting a project without OO, you have to gamble on
> whether this indeed is a special case and will remain special.
>
> This is called fragile design.

No, this is called "agile development"! There is no circumstance where a 
designer can possibly predict all possible ways their project is going to 
evolve. It's silly to try.

It doesn't matter how you design your interfaces -- you're going to have to 
change them at some point. And I've never seen any difference in the amount 
of work in a OOP design. If anything, the OOP designs are harder to 
modify -- adding a new interface to the ARM formatter or the Claw Builder 
takes a long time and requires inserting a lot of similar code in a number 
of packages. I've rarely seen that sort of behavior with a purely procedural 
design (probably because ad-hoc sharing of code is much easier in a 
procedural design).

I could imagine that there could exist some extremely fancy tools for 
creating the common structures of all of those "implementations" of the new 
interfaces automatically -- but I'm not aware of any such thing for Ada --  
and in any case, I wouldn't have one (I only use Janus/Ada tools for 
[virtually all] programming here; have to do so in order to figure out what 
needs to be improved).

                                   Randy.





  reply	other threads:[~2011-08-12  4:52 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-05  3:14 Derived private interface Rego, P.
2011-07-05  5:10 ` AdaMagica
2011-07-06  2:24   ` Rego, P.
2011-07-06  4:34   ` AdaMagica
2011-07-06  7:55     ` Georg Bauhaus
2011-07-06  8:30       ` AdaMagica
2011-07-06 12:59         ` Georg Bauhaus
2011-07-06 13:23           ` AdaMagica
2011-07-06 19:06             ` Randy Brukardt
2011-07-06 13:28           ` Simon Wright
2011-07-06 19:45           ` Randy Brukardt
2011-07-06 22:05             ` Georg Bauhaus
2011-07-06 23:56               ` Adam Beneschan
2011-07-07 14:09                 ` Georg Bauhaus
2011-07-07 15:10                   ` Adam Beneschan
2011-07-08  4:29                     ` AdaMagica
2011-07-08 19:08                       ` Randy Brukardt
2011-07-08 19:12                     ` Randy Brukardt
2011-07-07 15:19                   ` Georg Bauhaus
2011-07-07 10:37         ` Stephen Leake
2011-07-07 13:18           ` Georg Bauhaus
2011-07-08 19:23             ` Randy Brukardt
2011-07-08 21:41               ` Jeffrey Carter
2011-07-09  6:14                 ` Dmitry A. Kazakov
2011-07-22 22:59                 ` Randy Brukardt
2011-07-23  7:30                   ` Jeffrey Carter
2011-07-23  9:29                     ` Maciej Sobczak
2011-07-23 10:07                     ` Dmitry A. Kazakov
2011-07-26 21:04                     ` Randy Brukardt
2011-07-26 23:43                       ` Jeffrey Carter
2011-07-27 23:56                         ` Randy Brukardt
2011-07-28  0:18                           ` Jeffrey Carter
2011-07-28 10:06                         ` Maciej Sobczak
2011-07-28 23:24                           ` Randy Brukardt
2011-07-29  6:45                             ` Simon Wright
2011-07-30  0:04                               ` Randy Brukardt
2011-07-30  6:32                                 ` Simon Wright
2011-08-01  9:30                                   ` Alex R. Mosteo
2011-08-01 10:12                                     ` Dmitry A. Kazakov
2011-08-01 21:56                                       ` Randy Brukardt
2011-08-02 10:03                                         ` Dmitry A. Kazakov
2011-08-02 21:16                                           ` Randy Brukardt
2011-08-03  9:01                                             ` Dmitry A. Kazakov
2011-08-03 20:16                                               ` Randy Brukardt
2011-08-04  8:15                                                 ` Dmitry A. Kazakov
2011-08-09 21:10                             ` Maciej Sobczak
2011-08-09 21:35                               ` Randy Brukardt
2011-08-10  9:11                                 ` Dmitry A. Kazakov
2011-08-10 21:56                                   ` Randy Brukardt
2011-08-11  8:07                                     ` Dmitry A. Kazakov
2011-08-12  4:52                                       ` Randy Brukardt [this message]
2011-08-12  8:54                                         ` Dmitry A. Kazakov
2011-08-10 10:07                                 ` Maciej Sobczak
2011-08-10 11:26                                   ` Georg Bauhaus
2011-08-10 22:27                                     ` Randy Brukardt
2011-08-10 22:21                                   ` Randy Brukardt
2011-08-11 13:50                                     ` Maciej Sobczak
2011-08-12  4:43                                       ` Randy Brukardt
2011-08-12  7:00                                         ` Maciej Sobczak
2011-08-12 21:59                                           ` Randy Brukardt
2011-07-06 15:06       ` Adam Beneschan
2011-07-06 16:36       ` Dmitry A. Kazakov
2011-07-06 19:20       ` Randy Brukardt
replies disabled

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