comp.lang.ada
 help / color / mirror / Atom feed
From: Brad Moore <bmoore.ada@gmail.com>
Subject: Re: Why .ads as well as .adb?
Date: Fri, 7 Jun 2019 18:16:42 -0700 (PDT)
Date: 2019-06-07T18:16:42-07:00	[thread overview]
Message-ID: <cba691bd-6cfa-4fd4-af34-cd99af13eb8e@googlegroups.com> (raw)
In-Reply-To: <875zphvufc.fsf@nightsong.com>

On Friday, June 7, 2019 at 5:37:28 PM UTC-6, Paul Rubin wrote:
> Brad Moore <bmoore.ada@gmail.com> writes:
> > I think it is a big mistake of languages that encourage the
> > specification and implementation to be in the same source file, and
> > very surprised to see that anyone would be arguing for that.

I should clarify that I think it's a mistake (or at least a poor design choice) if the intent is for the language to be used for large scale systems with maintainability as a goal (write once - read many). Ada tries to be general enough for that purpose while also supporting writing in the small,
but some languages are designed for more specific purposes.

If a language is designed to be mainly something used for writing quick and dirty scripts, smaller programs, demos, prototyping, etc where maintainability is less a concern then maybe it makes sense to design the language for conciseness of expression, minimal specifications and perhaps simpler implementation for the compiler.

> 
> That seems like saying it's a mistake for math textbooks to be published
> as single volumes.  The text should instead be done in 2 volumes, with
> the statements of the theorems in the first volume, and the proofs in
> the second.  In practice I don't know of any math textbooks published
> that way.  There are some multi-volume ones, but they all still go:
> theorem, proof, theorem, proof.

The theorems and proofs still sound like they are separate even if together in the same book. The theorems are not interlaced in dribs and drabs amongst the proof. Maybe there are proofs that are organized that way, but I would think that would be the exception rather than the rule.

This feels like another apples and orange comparison, but I think what I am trying to say is more closer to buying a bookshelf from IKEA. The instructions are the interface specifications that tell me how to assemble their product. I don't need to see how they implemented their product. What types of trees were used for the wood, the how the boards were cut, the measurements of the cuts, the diameters, depths, and locations, of the screw holes, the type of veneer that was applied, how the veneer was produced, what type of glue they used to fasten the veneer, how long they let the glue dry, the types of metals used in the screws, and cabinet hardware, how the cabinet hardware was manufactured, etc. While this all might make for an interesting read in my leisure, when I am trying to get the shelf assembled, the last thing I want is to have to read through pages and pages of text to find the next instruction I need to follow. Chances are I'll end up missing an important step lost in the middle, and end up with way too many left over screws in the end, or have to take everything apart and start over.

Brad


  reply	other threads:[~2019-06-08  1:16 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 [this message]
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