[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: C as Universal Standard

     The toughest argument, which naive programmers, managers, poverty-stricken
     academics latch onto, is price performance ratios, cheap MIPS and
     expensive LISPs, Lisp workstations, Lisp programs.  Of course, if one is
     writing trivial programs (the definition of programming in C), then why
     bother with Lisp?

I was getting a little upset about the UNIX bashing going on in slug.
But I realized that UNIX does have it's problems (the command names and
"keywords" are pretty funny).

But C bashing is going too far.  In many ways, C is a much more powerful
language than common-lisp.  I can think of many non-trivial applications
that require number-crunching, text searching and sorting, and/or massive I/O
that can't afford to wait for garbage collection or consing of any sort:

	Computer vision (although I am not an expert)
	Statistical Models for Natural Language
	Regular expression search (a la grep)
	Any application associated with loading large data sets into a
		connection machine without a data vault

There are many situations where you want to have control over the way memory
is allocated and where in memory things get written.  In the case of large
data sets, you frequently want to allocate memory in such a way that data
objects that will be compared or used together will be close together (i.e.
on the same page) in memory.  Otherwise your OS goes crazy.  This type of
situation (IMHO) *demands* C programming.

Lisp is great for writing very clear, concise code.  But when clear, concise
code causes your OS to thrash on large data sets, it's time to recode the
algorithm in C.  IMHO, it is precisely the non-trivial problems that
eventually need to be written in C.

-- David Magerman
Stanford University
CS Dept.