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: border2.nntp.dca1.giganews.com!nntp.giganews.com!newspeer1.nac.net!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!news.stack.nl!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: GNAT GPL is not shareware Date: Thu, 8 Jan 2015 13:30:28 +0100 Organization: cbb software GmbH Message-ID: <8ryfky4awox2$.q2gfw4pvsgau.dlg@40tude.net> References: <87bnmetex4.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: mailbox@dmitry-kazakov.de NNTP-Posting-Host: F0bZVcKBguFJO8b9hCfgbw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: number.nntp.giganews.com comp.lang.ada:191785 Date: 2015-01-08T13:30:28+01:00 List-Id: On Thu, 08 Jan 2015 11:55:09 +0100, G.B. wrote: > 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. Prolog has nothing to do with DB, except that, Randy's statement fully apply to Prolog: anything done in Prolog that could have been done better without Prolog. > 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. Relational algebra (RA) can be implemented in Ada. No problem, except issues with generics. You cannot easily do: generic type Tuple_Element_Array is (Positive range <>) of private; package Relational is with Tuple_Element_Array'Element_Type (N) to denote N'th type. > 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." This is not relational. Relational algebra does not deploy universally qualified expression. You need a set (table) to search though. Once you have it, it is a big question whether relational operations would be useful or could be implemented at all. There are quite few things which are good mapped onto relations and the corresponding data structures backing them, e.g. B-trees. A simple counterexample is spatial neighbour search (kD-tree). > 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. There are many bad-to-destructive technologies used everywhere. E.g. AdaCore's GNAT uses XML, Python. At least RA could have some application areas. XML and Python have none. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de