CVS difference for ai12s/ai12-0023-1.txt

Differences between 1.2 and version 1.3
Log of other versions for file ai12s/ai12-0023-1.txt

--- ai12s/ai12-0023-1.txt	2012/04/28 03:56:13	1.2
+++ ai12s/ai12-0023-1.txt	2012/05/19 02:42:48	1.3
@@ -1363,3 +1363,253 @@
 Anyway, another idea for the pile of ideas.
 
 ****************************************************************
+
+From: Bob Duff
+Sent: Saturday, April 28, 2012  8:40 AM
+
+> The slight downside is that changing Streams to an interface in this
+> scheme would be incompatible, ...
+
+Your ideas are probably good ones in the abstract (pun?), but I think nothing in
+this discussion warrants any incompatibility. ARG needs to be very reluctant to
+introduce incompatibilities.
+
+By the way, are "upward compatible" and "backward compatible"
+synonymous?  If not, what's the diff?
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Monday, April 30, 2012  2:29 PM
+
+> > The slight downside is that changing Streams to an interface in this
+> > scheme would be incompatible, ...
+>
+> Your ideas are probably good ones in the abstract (pun?), but I think
+> nothing in this discussion warrants any incompatibility.
+> ARG needs to be very reluctant to introduce incompatibilities.
+
+I admit that I had written almost all of that message before I realized that
+there was any incompatibility. I probably wouldn't have bothered to write it up
+had I thought of that first.
+
+OTOH, this incompatiblity seems to be in very unlikely code (at least for
+Streams), so it may make sense to consider it anyway. (This was my original
+thought behind suggesting that Brad submit this request: the incompatibility is
+very unlikely and we may decide it is not worth worrying about. If we decide it
+*is* worth worrying about, then I don't think we should make any change.)
+
+> By the way, are "upward compatible" and "backward compatible"
+> synonymous?  If not, what's the diff?
+
+Different direction, isn't it? I think "upward compatible" is Ada 2005 code
+compiled with a Ada 2012 compiler (to take a specific example). That we try to
+support with few exceptions. "Backward compatible" is Ada 2012 code compiled
+with a Ada 2005 compiler. We don't try to support that at all, other than in
+specific cases.
+
+****************************************************************
+
+From: Bob Duff
+Sent: Monday, April 30, 2012  4:00 PM
+
+> I admit that I had written almost all of that message before I
+> realized that there was any incompatibility. I probably wouldn't have
+> bothered to write it up had I thought of that first.
+>
+> OTOH, this incompatiblity seems to be in very unlikely code (at least
+> for Streams), so it may make sense to consider it anyway. (This was my
+> original thought behind suggesting that Brad submit this request: the
+> incompatibility is very unlikely and we may decide it is not worth
+> worrying about. If we decide it *is* worth worrying about, then I
+> don't think we should make any
+> change.)
+
+OK, fair enough.  I vote for "*is* worth worrying about".
+It's a cost/benefit thing, and you're saying the cost is low, but I'm saying the
+benefit is also low.  In this case.
+
+> > By the way, are "upward compatible" and "backward compatible"
+> > synonymous?  If not, what's the diff?
+>
+> Different direction, isn't it?
+
+I'm not sure.  The terms _sound_ like opposites, but I see people using them
+interchangeably.
+
+>...I think "upward compatible" is Ada 2005 code  compiled with a Ada
+>2012 compiler (to take a specific example). That we try  to support
+>with few exceptions. "Backward compatible" is Ada 2012 code  compiled
+>with a Ada 2005 compiler.
+
+If that's what "backward compatible" means, then why would anybody ever use the
+term?  Would it ever make sense?
+
+>...We don't try to support that at all,  other than in specific cases.
+
+Which specific cases?  I mean, yeah, many Ada 2012 programs work as Ada 2005
+programs, but so what?
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Monday, April 30, 2012  5:07 PM
+
+...
+> > > By the way, are "upward compatible" and "backward compatible"
+> > > synonymous?  If not, what's the diff?
+> >
+> > Different direction, isn't it?
+>
+> I'm not sure.  The terms _sound_ like opposites, but I see people
+> using them interchangeably.
+
+People misuse terms all the time. So what?
+
+> >...I think "upward compatible" is Ada 2005 code  compiled with a Ada
+> >2012 compiler (to take a specific example). That we try  to support
+> >with few exceptions. "Backward compatible" is Ada 2012 code compiled
+> >with a Ada 2005 compiler.
+>
+> If that's what "backward compatible" means, then why would anybody
+> ever use the term?  Would it ever make sense?
+
+I don't think it necessarily makes sense for a programming language. It makes
+sense for other things, say the file format for a word processor. A "backward
+compatible" format could be loaded into an older version of the word processor
+and still work (other than some new features being ignored). That usually is a
+property that you want in file formats, and it definitely deserves a term to
+describe it. (It's a property of the file formats used by the Claw Builder, for
+instance, and that was a design criteria.) You might even want that property in
+some specific cases in a programming language, but I think that would be rare.
+
+> >...We don't try to support that at all,  other than in specific cases.
+>
+> Which specific cases?  I mean, yeah, many Ada 2012 programs work as
+> Ada 2005 programs, but so what?
+
+I was thinking about things like the definition of aspects - we've purposely
+kept them the same in newer versions of the language. But I agree that we almost
+never care about "backward compatibility" in a programming language. Anyone who
+is talking about it (like Tucker was recently) is usually just confused (and/or
+confusing).
+
+****************************************************************
+
+From: Robert Dewar
+Sent: Monday, April 30, 2012  5:40 PM
+
+> ...
+>>>> By the way, are "upward compatible" and "backward compatible"
+>>>> synonymous?  If not, what's the diff?
+>>>
+>>> Different direction, isn't it?
+>>
+>> I'm not sure.  The terms _sound_ like opposites, but I see people
+>> using them interchangeably.
+>
+> People misuse terms all the time. So what?
+
+This is not a misuse, indeed upward compatible and backward compatible mean the
+same thing for almost everyone (google them to see). If all the world uses words
+in one way, and Randy uses them in another, he may like Humpty-Dumpty claim the
+right to use words as he pleases, but claiming everyone else is wrong is a bit
+silly!
+
+The opposite term is downward(s) compatile (I have not heard the word forward
+compatible used, though if I saw it I would know what it meant i.e. = downards
+compatible
+
+>>> ...I think "upward compatible" is Ada 2005 code  compiled with a Ada
+>>> 2012 compiler (to take a specific example). That we try  to support
+>>> with few exceptions. "Backward compatible" is Ada 2012 code compiled
+>>> with a Ada 2005 compiler.
+>>
+>> If that's what "backward compatible" means, then why would anybody
+>> ever use the term?  Would it ever make sense?
+
+No, that's downward compatible, and yes, of course this compatibility makes
+perfectly good sense.
+
+Ffor instance in GNAT, we have to make sure that code remains downward
+compatible with old versions of the compiler for bootstrap purposes (we can't
+use Ada 2012 constructs in the compiler proper for this reason).
+
+> I was thinking about things like the definition of aspects - we've
+> purposely kept them the same in newer versions of the language. But I
+> agree that we almost never care about "backward compatibility" in a programming language.
+> Anyone who is talking about it (like Tucker was recently) is usually
+> just confused (and/or confusing).
+
+Randy you will confuse EVERYONE if you use backward compatible to mean downward
+compatible!
+
+Think of versions as a list
+
+Ada 83
+Ada 95
+Ada 2005
+Ada 2010
+
+upward compatible means you are compatible with things above you in the list, so
+it has this idea of a list written that way.
+
+backward compatible is looking at the timeline, so going back from Ada
+2012 we have Ada 2005. The result is the same
+
+downward and forward are the appropriate opposites.
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Monday, April 30, 2012  6:27 PM
+
+> This is not a misuse, indeed upward compatible and backward compatible
+> mean the same thing for almost everyone (google them to see). If all
+> the world uses words in one way, and Randy uses them in another, he
+> may like Humpty-Dumpty claim the right to use words as he pleases, but
+> claiming everyone else is wrong is a bit silly!
+>
+> The opposite term is downward(s) compatile (I have not heard the word
+> forward compatible used, though if I saw it I would know what it meant
+> i.e. = downards compatible
+
+Well, I took your suggestion and googled "backward compatible". Here is the
+first paragraph of the wikipedia article (which was the first hit I got):
+
+"In the context of telecommunications and computing, a device or technology is
+said to be backward or downward compatible if it can work with input generated
+by an older device.[1] If products designed for the new standard can receive,
+read, view or play older standards or formats, then the product is said to be
+backward-compatible; examples of such a standard include data formats and
+communication protocols."
+
+"The reverse is forward compatibility, which implies that old devices allow (or
+are expected to allow) data formats generated by new (or future) devices,
+perhaps without supporting all new features. A standard supports forward
+compatibility if older product versions can receive, read, view, or play the new
+standard."
+
+Which says that we're both wrong. (Wikipeda defines "forward compatible" and
+"upward compatible" to mean the same thing as well, and the opposite of the
+meaning that both of us gave "upward compatible").
+
+Or, more likely, the uses of the terms are irretrievably confused (if wikipedia
+gets it wrong, it's pretty confused!).
+
+Moral: Keep directions out of programming descriptions; they only serve to
+confuse.
+
+...
+> Randy you will confuse EVERYONE if you use backward compatible to mean
+> downward compatible!
+
+And wikipedia says these two terms mean the same thing! And opposite what I
+thought. Best avoid them all!
+
+For our purposes here, we only are interested in compatibility of older Ada code
+with Ada compilers for the most recent version of the Ada standard, so
+"compatible" and "incompatible" are enough. Let's not confuse everyone with
+directions that don't even seem to have a consistent meaning.
+
+****************************************************************

Questions? Ask the ACAA Technical Agent