>Pro: Strong type checking prevents careless errors.
>Con: Can't assign any variable to any variable.
I consider this "con" to be a myth. With the exception of in parameters and
limited types, you can pretty much assign anything to anything. It's just
that if you want to violate the type system you have to explicitly say so
(with explicit type conversions, unchecked_conversion, etc).
So I'd say the "con" is: Assignment that violates the type system requires
>Pro: Dependency rules prevent module interface version mismatch.
>Con: Changes at a low level cause high impact for recompilation.
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?
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... ;-)
>Pro: Modular nature encourages system-wide design.
>Con: Difficult to hack together a prototype.
Sorry but this is just plain wrong. I "hack together" prototypes in Ada all
the time (good thing I'm not a developer here! ;-) and I find that the
modularity that Ada encourages means it's more likely that I'll find
reusable bits & pieces here and there that I can cobble together to make
work. More times than not, I can infer the actual intent of a package by
looking at its specification.
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.
Gene Ouye <[log in to unmask]> :-)