Subject: Re: Common LISP: The Next Generation
From: Erik Naggum <erik@naggum.no>
Date: 1996/08/28
Newsgroups: comp.lang.lisp,comp.lang.dylan,comp.lang.scheme
Message-ID: <3050214712631064@arcana.naggum.no>


I have never understood the value of the "hello, world" that "mathew"
brings up.  it is not new, it is indeed prevalent in certain circles.

the test shows not how small (or not) executables a programming language
can produce, like so many people believe.  the test shows only how tightly
coupled the operating system and the programming language are.

the 92-character program

exit (code)
{
  _exit (code);
}

main ()
{
  write (1, "hello, world\n", 13);
  return 0;
}

compiled on my sparc-sun-sunos4.1.3 with cc -o hello -n -s hello.c yields a
856-byte object file that is "sparc pure executable".  most of the overhead
here is from a crt0.o file that cannot junk its dynamic loading preamble.
the definition of exit is to avoid the overhead of the C library's version.

now, this 856-byte executable plugs right into the Unix operating system,
and does its job without any hassles.  however, it is an inordinately large
program for what it does!  under e.g., TOPS-20, one would write a program
with two both system calls (and some setup) with constant string data and
no other data; it would require something like 16 words of preamble, 3-4
words for the code, and 3 words for the string.  clearly, programming in
MACRO-20 under TOPS-20 is the most ideal programming environment there is!
according to the "hello, world" test, that is.

is it useful to compare languages on the basis of how tightly coupled they
are with the operating system?  I don't think so.

#\Erik
-- 
my other car is a cdr