At 09:20 PM 10/8/98 -0700, Gene Ouye wrote:
>So I'd say the "con" is: Assignment that violates the type system requires
Agreed. To avoid the possibility of confusion, I would state it as "the
code required to violate strong typing is very verbose. (Of course, this
>Isn't this "con" really: Brittle architectures with high degrees of
>inter-module coupling can't be modified without excessive recompilation?
>Which then becomes the "pro": Excessive recompilation is a potential early
>indicator of architectural problems?
Amen! In my job, one of the strongest advantages of Ada. Estimating
the time that any C project will spend in integration is a crap shoot. But
on Ada projects, those problems have usually been fixed (sometimes with a
few months of schedule slip) before the start of integration.
>Yeah, I know, somebody can always come up with examples of necessary global
>types. But most of the time I see somebody complaining about the high
>recompilation necessitated by Ada, the problem is bad design. And if it
>really is necessary, they could always use an incremental compiler... ;-)
Our experience has always been that it isn't the global types that are
the main problem, it is the global constants that aren't. I remember one
programmer heatedly explaining that a certain system parameter was a
constant not a variable, even after I pointed out that it had changed four
times in the last three weeks.
>The only "con" I can see with this is: Hackers are uncomfortable working in
>software development shops that place a high value on programming languages
>which support software engineering.
I phrase it as, "Some people are very uncomfortable with a language
which complains about inadequacies in their design." I threw together a
quick simulation yesterday. It did what I wanted, but, because I wrote it
in Ada, it was overengineered for the purpose. But then again, in C, I
could have thrown something together in under a day that took me an hour
and a half in Ada. ;-)
(That's not really a knock on C, Ada is a better suited for discrete event
Robert I. Eachus
function Message (Text: in Clever_Ideas) return Better_Ideas is...