comp.lang.ada
 help / color / mirror / Atom feed
From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: Why .ads as well as .adb?
Date: Mon, 10 Jun 2019 00:15:36 +0300
Date: 2019-06-10T00:15:36+03:00	[thread overview]
Message-ID: <gm5b7mFfj1bU1@mid.individual.net> (raw)
In-Reply-To: <561c766c-4f9c-432c-be9b-822dd9c3c8ba@googlegroups.com>

On 19-06-09 23:35 , John Perry wrote:
>  ...
> (2) I've read some very good arguments made in favor of separate
> specification files, but I don't understand why the conversation
> keeps coming around to "the specification file provides convenient
> documentation," or even, "if I want to see the specification from the
> implementation, I have to run a tool every time I want to see it, and
> that can be inconvenient." Those aren't just weak arguments; they're
> plainly false.
>
> When I want to know how Ada.Text_IO works, I don't look up the
> specification file.

I do, about half the time (the rest of the time I look it up in the RM).

> I don't even know where to find Ada.Text_IO on my
> system.

Your IDE (GPS) knows. And its not hard to find, either, once you figure 
out its file-name (with gnatkr).

> ... it's far more
> convenient to visit [1], which has a hyperlink to Ada.Text_IO, as
> well as lots of other things.

Sure the RM is often convenient, but it shows only the standard 
packages. Most of the packages in a non-trivial application will be 
application-specific.

> I imagine that [1] was generated by some software tool.

AIUI it was generated, but not from an Ada spec (.ads) file.

> Similar tools
> exist for other languages. Take a look at [2] to see what a nice job
> they can do -- a LOT nicer than [1].

Matter of opinion.

> If I click on
> BINARY_SEARCH_TREE, not only do I get the specification for
> BINARY_SEARCH_TREE a la [1], but I also get links to related
> specifications, such as COMPARABLE, TREE_ITERATION_CURSOR, and so
> forth. This is much, _much_ more helpful than the specification file
> by itself.

A good IDE will give you the same links.

> Some have suggested that the markup required to do this can make the
> source file unreadable.

The markup makes the file less readable, IMO. No markup is really 
required for getting nice views and cross-links -- it is enough to 
follow some simple conventions for locating descriptions (comments) 
close to the declarations they describe.

> Doxygen and javadoc markup aren't especially painful to read,
> either, and they do much the same thing.

I find them a little painful, though.

> Moreover, there's no need to invoke such a tool every time you want
> to see the specification, and thus no inconvenience at all.

While a program is being built, the specs of that program's specific 
packages change often, unlike the spec of standard packages like Text_IO.

> You
> generate the specification / documentation once and it ends up in a
> file that you can distribute just as easily as an .ads.





  The only time
