I originally wrote
> Humm, you mean that issuing
>
> version 7.0: save filename6, old
>
> in Stata 8 will not yield the same result as issuing
>
> save filename6, old
>
> in Stata 7?
To which Vince ([email protected]) replied,
> Interesting thought, but the answer is no.
>
> The goal of the -version- statement is backward compatibility
> -- that is to
> say, the ability of new versions of Stata to run do- and
> ado-files written
> with old syntax. Stata's language is evolving and we
> sometimes make changes
> that would cause old syntax to break or produce different
> results. You don't
> want your programs to break or your results to change; so, if
> you are using
> Stata 8, you should put -version 8- at the top of your
> do-files, at the top of
> your class-files, or right after the -program ...- statement of your
> ado-files. Stata's promise to you is that your do-file or
> program will
> continue to work and produce the same results as new versions
> of Stata are
> released. It's not really a promise, we have occasionally
> made changes where
> strict version control could not be maintained -- such as the
> introduction of
> time-series operators in Stata 6 -- but such occasions are
> the exception.
>
> What Patrick suggests, is forward compatibility -- the
> ability of a newer
> version of Stata to mimic an older version -- and that is not
> something
> provided under version control. Sometimes forward and
> backward compatibility
> mean the same thing, but not in this case.
Thanks Vince for the explanation but I don't get it. You define backward
compatibility as "the ability of new versions of Stata to run do- and
ado-files written with old syntax". Then you suggest that the example I
provided -- i.e. of saving a dataset as a Stata 6 data file, in Stata 8 --
is an instance of *forward* compatibility which you define as "the ability
of a newer version of Stata to mimic an older version". I don't see the
difference between the 2 definitions you have proposed.
Is it because the example I referred to attempted to make use of version
control from the command line? If it is, then lets try to accomplish the
same task via an .ado. file. Suppose I have the following
prog def myado
version 7.0
* perform sundry operations
...
save myfile, old
...
end
If as you say, Stata provides the "ability of new versions of Stata to run
do- and ado-files written with old syntax" then -myado- should behave the
same way whether I invoke from Stata 7 or Stata 8. To me, this is an
example of _backward_ compatibility, not forward. _Forward_ would mean the
ability of older versions of Stata to mimic new versions of Stata and I
never expected Stata to be able to accomplish that; backwards will suffice.
Patrick Joly
[email protected]
[email protected]
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/