[comp.lang.c] C Programming environments was Re: Just a minor new twist on free

dhesi%cirrusl@oliveb.ATC.olivetti.com (Rahul Dhesi) (10/26/90)

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 <dhesi%cirrusl@oliveb.ATC.olivetti.com>
UUCP:  oliveb!cirrusl!dhesi
A pointer is not an address.  It is a way of finding an address. -- me