comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: Why .ads as well as .adb?
Date: Wed, 5 Jun 2019 02:04:18 -0700 (PDT)
Date: 2019-06-05T02:04:18-07:00	[thread overview]
Message-ID: <89abdd73-28ff-46ec-b77e-b8324d496d9c@googlegroups.com> (raw)
In-Reply-To: <qd5du6$187s$1@gioia.aioe.org>

> > So what exactly cannot be deduced?
> 
> The class.

What if I don't need the virtual "class" and I'm interested in the single instance only? The one that I wrote?
I'd argue this is the most frequent case.

> > Please provide some challenging example.
> 
> Let x be 1. Deduce the set it belongs to.
> 
>     procedure Foo is
>     begin
>        X := 1; -- What are the type of X, 1,
>     end Foo;

This is not a complete code, exactly because the type of X is not known.
But if you declare X so that it is visible where Foo is, then the information is complete and the spec can be generated (which also means it's not needed).

It was stated at the beginning of this discussion that there are languages that do it. Arguing that it cannot be done is simply not convincing - just look at languages where it is already done.

For example - how would your example look in Java?

> To make programmer's life a bit easier?

Isn't it the most important purpose of having programming languages at all?
Do you want to convince me that the purpose of Ada is to make the programmer's life more difficult? Then, I can tell you, there are countless numbers of beginners who are already convinced that this is actually the case.

> That does not change anything in the nature of declarations. They are 
> semantically separate and the programming language should keep this 
> distinction clear.

But we still don't know why it should do it. We know that Ada does (well, only pretends to, I can still mix everything), but we don't know whether this distinction is worth having, especially in the context of experiences gained from using other languages that don't have it.

> You mean I have that much influence on designers of C/C++ software

If you are designing C/C++ software, then I hope so.

I disagree with your argument that in Ada one can have separate *.adb files for different platforms, whereas in C++ one uses #ifdefs. This is just wrong.

> You are asking religious questions, why people keep on doing bad things?

(Lack of) Education might be the answer.

But note that lack of education is also the reason for people to stay unaware of Ada. So we have a choice: educate people to write good C++ or educate people to write Ada.

But choice is a burden. Right? :-)

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


  reply	other threads:[~2019-06-05  9:04 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 [this message]
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
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