comp.lang.ada
 help / color / mirror / Atom feed
From: john@nospam.demon.co.uk (John McCabe)
Subject: Re: The old "Object.Method" syntax debate
Date: Wed, 4 Jun 2003 08:27:55 +0000 (UTC)
Date: 2003-06-04T08:27:55+00:00	[thread overview]
Message-ID: <3eddac06.2014847@news.btclick.com> (raw)
In-Reply-To: mailman.0.1054660899.11750.comp.lang.ada@ada.eu.org

On Tue, 3 Jun 2003 19:23:55 +0200, Lionel.DRAGHI@fr.thalesgroup.com
wrote:

>| That is a fair point, but it would be interesting to know how much of
>| the Ada code written in under the 'object-oriented' paradigm actually
>| uses a single tagged type per package. Over a period of around 3 years
>| I worked in 2 separate companies where this was pretty much the case.
>| In fact, in both cases the code structure was automatically generated.

>I don't think it's a good practice. I find awkward to create create a child
>for a class that perfectly fit in the same package.

I don't really understand what you mean there.

>Simple coding rules are good, but enforcing one class per package (and
>calling it always "Object", or "Class") just bring Ada down to other
>langages that do not have a strong modularity support and use classes for
>this purpose.
>Scattering strongly coupled classes on many packages lower readability. 

>And there is always a better name than "Object" or "Class". 
>Similarly, calling a formal "This" is, i think, a bad practice, there is
>always a better name.

>Automatically generated code often lead to this, not only because it
>simplify the code generator, but because tools (and UML) do not provide
>serious support for Ada modularity. 
>Most tools don't care, they just target C++ or Java, and so are mainly
>"class translator".

I agree to some extent with what you say here but, in the first
company I mentioned the code generator was an in-house design written
in Ada that used the output of [insert design tool name here :-)]
generate the code. Although I said there was one tagged type per
package, thinking back on it that wasn't quite true. The effect was
something like that but there was a main tagged type relating to the
actual functionality required, and a couple of tagged types relating
to the overall structure and scheduling mechanisms (queues etc - tasks
weren't used). In the second company I mentioned we used Rational Rose
(UML). In this case we configured the tool to produce reaonable object
and class names based on the classes we created. Having read a number
of articles about using "Object" and "Class", as well as listening to
a number of reasons from other team members why this was a daft idea,
it was decided not to pursue that convention.

Ultimately the "one tagged-type per class" mechanism wasn't
'enforced', but most of the packages came down to that and maintenance
(with a couple of hundred packages) was fairly straightforward.


Best Regards
John McCabe

To reply by email replace 'nospam' with 'assen'



  reply	other threads:[~2003-06-04  8:27 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-03 17:23 The old "Object.Method" syntax debate Lionel.DRAGHI
2003-06-04  8:27 ` John McCabe [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-05-23 17:59 Lionel.DRAGHI
2003-05-27  9:17 ` John McCabe
2003-05-23 17:39 Lionel.DRAGHI
2003-05-21 15:26 Marc A. Criley
2003-05-21 15:47 ` David C. Hoos
2003-05-21 16:21   ` Jacob Sparre Andersen
2003-05-21 16:34     ` Robert A Duff
2003-05-21 16:43       ` Preben Randhol
2003-05-21 17:13         ` Robert A Duff
2003-05-21 17:13         ` David C. Hoos
2003-05-21 18:21           ` Preben Randhol
2003-05-21 19:43             ` David C. Hoos
2003-05-21 20:36               ` Preben Randhol
2003-05-22  3:24                 ` David C. Hoos
2003-05-22  2:31             ` Alexander Kopilovitch
2003-05-21 18:32           ` Preben Randhol
2003-05-22  9:41       ` Xavier Nicollin
2003-05-22 14:56         ` Robert A Duff
2003-05-22 16:02           ` Xavier Nicollin
2003-05-23  2:56         ` Wesley Groleau
2003-05-21 16:50     ` David C. Hoos
2003-05-21 16:36   ` Preben Randhol
2003-05-21 16:55     ` Vinzent Hoefler
2003-05-21 18:03       ` Preben Randhol
2003-05-21 18:17         ` David C. Hoos
2003-05-21 18:22           ` Preben Randhol
2003-05-21 20:53             ` tmoran
2003-05-22  2:11               ` Preben Randhol
2003-05-22  4:04                 ` Dale Stanbrough
2003-05-22  7:34         ` Ole-Hjalmar Kristensen
2003-05-23  0:35         ` Hyman Rosen
2003-05-21 17:02   ` David C. Hoos
2003-05-21 17:55   ` Warren W. Gay VE3WWG
2003-05-21 19:54   ` Bobby D. Bryant
2003-05-21 20:37     ` Preben Randhol
2003-05-22 14:32   ` Rodrigo Garcia
2003-05-22 15:39     ` David C. Hoos
2003-05-23  7:49       ` Rodrigo Garcia
2003-05-23  8:34         ` Dmitry A. Kazakov
2003-05-23 18:35           ` Alexander Kopilovitch
2003-05-25  5:38             ` Robert I. Eachus
2003-05-25  9:13               ` Dmitry A. Kazakov
2003-05-27  9:50                 ` John McCabe
2003-05-27 16:02                   ` Warren W. Gay VE3WWG
2003-05-28  8:24                   ` Dmitry A. Kazakov
2003-05-28 12:36                     ` Lutz Donnerhacke
2003-05-28 13:14                       ` Preben Randhol
2003-05-28 15:01                         ` Lutz Donnerhacke
2003-05-29  9:17                       ` Dmitry A. Kazakov
2003-05-30 10:41                         ` Lutz Donnerhacke
2003-05-30 20:13                           ` Randy Brukardt
2003-06-02  9:11                             ` Lutz Donnerhacke
2003-05-31  9:29                           ` Dmitry A. Kazakov
2003-05-28  3:02               ` Alexander Kopilovitch
2003-05-28  8:07                 ` John McCabe
2003-05-29  0:55                   ` Alexander Kopilovitch
2003-05-22 17:03     ` Gautier Write-only
2003-05-23 14:43   ` Steve
2003-05-23 14:51     ` Preben Randhol
2003-05-23 15:21     ` John McCabe
2003-05-23 23:43     ` Robert A Duff
2003-05-25  5:42     ` Hyman Rosen
2003-05-25 14:40       ` Steve
2003-05-25 21:21         ` Gautier Write-only
2003-05-23  7:58 ` John McCabe
2003-05-23  8:39   ` Preben Randhol
2003-05-23 15:12     ` John McCabe
2003-05-23 15:18       ` Preben Randhol
2003-05-23 17:32     ` Stephen Leake
2003-05-27  9:09       ` John McCabe
2003-05-28 11:47       ` Georg Bauhaus
2003-05-28 16:14         ` Stephen Leake
2003-05-28 18:23           ` Georg Bauhaus
2003-05-23 20:45 ` steve_H
replies disabled

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