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.
next prev parent 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