Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

RE: st: RE: About data transformation


From   Joly.Patrick@ic.gc.ca
To   statalist@hsphsun2.harvard.edu
Subject   RE: st: RE: About data transformation
Date   Fri, 14 Feb 2003 15:18:53 -0500

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 (vwiggins@stata.com) 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
joly.patrick@ic.gc.ca
pat.joly@utoronto.ca



*
*   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/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index