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'
next prev parent 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