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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: "G.B." Newsgroups: comp.lang.ada Subject: Re: GNAT GPL is not shareware Date: Thu, 08 Jan 2015 11:55:09 +0100 Organization: A noiseless patient Spider Message-ID: References: <87bnmetex4.fsf@ludovic-brenta.org> <87lhlirpk0.fsf@ludovic-brenta.org> <79f3eff7-2b45-40ae-af94-fa9a17426d82@googlegroups.com> <87bnmd8mg2.fsf@ixod.org> <19cf9bc2-f8b9-4735-b427-7b070dda59da@googlegroups.com> <1otenmcbgnvlt$.dn9361nl2jm8$.dlg@40tude.net> Reply-To: nonlegitur@futureapps.de Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Thu, 8 Jan 2015 10:54:40 +0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="b96887e80893c84a90c3007226ca0d1c"; logging-data="14685"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18dj75WkinstlBATvQ/bEGdal0TJF/vUVs=" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 In-Reply-To: <1otenmcbgnvlt$.dn9361nl2jm8$.dlg@40tude.net> Cancel-Lock: sha1:2c9WH8cuIf1J5FKCUfa3skkbL5E= Xref: news.eternal-september.org comp.lang.ada:24476 Date: 2015-01-08T11:55:09+01:00 List-Id: On 08.01.15 09:14, Dmitry A. Kazakov wrote: > On Wed, 7 Jan 2015 16:47:25 -0600, Randy Brukardt wrote: > >> I have yet to use *anything* that used a DB that could not have been done >> better without the DB. > > True. False, in general: As soon as you start talking truly relational, you'll either use Prolog-ish programs, which are DB programs. Or, in Ada, you'll use pointers or cursors, or symbols in anything else, and start reinventing everything that the full relational model provides for free. Using the GNAT repertoire in the compiler sources, this question is typical of thinking "relational": "List all Ada identifiers that are public in packages that are children of P0, provided that they are not of a pointer type." A standard RDBMS solution, while obvious, is perhaps inadequate for reasons of performance, specialization, Ada fanatism, etc. But it takes a political argument to deny that compilers do actually include those data structures and algorithms that the relational model has as built-ins. For a worldly, commercial case, Google's non-SQL hash table based "database" is a major failure for programs using more than indexed lists, as is demonstrated by the hugely successful addition of an RDB option that Google added to the same App Engine. And yes, SQL isn't perfect, and the type system of the relational model is much underused. And no, I do not now think that "relation" necessarily needs any more representationin the type system than maybe "if". Thanks to GNAT not being closed source shareware, we are able to consider the relational question above ;-)