Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!think.com!zaphod.mps.ohio-state.edu!swrinde!elroy.jpl.nasa.gov!decwrl!pa.dec.com!bacchus!mwm From: mwm@pa.dec.com (Mike (My Watch Has Windows) Meyer) Newsgroups: comp.sys.amiga.programmer Subject: Re: Short Hello World Message-ID: Date: 23 May 91 06:25:54 GMT References: <1991May18.172039.7477@batcomputer.tn.cornell.edu> <1991May20.143242.10424@starnet.uucp> <21779@cbmvax.c <21825@cbmvax.commodore.com> Sender: news@pa.dec.com (News) Organization: Missionaria Phonibalonica Lines: 98 In-Reply-To: peter@cbmvax.commodore.com's message of 23 May 91 00:15:45 GMT In article <21825@cbmvax.commodore.com> peter@cbmvax.commodore.com (Peter Cherna) writes: I'm not in a position to state policy, but I can tell you that I'd be surprised if OpenWindow() stopped working between now and the next significant upgrade of any major product. So would I. I was talking about OpenWindow (and the like) possibly going away in > 5 years time. At this point, unless you're doing 2.0-only software, I'd expect people to use OpenWindow and the appropriate flag bits so they can get tags. However, I also expect that sometime between now and the next major release from CBM this will change, as most software will become "2.0-only". >On the other hand, realizing what happens to systems that retain >compatability for everything that they ever supported takes looking at >one. I don't really recommend doing that; it's not a pretty sight. >Even trying to stay source-level backwards compatable while adding >modern features leads to odd things over the course of a decade. You seem to be implying that maintaining compatibility is universally damaging to the integrity of the system. I don't know about universally. I've just never seen anyone manage to both 1) migrate to a clean implementation of a new design and 2) maintain a high degree of backwards compatibility. AmigaDOS isn't old enough to have real problems yet. I'd rather not see it get into such problems. A well designed system such as the Amiga is more resilient in that regard than older computers where things like ROM-jumping was the norm. Fortunately, I've managed to avoid all those systems where ROM-jumping was anything more than a non-portable hack by people who didn't know better. Even if you protect the OS so people can't read/write it, 20 years of compatability code adds up. In the worst cases, it reverberates through the entire system. In the best, it adds weight to the OS for no other puprose than supporting old code. Given time and a fanatical devotion to backwards compatibility, you get to the point where you breaking binaries causes people to consider someone else's hardware, as the cost of buying new hardware is trivial compared to the cost of upgrading and/or recompiling old applications. Sure, some of the hacks may vanish. However, a good example of a hack that won't need to vanish is one Intuition routine (I forget which) that explicitly preserves A1. Why does it preserve A1? Because it turned out that under 1.3, A1 was unmodified, and some application assumed that. Well, that's a pretty serious application bug. What does it cost the OS to preserve A1? Absolutely nothing (the code even came out to be the same size). In the curernt implementation, it costs absolutely nothing (assuming the source is in assembler; if it's in C, there are probably contortion made to avoid stomping on A1). What happens when you want to replace all the data structures with a spiffy new thing that was published in '95, and discover you really want that extra register. However, support for OpenWindow() in 2.0 is not a hack. OpenWindow() is a well-defined entry point and has been since time immemorial. We certainly have a greater obligation to support defined features than undefined side-effects. I never said it was. I said that it was tagged as obsolete, may go away in the future, and that a CBM employee had recommended that it not be used. For OldOpenLibrary(), the case is different. Nobody NEEDS to use OldOpenLibrary(), since nobody should still be running AmigaDOS 1.0. So anybody that thinks they really _want_ to use OldOpenLibrary() is just plain silly. But worrying about whether it might vanish any time soon is far sillier. Um - why is OldOpenLibrary _now_ any different from OpenWindow in the 1995, or whenever the next major release after that (i.e. - the one with a major design revamp, the latets fad in UIs added, and lots of tools to make programmer easier) comes out? What started this was people saying "OldOpenLibrary will never go away, so it's safe to use." I disagree - CBM has never promised us that old library entries wouldn't go away. I happen to think that making them go away at the right time (see other articles in this thread) is good for the OS. The attitude expressed in that quote will prevent them from going away, by encouraging applications that use them. Please trust us to chart a successful future for AmigaDOS. We do have half a clue as to what can stay and what needs to go to keep AmigaDOS up-to-date, fun and efficient to use and program. As if I had a choice. I either do that, or choose another OS.