Path: utzoo!utgpu!utstat!jarvis.csri.toronto.edu!mailrus!cornell!uw-beaver!microsoft!t-stephp From: t-stephp@microsoft.UUCP (Stephen Poole) Newsgroups: comp.sys.mac Subject: Re: MAJOR MAC IIx PROBLEMS!!!!! APP Message-ID: <51@microsoft.UUCP> Date: 6 Feb 89 03:18:08 GMT References: <35965@think.UUCP> <46100273@uxe.cso.uiuc.edu> Reply-To: t-stephp@microsoft.UUCP (Stephen Poole) Organization: Microsoft Corp., Redmond WA Lines: 54 In article <46100273@uxe.cso.uiuc.edu> mcdonald@uxe.cso.uiuc.edu writes: >And for good reason. When I tried programming a MAC, it was devilishly >difficult to get any good, useable info. It all looked like it >was written for Pascal, and I was using Fortran. Besides, Apple >clearly stated "One Mac, the same, Now And Forever". They never >mentioned Multifinder or anything else. I wrote a perfectly 100% >legal Fortran program that won't run on a Mac II. This has NEVER >and I mean NEVER happened on any other computer in the 25 years I have >been programming! A 100% (and I DO mean 100%) legal Fortran program >should continue to run. Programs I wrote under VMS 1.00 run fine >under 5.0. Programs I wrote under 1.1 of OS360 ran until I >got sick of IBM ( :-( ). Programs under under MS-DOS 2.1 run fine under >4.01, as well as multitask under Windows 386 (they all run under regular >Windows, but only the 100% Fortran or ANSI C ones multitask.) > >Why is the Mac different? The Mac is not as different as you think. It's ridiculous to believe that poorly written code which bypasses recommended methods of accomplishing something through OS routines is going to necessarily run under future releases of the operating system. The vast majority of Mac code which WAS properly written functions just fine on more recent machines with more recent operating system versions. It's easy to conceive of reasons why your 100% legal FORTRAN program no longer works. Possibilities include the generation of code by the compiler that was not in accordance with Apple's guidelines for compatibility with future releases, code that was self modifying and thus gets hosed because of the 68020's instruction cache, and coding on your part that utilized low-level OS functions in a manner which was not likely to keep working as the operating system evolved. Just because your program was 100% FORTRAN legal hardly means that it was 100% Macintosh OS legal. In fact, it obviously was not if it breaks on the II. The same thing can most assuredly happen under MS-DOS. Consider the different manner in which a C program receives argv[0] under DOS 2.x and DOS 3.x and 4.x. The simple reality is that MS-DOS is considerably less complex than the Macintosh operating system and has remained far more static. Despite this, don't kid yourself that there aren't a host of DOS 2.x and 3.x programs that trash completely under DOS 4.x. The bottom line, I guess, is that there are an awful lot of programmers who don't quite play by the rules and then bitch interminably when a new machine or operating system release comes out that changes something upon which their ill-behaved program relied. It seems to me that Apple has done a pretty good job of upgrading MacOS without breaking their own rules. -- -- Stephen D. Poole -- t-stephp@microsoft.UUCP -- Mac II Fanatic -- -- -- -- I'm just an Oregon Tech Software Engineering co-op at Micro- -- -- soft. Believe me, nobody here pays attention to my opinions! --