> one has to invoke Doxygen, javadoc, etc. is if the exported objects
> change.
>
> The downside is that you *have* to remember to update the
> documentation -- something I usually do remember, but not always.
> That's what made me think that Ada's approach does offer an advantage
> here (see above).
>
> [1] http://www.ada-auth.org/standards/12rm/html/RM-TOC.html [2]
> https://www.eiffel.org/files/doc/static/19.05/libraries/base/index.html
>
>
-- 
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
       .      @       .

  reply	other threads:[~2019-06-09 21:15 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-02  0:48 Why .ads as well as .adb? John Perry
2019-06-02  5:42 ` J-P. Rosen
2019-06-02  6:39 ` Dmitry A. Kazakov
2019-06-03  7:35   ` Maciej Sobczak
2019-06-03  7:57     ` J-P. Rosen
2019-06-03 19:49       ` Keith Thompson
2019-06-04  8:03       ` Maciej Sobczak
2019-06-03  8:13     ` Dmitry A. Kazakov
2019-06-03 19:51       ` Keith Thompson
2019-06-03 20:18         ` Dmitry A. Kazakov
2019-06-04  8:24       ` Maciej Sobczak
2019-06-04  9:33         ` Dmitry A. Kazakov
2019-06-05  9:04           ` Maciej Sobczak
2019-06-05 12:48             ` Dmitry A. Kazakov
2019-06-05 17:12               ` G. B.
2019-06-05 18:50                 ` Optikos
2019-06-05 22:57                   ` Randy Brukardt
2019-06-04 22:28         ` Randy Brukardt
2019-06-05  8:28           ` Maciej Sobczak
2019-06-05  9:20             ` J-P. Rosen
2019-06-05  9:28               ` Paul Rubin
2019-06-05 10:11                 ` Niklas Holsti
2019-06-05 12:58                   ` Maciej Sobczak
2019-06-05 14:28                     ` Niklas Holsti
2019-06-06  7:34                       ` Maciej Sobczak
2019-06-06 19:51                         ` Keith Thompson
2019-06-06 20:27                           ` J-P. Rosen
2019-06-06 21:12                         ` Randy Brukardt
2019-06-06 21:17                         ` Randy Brukardt
2019-06-06 22:08                           ` Dennis Lee Bieber
2019-06-07  7:59                           ` Maciej Sobczak
2019-06-07 10:42                             ` alby.gamper
2019-06-07 16:59                               ` Dennis Lee Bieber
2019-06-07 14:10                             ` Brad Moore
2019-06-07 23:37                               ` Paul Rubin
2019-06-08  1:16                                 ` Brad Moore
2019-06-08  7:34                                   ` Simon Wright
2019-06-08 17:44                                 ` G.B.
2019-06-08 21:41                                 ` Keith Thompson
2019-06-09  0:40                                   ` Paul Rubin
2019-06-09 18:56                                     ` Keith Thompson
2019-06-09 20:35                                       ` John Perry
2019-06-09 21:15                                         ` Niklas Holsti [this message]
2019-06-09 22:37                                           ` John Perry
2019-06-10  9:01                                             ` Simon Wright
2019-06-10 13:15                                               ` Simon Wright
2019-06-10  9:22                                             ` Niklas Holsti
2019-06-09 21:37                                         ` Simon Wright
2019-06-09 22:40                                           ` John Perry
2019-06-10  9:07                                             ` Simon Wright
2019-06-09 21:46                                         ` Niklas Holsti
2019-06-10 17:11                                         ` Dennis Lee Bieber
2019-06-08  4:57                             ` Randy Brukardt
2019-06-08 23:57                               ` Optikos
2019-06-09  0:43                                 ` Paul Rubin
2019-06-10  8:17                               ` Maciej Sobczak
2019-06-10 19:10                                 ` G.B.
2019-06-10 22:07                                 ` Randy Brukardt
2019-06-11  0:32                                   ` Optikos
2019-06-11 15:39                                     ` Brad Moore
2019-06-11 16:14                                       ` John Perry
2019-06-11 16:46                                         ` Shark8
2019-06-11 19:29                                           ` John Perry
2019-06-14  6:12                                             ` Brad Moore
2019-06-14 21:51                                               ` John Perry
2019-06-14 16:29                                             ` djakoogler
2019-06-11 18:19                                         ` joakimds
2019-06-11 15:49                                   ` Jeffrey R. Carter
2019-06-07  7:36                       ` Niklas Holsti
2019-06-05 22:41                     ` Randy Brukardt
2019-06-06  3:34             ` Keith Thompson
2019-06-06  7:29               ` Maciej Sobczak
2019-06-06 15:30                 ` John Perry
2019-06-06 15:41                 ` Brad Moore
2019-06-06 19:42                 ` Keith Thompson
2019-06-06 16:37               ` Dennis Lee Bieber
2019-06-02  9:59 ` joakimds
2019-06-02 20:14 ` G.B.
2019-06-03 13:37 ` John Perry
2019-06-03 14:50   ` Niklas Holsti
2019-06-03 19:23     ` John Perry
2019-06-03 21:04       ` Niklas Holsti
2019-06-03 18:51   ` Lucretia
2019-06-03 19:32     ` John Perry
2019-06-03 17:00 ` Jeffrey R. Carter
2019-06-03 18:59   ` Lucretia
2019-06-03 19:29   ` John Perry
2019-06-03 20:00     ` Jeffrey R. Carter
replies disabled

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