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
. @ .
next prev parent 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