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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,158ce2376534c35d X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Derived private interface Date: Thu, 11 Aug 2011 23:43:20 -0500 Organization: Jacob Sparre Andersen Research & Innovation Message-ID: References: <27656578-65aa-48b9-9f89-4ebd4e0cb02a@glegroupsg2000goo.googlegroups.com> <128d8eb5-1cc6-47e3-a09b-b53a5ef289ce@m10g2000yqd.googlegroups.com> <4e141501$0$6629$9b4e6d93@newsspool2.arcor-online.net> <4b2728fc-6127-45d8-a314-9fc491701c26@g12g2000yqd.googlegroups.com> <82vcve4bqx.fsf@stephe-leake.org> <4e15b223$0$6541$9b4e6d93@newsspool4.arcor-online.net> <4a4f185d-5268-4d73-a5df-8149bd117e0f@h9g2000vbr.googlegroups.com> NNTP-Posting-Host: static-69-95-181-76.mad.choiceone.net X-Trace: munin.nbi.dk 1313124204 4928 69.95.181.76 (12 Aug 2011 04:43:24 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Fri, 12 Aug 2011 04:43:24 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6109 Path: g2news1.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!feed.ac-versailles.fr!news.ecp.fr!news.jacob-sparre.dk!pnx.dk!jacob-sparre.dk!ada-dk.org!.POSTED!not-for-mail Xref: g2news1.google.com comp.lang.ada:20544 Date: 2011-08-11T23:43:20-05:00 List-Id: "Maciej Sobczak" wrote in message news:f44209e4-8677-4995-8b17-d641bae2b698@hl8g2000vbb.googlegroups.com... >On Aug 11, 12:21 am, "Randy Brukardt" wrote: > >> But adding new modules without somehow modifying the web server is simply >> not allowed in the problem statement that I had (that is, all code that >> the >> server can execute is statically compiled into the web server). > >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, but they aren't practical for a no-budget project (certificates and encryption aren't cheap). >The advantage of OOP is in its run-time nature. That is, the registry >can be modified at run-time according to anything from startup options >to real-time data input. Modifying a giant case statement (or is it a >chain of ifs? after all, URLs are not discrete in the Ada sense) might >be acceptable between deployment cycles of the given system, but >making this structure dependent on some run-time values would be too >much. Well, actually, the URL mapping (URL to key mapping is stored in a data table - of ordinary records) was intended to be a run-time data structure. I never actually implemented run-time changes for that table, but it would be simple to do so. The "requirement" that I started with is that no code outside of that known to the web server could be executed, but of course that has nothing to do with the mapping of the URLs to those existing routines. Adding a new module requires modifying the case statement, but that would require modifying a with clause and recompiling in any case. Don't see any difference there. Anyway, I think I've said everything on this topic that needs to be said. There is no one right answer to program design challenges -- only that no design at all is wrong! Randy.