The terms Obsolescent and obsolete have caused some difficulty with many
people for some time; be they native English speakers or not. The official
dictionary meanings, paraphrased,
obsolete - archaic no longer required or used
obsolescent - in the process of becoming obsolete
In F90 where the standarise for these terms was defined, after much painful
debate. These usages are fairly apt. An obsolete feature is one that has been
deleted from the standard as "no longer used or (value judgement) very
undesirable that it should be any longer used". An obsolescent feature is one
that the committee believed was undesirable and that it would be better if it
became or was in the process or becoming not used so that in a minimum of two
revisions it might actually be declared obsolete and hence eventually removed
from the language. Removeal from compilers may take longer than removal from
the standard. I fully expect my great grand children, if they are aware of
Fortran at all, to be able to use such abortions as real DO loop indecies
because some compilers still have them impemented. I would expect my children
to admonish their offspring for any such use as thoroughly reprehensible.
POINTERs are required if data objects are needed for which both dynamic size
and dynamic aliaising is a feature of the type and the algorithms (linked
lists require the latter and may need the former). Allocatable components,
left out by political accident, allow dynamic sized objects in contexts where
dynamic ailias capabilities are not needed. That these contexts are common in
scientific programming and the constraints implied by allocatable only
without pointer alias capabilities means that it was a mistake to remove them
from F90/95. This does not also mean that pointers were an obsolescent
introduction.
--
Lawrie Schonfelder
Director, Computing Services Dept.
The University of Liverpool, UK, L69 7ZF
Phone: 44(151)794 3716, Fax: 44(151)794 3759
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|