From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Why .ads as well as .adb?
Date: Tue, 4 Jun 2019 17:28:55 -0500
Date: 2019-06-04T17:28:55-05:00 [thread overview]
Message-ID: <qd6rb8$hl7$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: f37f6f75-62d4-4152-917e-d666d67f6cb7@googlegroups.com
"Maciej Sobczak" <see.my.homepage@gmail.com> wrote in message
news:f37f6f75-62d4-4152-917e-d666d67f6cb7@googlegroups.com...
...
>> The gain is definition of the scope. C++ equivalent, which I would force
>> in each C++ programming guideline, would be:
>>
>> {
>> ... // Some code
>> {
>> int X;
>> X = 1;
>> ..
>> }
>> .. // Some code
>> }
>
>This is useful if there is a reason to not have X in the second "Some code"
>part.
>Especially if X is handling some resource. Otherwise there is no gain.
>Still (in both variants), C++ is more readable (the proportion of useful
>code to
>the whole is higher).
There's a lot more to readability than just the "proportion of useful code".
Indeed, it is rather important that delimiters be clear and not get lost in
the code. That's the main fault of C family syntax, critical closings get
lost (as it is a single skinny character, barely noticiable in most fonts);
it's hard to tell the difference between that and a blank line in the above.
(Remember that "some code" is likely to be a fairly large block with more {}
of it's own.) And C-family code with } on separate lines is a rarity -- most
of it is all smushed together (more like we'd write parens in Ada).
Ada strikes the critical balance between readability and consiseness. And it
pretty much is the only language where the language designers truly cared
about readability (not just in the syntax, but also in how the semantics
impacts readability), and designed the syntax with readability in mind. Most
language designers only pay a small amount of attention to readability and
just design the syntax as a vessel for their semantics. And the results show
it.
Indeed, the reason to choose Ada is the synergy between the syntax and
semantics. An conglomeration would not work as well: Ada syntax and C++
semantics, or C++ syntax and Ada semantics would both be substantially less
readable than Ada is.
Ada's syntax is not perfect, of course, but it is as close as has been
designed to date (at least of the many languages I know about). Particularly
the original Ada 83 part (I don't think we've always managed to add new
features in the best possible way).
Randy.
next prev parent reply other threads:[~2019-06-04 22:28 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 [this message]
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
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