Path: utzoo!attcan!uunet!zaphod.mps.ohio-state.edu!usc!apple!olivea!tymix!cirrusl!sunstorm!dhesi From: dhesi%cirrusl@oliveb.ATC.olivetti.com (Rahul Dhesi) Newsgroups: comp.lang.c Subject: C Programming environments was Re: Just a minor new twist on free() Message-ID: <2610@cirrusl.UUCP> Date: 26 Oct 90 16:58:26 GMT References: <7365@darkstar.ucsc.edu> <335@bii.UUCP> <119@nazgul.UUCP> Sender: news@cirrusl.UUCP Organization: Cirrus Logic Inc. Lines: 58 In <119@nazgul.UUCP> bright@nazgul.UUCP (Walter Bright) writes: In my experience, MS-DOS has the most advanced and polished programming tools available on it....If other systems are so superior, why aren't their programming environments up to the standards of the MS-DOS world? There are a number of reasons why the jury is still out. At one time I was doing C programming on a number of systems in parallel: (a) MS-DOS/Turbo C 1.0, (b) MS-DOS/Datalight C, an old version; (c) 4.3BSD; (d) AT&T UNIX PC, SVR1 with SVR2 utilities; (e) Xenix/68000; (f) Microport System V/AT 2.2; (g) Xenix/86; (h) AT&T 3B2 SVR3; (i) VAX/VMS. Believe it or not, despite not having even a near-ANSI compiler or any fancy screen-oriented debugging, 4.3BSD appeared to be the most powerful environment. Why? Because of the many tools available. For one thing, a good revision control system is practically a must, and RCS (comes with 4.xBSD, now also from Free Software Foundation) is excellent. MS-DOS doesn't come with one, so you need to add one. Being on a low budget, I didn't add one; had I done so, MS-DOS might have been a better environment. But even so, MS-DOS lacks most of the advantages of UNIX: The ability to have several things going on; the ability to suspend jobs (big plus for 4.3BSD over everything else); ability to do lots of text processing and filtering. However, I ended up doing most of the development on a Microport System V/AT machine. It has SCCS for source control, it could reliably check the dereferencing of NULL pointers (try that with MS-DOS), and it, too, allowed me to have multiple sessions going between which I could switch instantaneously. (Something similar is possible under MS-DOS if you add Desqview, but that is a bad idea if you're doing programming and your machine is liable to crash at any time.) Machine crashes...the final reason why MS-DOS is not the best. (This may now be changing with the availability of 80386 machines and virtual environments...or maybe not. Strange things can still happen if the underlying MS-DOS gets messed up, or if the keyboard goes into a strange state and you can't type keystrokes any more, so that even Ctrl-Alt-Del won't work.) Here's what it would take to being MS-DOS up to the level of 4.3BSD: (a) A good revision control system. I haven't tried any for MS-DOS. (b) Protection against crashes. (Not yet possible under MS-DOS, though I haven't check to see if the 386-based debuggers might provide that.) Also protection against NULL-pointer and invalid memory references. (c) Decent multitasking. I don't think Windows or Desqview quite cuts it, though Desqview sometimes comes close. (d) The standard 4.3BSD + SVR3 suite of tools, especially things like grep/sed/awk and the ability to string them in pipes. I hear good things about the MKS tools, but until they can do multitasking they probably won't suffice. A good compiler and debugger aren't enough. For a good *programming environment*, as opposed to merely generating good code, they probably aren't even necessary. -- Rahul Dhesi UUCP: oliveb!cirrusl!dhesi A pointer is not an address. It is a way of finding an address. -- me