comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: Trivia: Ada packages are great!
Date: Wed, 7 Nov 2018 02:56:53 -0800 (PST)
Date: 2018-11-07T02:56:53-08:00	[thread overview]
Message-ID: <ee1a8572-d5a2-4120-9dad-57aab0a10514@googlegroups.com> (raw)
In-Reply-To: <pru95n$qjo$1@dont-email.me>

> > No. You need to edit the package spec to add subprogram declarations and then edit the body to introduce separate implementation and than, if you are not yet tired already, add new file to the project. Sounds like the worst option of all.
> 
> Is that _really_ an obstacle?

Well, depends on what you are trying to prove. :-)

Separate subprograms help (or obstruct) in configuration management by allowing smaller granularity of content. That is, if you need to modify a single subprogram, then only that single subprogram's file has its version changed. This is a language feature that is not needed in C and C++, because these languages do not couple logical and physical designs in the first place. That is, C and C++ do not need any special keyword to allow you to have some function in a separate file.

Separate subprograms in Ada are not helping when integrating code from a different codebase, because they do not reduce the number of files that need to be modified (and therefore versioned) when code is moved between projects. Contrary to this, C and C++ allow such moves with minimal number of file modifications - in particular, no existing file needs to be modified in order to add a new function to the existing namespace.

So, when discussing the ease of integrating code from distinct codebases (and that was the context of this discussion so far), separate is neither an obstacle, nor a feature.

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

  reply	other threads:[~2018-11-07 10:56 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
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 [this message]
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