comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: Trivia: Ada packages are great!
Date: Tue, 6 Nov 2018 23:02:16 -0800 (PST)
Date: 2018-11-06T23:02:16-08:00	[thread overview]
Message-ID: <05f9abae-3fc8-4d71-a12c-26b58a434a56@googlegroups.com> (raw)
In-Reply-To: <fc9bb31b-397c-4706-8c0c-f72d51d7d653@googlegroups.com>

> But 'extension' through child package, present in the filename, is 'self documenting' in Ada. C++ namespace can be anywhere regardless of file naming... often very confusing about what is tied to what. At directory level you cannot figure out the design layout. In Ada you can get pretty much the whole picture just from that inspection. This is huge for reasoning.

Except that it is not enforced by the language. It is a (still not obligatory!) convention used with the GNAT compiler, which is the convention that I appreciate, but it is not the achievement of Ada as the language. I have seen a relatively large Ada project (several thousand files), where for historical reasons file names have been forced to be 8 characters[*], which obviously did not have anything to do with package names that they specified or implemented. Reasoning in such a mess is just impossible.

[*] See the GNAT standard package files, too. Do you know the purpose of file that has name a-tiinau.ads? Or s-atacco.ads? Can you figure out the hierarchy from such names? There are almost 700 such files in my installation, all in a single directory.

The fact that you can *voluntarily* keep order in your Ada files is great, but remember that it is not Ada vs. C++ thing. There are enough good and bad examples in both.

-- 
Maciej Sobczak * http://www.inspirel.com


  reply	other threads:[~2018-11-07  7:02 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-02 21:11 Trivia: Ada packages are great! Olivier Henley
2018-11-05 10:39 ` Maciej Sobczak
2018-11-05 12:39   ` Björn Lundin
2018-11-06  8:52     ` Maciej Sobczak
2018-11-06 13:02       ` Olivier Henley
2018-11-07  7:02         ` Maciej Sobczak [this message]
2018-11-07  8:55           ` G. B.
2018-11-07 12:40           ` Olivier Henley
2018-11-08 12:35             ` Maciej Sobczak
2018-11-08 13:12               ` Olivier Henley
2018-11-09  2:15               ` gautier_niouzes
2018-11-07  8:53       ` Björn Lundin
2018-11-07 10:56         ` Maciej Sobczak
2018-11-07 18:27           ` G. B.
2018-11-08 12:20             ` Maciej Sobczak
2018-11-09  5:45               ` G. B.
2018-11-09  8:24                 ` Maciej Sobczak
2018-11-09  9:03                   ` Dmitry A. Kazakov
2018-11-12  6:33                   ` G. B.
2018-11-05 17:20   ` Olivier Henley
2018-11-05 17:56   ` Olivier Henley
2018-11-05 18:07     ` Simon Wright
2018-11-05 19:37       ` Jeffrey R. Carter
2018-11-05 20:04         ` Olivier Henley
2018-11-05 20:12         ` Olivier Henley
2018-11-05 18:29     ` Olivier Henley
2018-11-05 20:03     ` Olivier Henley
2018-11-05 20:40     ` Olivier Henley
2018-11-08  4:46 ` gautier_niouzes
2018-11-08 12:28   ` Maciej Sobczak
2018-11-08 13:27     ` Olivier Henley
2018-11-08 14:44     ` gautier_niouzes
2018-11-08 15:01       ` Olivier Henley
2018-11-08 16:14         ` Simon Wright
2018-11-08 16:28           ` Olivier Henley
2018-11-11  6:49             ` Randy Brukardt
2018-11-11  7:01     ` Randy Brukardt
2018-11-11  7:01   ` Randy Brukardt
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox