comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Derived private interface
Date: Fri, 12 Aug 2011 16:59:54 -0500
Date: 2011-08-12T16:59:54-05:00	[thread overview]
Message-ID: <j247ot$6da$1@munin.nbi.dk> (raw)
In-Reply-To: 970ef0a5-da4b-4463-b411-aa3ef116fad1@f7g2000vba.googlegroups.com

"Maciej Sobczak" <see.my.homepage@gmail.com> wrote in message 
news:970ef0a5-da4b-4463-b411-aa3ef116fad1@f7g2000vba.googlegroups.com...
On Aug 12, 6:43 am, "Randy Brukardt" <ra...@rrsoftware.com> wrote:

>> >I see - but isn't it a special case?
>>
>> Yes, in today's world, safety and security are surely a special case -- 
>> hardly anyone seems to care, and thus they get PWNed all the time.
>>
>> Yes, of course there are ways to enforce safety and security in a dynamic
>> loading environment,
>
>Never in my posts I have mentioned dynamic loading of anything (in
>fact, I have always stressed that the whole program can be compiled
>and linked statically) and I think that your focus on safety and
>security in this discussion is artificial.

Your previous message had expounded on the advantages of run-time management 
of modules. I had assumed that you suddenly were talking about dynamic 
module management, because I had already shown (twice in fact) that there 
was no advantage in this system to run-time management (or any other OOP 
characteristics) in terms of effort to add new interfaces.

Perhaps you've missed a critical point: static binding should always be 
strongly preferred to any sort of run-time management, because it is many 
times easier to analyze statically (both by tools and by the programmer), 
it's easier to debug (because the run-time management doesn't interfere with 
determining what the system is actually doing), and it typically performs 
better (because compilers can do better optimizations, although this effect 
is usually marginal and is far below the importance of the first two). These 
are critical to program maintenance, especially when having to understand 
existing code (even code you wrote when you come back to it 10 years later).

There has to be a strong reason for using dynamic module management:

(1) The interface is complex and interrelated, so that dynamic dispatching 
actually buys something beyond confusion (for instance, the "action 
routines" of Claw for handling events);
(2) Dynamic loading/reconfiguration of capabilities has to be supported;
(3) Following OOP religion even when it demonstratably doesn't help is more 
important than the benefits of a fully static design (a so-called 
"object-based design").

I'd previously shown repeatedly that (1) did not apply to the web server 
problem (at least with the design we selected); thus I had assumed that 
you'd veered off into discussing (2) -- because otherwise you are simply 
following (3) and there is no point in discussing anything with a religious 
fanatic (of any stripe) -- they don't really care about facts.

So at this point it is clear that we really have nothing to talk about. 
Sorry.

                                        Randy.





  reply	other threads:[~2011-08-12 21:59 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
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 [this message]
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