From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Studying and Maintaining GNAT, Is There Any Interest in a New Group?
Date: Mon, 27 Aug 2018 16:27:50 -0500
Date: 2018-08-27T16:27:50-05:00 [thread overview]
Message-ID: <pm1qcm$3bt$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: 1ceec6d8-c5c4-49b1-9808-a3580bba3f8e@googlegroups.com
"Lucretia" <laguest9000@googlemail.com> wrote in message
news:1ceec6d8-c5c4-49b1-9808-a3580bba3f8e@googlegroups.com...
...
>I never said anything about not learning from DIANA, I said don't
>implement it. Reason is simple, it was designed using Ada83, we have
>OO now and OO fits a compiler perfectly and would be a hell of a lot
>nicer than a bunch of variant records/enums.
Fitting OO into a compiler design could very easily turn into a nightmare of
required overriding routines, making it very painful to add new kinds of
nodes. I used a design like that in the Claw Builder, and the OO parts
gummed up the works to the extent that modification is difficult.
(Especially if you want to develop code using an agile style, which IMHO is
the only successful way to develop code.)
Variants and enums in Ada are fully checked (either at compile-time or
runtime), so a lot of the advantages of OO are also available using them.
(Case completeness checks in particular make it hard to forget to implement
something.) And they put the emphasis on the operations rather than on the
objects, which can be an advantage for some sorts of code.
I don't claim to know the right answer here, but I do know that
variants/enums/cases are very useful design tool *in Ada* (not so much in
other languages). If one sticks to a strict OO design, you can easily end up
working a lot harder than necessary and make maintenance harder than
necessary.
Randy.
next prev parent reply other threads:[~2018-08-27 21:27 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-25 12:27 Studying and Maintaining GNAT, Is There Any Interest in a New Group? patrick
2018-08-25 13:56 ` Dan'l Miller
2018-08-25 16:00 ` patrick
2018-08-25 16:16 ` Luke A. Guest
2018-08-25 17:42 ` patrick
2018-08-25 19:25 ` Simon Wright
2018-08-25 20:24 ` patrick
2018-08-25 21:48 ` Luke A. Guest
2018-08-25 21:53 ` patrick
2018-08-25 22:05 ` Luke A. Guest
2018-08-26 19:54 ` Dan'l Miller
2018-08-26 20:14 ` Dan'l Miller
2018-08-26 22:52 ` Lucretia
2018-08-27 2:38 ` Dan'l Miller
2018-08-27 14:46 ` Lucretia
2018-08-27 15:42 ` Dan'l Miller
2018-08-27 21:27 ` Randy Brukardt [this message]
2018-08-28 7:26 ` Dmitry A. Kazakov
2018-08-29 0:16 ` Randy Brukardt
2018-08-29 8:20 ` Dmitry A. Kazakov
2018-08-29 21:43 ` Randy Brukardt
2018-08-30 7:55 ` Dmitry A. Kazakov
2018-08-30 23:25 ` Randy Brukardt
2018-08-31 8:48 ` Dmitry A. Kazakov
2018-08-31 22:42 ` Randy Brukardt
2018-09-02 8:02 ` Dmitry A. Kazakov
2018-09-04 22:18 ` Randy Brukardt
2018-08-29 3:02 ` Paul Rubin
2018-08-29 6:18 ` Luke A. Guest
2018-08-29 19:00 ` Paul Rubin
2018-08-30 5:54 ` Luke A. Guest
2018-08-30 6:29 ` Paul Rubin
2018-08-27 21:18 ` Randy Brukardt
2018-08-27 9:37 ` Simon Wright
2018-08-27 16:54 ` Bill Findlay
2018-08-27 17:42 ` Shark8
2018-08-31 21:23 ` Robert A Duff
2018-08-31 22:51 ` Randy Brukardt
2018-09-01 19:42 ` Robert A Duff
2018-09-02 8:04 ` Dmitry A. Kazakov
2018-09-02 10:11 ` AdaMagica
2018-09-02 12:10 ` Jeffrey R. Carter
2018-09-02 14:30 ` AdaMagica
2018-09-04 22:05 ` Randy Brukardt
2018-09-01 7:41 ` Simon Wright
2018-09-01 17:27 ` Bill Findlay
2018-08-27 17:35 ` Shark8
2018-08-25 21:17 ` Luke A. Guest
2018-08-25 23:16 ` Paul Rubin
2018-08-26 8:03 ` Rene
2018-08-26 10:09 ` Simon Wright
2018-08-25 16:43 ` Jeffrey R. Carter
2018-08-25 17:38 ` patrick
2018-08-25 17:39 ` Luke A. Guest
2018-08-25 17:45 ` patrick
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox