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!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Teaching C/C++ from Ada perspective? Date: Wed, 4 Jul 2018 23:09:01 +0200 Organization: Aioe.org NNTP Server Message-ID: References: <856189aa-fa00-4960-929e-174f352310ad@googlegroups.com> <2718c8d4-5f35-4fd8-a1aa-1e60069a7a5d@googlegroups.com> <39fce60c-9f56-42fb-b679-fa08810b00ee@googlegroups.com> <3701bf07-89a5-4cb0-a704-5aebb589ca79@googlegroups.com> <2f5e4ce0-94e8-4b94-9da7-045ec90a9b22@googlegroups.com> <18554067-1382-4b43-a832-2d27aa5117d7@googlegroups.com> <8dc19505-b68a-403c-a164-f1de1864f3f1@googlegroups.com> <559657f8-bbf4-4a70-9449-f85bc98d6c6b@googlegroups.com> <590d4672-4aef-42a5-823c-57ccd291115a@googlegroups.com> <8de6b5ba-25ab-4d46-b80c-1544f43a9b05@googlegroups.com> NNTP-Posting-Host: 3CrKQyqWAJZHy6zYVP/kUg.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 X-Notice: Filtered by postfilter v. 0.8.3 Content-Language: en-US Xref: reader02.eternal-september.org comp.lang.ada:53623 Date: 2018-07-04T23:09:01+02:00 List-Id: On 2018-07-04 22:13, Maciej Sobczak wrote: >>> My claim that Ada and C++ compilers have the same challenges when it comes to handling the physical project structure holds. >> >> Yet Ada allows having a library of packages > > Yes, but that does not change anything in this regard. One reason is that AARM does not define the meaning of this concept. In some sense, the set of source files plays the role of a library. In other words, GNAT already implements the standard notion of the library in terms of source files. > > You can implement the same concept in some other way, for example with the use of relational database as a backend, but AARM still does not define the functionality of such library or why it would be any better. It might as well be as dumb as a plain set of files. Why should it? The language should merely offer a possibility to implement and maintain such a library in a reasonable and effective way. On top of that you can define "modified" a more intelligent than stupid "newer timestamp". > And ironically, for a large-scale system, I would not trust anything else than a dumb set of files. Huh, did you checked your file system recently? It is likely that a dumb set files sits on top something with caching, mirroring, journaling, transactions, versioning etc. You trust them but do not a library of precompiled units? >> Your examples are related to GNAT > > Which happens to be The Ada Compiler that potential users are going to use. > >> C++ on its part could not have a >> library. > > Wrong. Everything in the C++ standard is defined in terms of "as if", which means that as long as the required visible effects are supported, the underlying implementation can be anything. For multiple decades people failed to make precompiled headers working, many many people. If AdaCode had so much time and so many caffeinated workers, just 1% of those, then GNAT would have a library and everything else! -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de