comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Why .ads as well as .adb?
Date: Wed, 5 Jun 2019 14:48:23 +0200
Date: 2019-06-05T14:48:23+02:00	[thread overview]
Message-ID: <qd8dmm$qn9$1@gioia.aioe.org> (raw)
In-Reply-To: 89abdd73-28ff-46ec-b77e-b8324d496d9c@googlegroups.com

On 2019-06-05 11:04, Maciej Sobczak wrote:
>>> 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.

Class in mathematical sense, a set of certain structure. As for 
singleton class yes, it represents itself. But that is extremely rare 
and unrealistic. Would you never wanted to change anything? Once you 
urged to change anything then you do not have it singleton. You have 
some set of implementations (class) and some constant part for the 
clients (interface).

>>> 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.

Yes, the specification is missing.

> 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).

You want to me to write the specification down, so that you could 
"deduce" it? That proves my point. You cannot deduce the specification:

    generic
       X : in out Integer;
    procedure Foo;

> For example - how would your example look in Java?

No I idea. I am making a universal point. Whatever language it is, you 
want to limit effects of code modification and to support cooperative 
developing process, you must distinguish specifications and 
implementations on many different levels, not only on the level of 
compilation units. Information hiding, abstraction, reuse, generic 
programming etc just follow.

>> 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.

I don't object. Beginners have different understanding of what software 
design process is and what helps the process and what does not. Their 
understanding is naturally all wrong, otherwise they would not be beginners.

>> 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.

Common sense?

>> 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.

Once I reviewed C code which had everything in a single header file. Why 
not? It is quite logical if following your logic...

>> 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.

It is no choice, because the worse a language is less efficient 
education becomes. Resources of brain are limited. Each language 
irregularity, unsafe choice etc plays against us.

> But choice is a burden. Right? :-)

Absolutely! Since Google, Facebook et all are already at doing 
censorship and suppressing freedom of speech, they could to do a great 
service to the humankind by eradicating "hate" code written in 
"offensive" [programming] languages... (:-))

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

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