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=unavailable 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!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Ada package registry? Date: Fri, 5 Feb 2016 09:59:53 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <02241ec4-0f95-4f63-9abc-092f167eb59e@googlegroups.com> <56af17b7$0$301$14726298@news.sunsite.dk> <56b06eb8$0$301$14726298@news.sunsite.dk> <1454483747.2785.135.camel@obry.net> NNTP-Posting-Host: bqgfK7NL3xTHnr0WRaLl4g.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:29355 Date: 2016-02-05T09:59:53+01:00 List-Id: On 04/02/2016 22:09, Randy Brukardt wrote: > "Björn Lundin" wrote in message > news:n8vvfk$ml3$1@dont-email.me... >> On 2016-02-03 23:11, Randy Brukardt wrote: > .... >> I note that you do not mention working with relation databases. >> If you work with them, it's hard to avoid c-bindings . > > I personally think databases are WAAAAY overused. Yes > For a lot of projects, > some sort of Ada persistent storage is a better solution. The problem in the > past has been that such storage couldn't be abstracted very well, so one > typically has built something custom. Ada 2012 has enough syntactic sugar > that persistent storage libraries (like containers) should be reasonable to > construct abstract systems that are still reasonably easy to read and write. Well, I disagree. Ada still lacks some key features to have types like relational tables declared. There is no way you could do that even with generics (which have no use for a persistent storage anyway). But even with generics you cannot do: generic type Column_1 is private; type Column_2 is private; ... type Column_n is private; For dealing with relational algebra you need introspection and containers of any-non-limited type. > (The reason that we adopted the generalized reference feature that we did is > because of the ability to use it to manage persistence -- in particular, to > be able to figure out when the in-memory copy can be freed and written to > the backing store.) That is not enough. You need references with a notification upon dereferencing. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de