Path: utzoo!mnetor!uunet!husc6!mailrus!nrl-cmf!ames!ncar!oddjob!gargoyle!att-ih!ihnp4!inuxc!iuvax!pur-ee!uiucdcs!uiucdcsp!gillies From: gillies@uiucdcsp.cs.uiuc.edu Newsgroups: comp.sys.mac Subject: Re: A/UX window systems, Mac toolbo Message-ID: <76000176@uiucdcsp> Date: 26 Mar 88 18:50:00 GMT References: <8449@eleazar.Dartmouth.EDU> Lines: 36 Nf-ID: #R:eleazar.Dartmouth.EDU:8449:uiucdcsp:76000176:000:1583 Nf-From: uiucdcsp.cs.uiuc.edu!gillies Mar 26 12:50:00 1988 I'm not sure I made myself clear. Let me put this in terms of UNIX: - Have you ever thought about what to do when calloc() returns an error because it can't find more memory? Does calloc() even return, or does it crash your program on UNIX? - Have you ever thought about what to do when your program needs to write a temporary file, but there's no space in /tmp? No space ANYWHERE on the disk? - Have you ever tried to write a UNIX program that *didn't* wire constants into the size of the C data structures? This is generally a no-no if you want your program to work in unusual situations. - Have you ever tried to use a UNIX command for something it wasn't intended for? Very often, it will crash because some static array in the C code overflows. And to handle the "most cases", many programs size their data structures far larger than necessary. The result is wasted memory and still the software can be flakey. You may argue that UNIX is easier to program. That's because you're probably writing lousy code. Sure, you can write lousy code on the macintosh and life is just as easy. Never assume you run out of anything, and your code will be truly *simple*. The Macintosh is built so that you implement contingencies when resources get low. I believe that many parts of UNIX (stdio) are not. They just assume it's fine to crash the process. Remember: EVERY computer system, EVEN WITH VIRTUAL MEMORY runs out of EVERY resource. If you didn't realize this, now you know. Don Gillies {ihnp4!uiucdcs!gillies} U of Illinois {gillies@p.cs.uiuc.edu}