comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Rational for not making cursor tagged in Containers
Date: Fri, 20 Apr 2007 17:13:21 +0200
Date: 2007-04-20T17:13:21+02:00	[thread overview]
Message-ID: <1q1kx2jlcvnuj.ck0711mj4few$.dlg@40tude.net> (raw)
In-Reply-To: 1177080147.5876.87.camel@localhost.localdomain

On Fri, 20 Apr 2007 16:42:27 +0200, Georg Bauhaus wrote:

> On Fri, 2007-04-20 at 12:39 +0200, Dmitry A. Kazakov wrote:

>> BTW, Ada has private types from the day one.
> 
> If the type in question is private, there is nothing
> to argue about.

It is private.

> To emphasize: I don't want to loose
> comparatively simple building blocks (records) just because
> some smart programmers can build similar things (implementing
> record interfaces) with more effects. I'm not forced to provide
> get {} and set {} in C#, and neither assigners in Eiffel.

This is confused. Are you talking about composition of types or about usage
of?

If it is the latter, then you already lost, because prefix notation is used
in Ada for gazillion unrelated things. You cannot tell what X.A means
without the context. And this is right.
 
If you are talking about the former, then what is lost? You still can use
plain records as an abbreviation to: this implements a record interface and
surprisingly is also built-it record.

> This is where it becomes dangerous, I think. Suggesting that programmers
> can implement "linguistic interfaces" forces programmers to be language
> designers, profiting from decades of language research, compilation
> technology, etc. etc..

Honestly, I don't see what is so especially dangerous in X.A as compared to
A(X).

>>> Not every programming team consists of real or even wannabe
>>> language designers. But who else has even got a chance of knowing
>>> what they are doing to a larger program when implementing the
>>> concept of record?
>> 
>> Why they are allowed to implement a concept of task,
> 
> Uh, what do you mean?

I mean they are allowed to write

   task type X is

but not

   record type X is

(as opposed to type Y is record [X])

IMO, task is far more conceptually complex than a container of fixed number
of elements indexed by statically known strings.

>>  Where do you draw the line?
> 
> For a general purpose language, I draw the line where the
> programmers would otherwise be forced to fiddle with
> the tiny bits usually done by compilers. The operations
> of private types are not tiny bits, but forcing plain record
> component assignments to be full subprograms should not be
> the default in Ada.

Uhm, default of what? I wish to have record interfaces, nothing more. I
don't see nothing special in record containers. I cannot understand why a
record view should enforce anything on the implementation of, beyond that
view. Also I fail to understand why polymorphic objects has to be records
and not arrays or access types. Why array or number cannot have
discriminants, but records can? Why array element cannot be extracted using
X."Foo", and why record item cannot be using X("Foo"). etc.

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



  parent reply	other threads:[~2007-04-20 15:13 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-19 16:05 Rational for not making cursor tagged in Containers Anh Vo
2007-04-19 18:25 ` Robert A Duff
2007-04-19 19:28   ` Anh Vo
2007-04-19 20:45     ` Robert A Duff
2007-04-19 21:43       ` Dmitry A. Kazakov
2007-04-19 23:59         ` Ray Blaak
2007-04-20  7:54           ` Dmitry A. Kazakov
2007-04-20 10:56             ` Georg Bauhaus
2007-04-20 10:39               ` Dmitry A. Kazakov
2007-04-20 14:42                 ` Georg Bauhaus
2007-04-20 14:45                   ` Georg Bauhaus
2007-04-20 15:13                   ` Dmitry A. Kazakov [this message]
2007-04-20 19:37                     ` Georg Bauhaus
2007-04-20 19:32                       ` Dmitry A. Kazakov
2007-04-20 20:59                         ` Robert A Duff
2007-04-20 22:14                           ` Dmitry A. Kazakov
2007-04-23 17:38                             ` Adam Beneschan
2007-04-23 19:18                               ` Dmitry A. Kazakov
2007-04-24  0:15                                 ` Adam Beneschan
2007-04-24 10:43                                   ` Dmitry A. Kazakov
2007-04-24 16:27                                     ` Adam Beneschan
2007-04-24 20:19                                       ` Dmitry A. Kazakov
2007-04-26  0:58                                         ` Adam Beneschan
2007-04-26  7:50                                           ` Dmitry A. Kazakov
2007-04-26  8:09                                             ` Markus E Leypold
2007-04-27  8:46                                               ` Dmitry A. Kazakov
2007-04-27 11:37                                                 ` Markus E Leypold
2007-04-28 17:35                                                   ` Dmitry A. Kazakov
2007-04-29  2:31                                                     ` Randy Brukardt
2007-04-29  8:45                                                       ` Dmitry A. Kazakov
2007-04-27 20:44                                               ` Robert A Duff
2007-04-26  8:33                                             ` Markus E Leypold
2007-04-26 11:09                                               ` Markus E Leypold
2007-04-20 19:55                       ` Randy Brukardt
2007-04-22  9:54                         ` Georg Bauhaus
2007-04-22 11:19                           ` Dmitry A. Kazakov
2007-04-20 20:44                       ` Robert A Duff
2007-04-21  5:38                         ` Randy Brukardt
2007-04-22  1:14                           ` Robert A Duff
2007-04-22  4:08                             ` Randy Brukardt
2007-04-20 20:11                     ` Randy Brukardt
2007-04-20 21:28                       ` Dmitry A. Kazakov
2007-04-21  5:33                         ` Randy Brukardt
2007-04-21  9:39                           ` Dmitry A. Kazakov
2007-04-22  4:28                             ` Randy Brukardt
2007-04-22  8:38                               ` Dmitry A. Kazakov
2007-04-23 23:26                                 ` Randy Brukardt
2007-04-24 10:43                                   ` Dmitry A. Kazakov
2007-04-24  8:58                                 ` Georg Bauhaus
2007-04-24 12:21                                   ` Dmitry A. Kazakov
2007-04-21  4:48                       ` unifying arrays and records (was Re: Rational for not making cursor tagged in Containers) Ray Blaak
2007-04-20 17:05             ` Rational for not making cursor tagged in Containers Ray Blaak
2007-04-20 18:46               ` Dmitry A. Kazakov
2007-04-20 18:52                 ` Ray Blaak
2007-04-20 19:54                   ` Robert A Duff
2007-04-20  1:18         ` Anh Vo
2007-04-20  7:53           ` Dmitry A. Kazakov
2007-04-20  9:26             ` Maciej Sobczak
2007-04-20 10:15               ` Dmitry A. Kazakov
2007-04-20 11:59           ` Jean-Pierre Rosen
2007-04-20 13:23             ` Anh Vo
2007-04-20 16:02               ` Jean-Pierre Rosen
2007-04-21  2:53                 ` Anh Vo
2007-04-20  3:03   ` Randy Brukardt
2007-04-20  2:53 ` Randy Brukardt
2007-04-20 16:08   ` Anh Vo
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox