From ... Path: bga.com!news.sprintlink.net!sun.cais.com!news.cais.com!interlog.com!winternet.com!uunet!pipex!sunic!trane.uninett.no!eunet.no!nuug!nac.no!ifi.uio.no!gyda.ifi.uio.no!enag From: Erik Naggum Newsgroups: comp.lang.lisp Subject: Re: Why do people like C? (Was: Comparison: Beta - Date: 16 Oct 1994 12:44:39 UT Organization: Naggum Software, +47 2295 0313 Lines: 62 Message-ID: <19941016T124439Z.enag@naggum.no> References: <37p0uq$2gn@omnifest.uwm.edu> [Mark Hopkins] | And there you have it, the essential difference and the preference for | C. One language gives you the option to include X in Y or not, and the | other does not. | | In general, this will argue for any low-level language with an | unencumbered implementation (e.g., no behind-the-scenes subterfuges or | processes), which simultaneously also has an abstraction facility in it | to allow you to write applications in as high a level manner as you | want. In other words, a language that is low level and high level at | the same time. have you looked behind the scenes of the C language recently? it's naïve to believe that nothing wild is going on. for starters, see malloc and free. then look at longjmp. then at the calling sequence and techniques for variadic functions compared to non-variadic functions. take a look at the stack frames of function calls in C programs when you feel ready to be let down. have you looked behind the scenes of those "high-level" programs done in C? they're implementing badly what lisp compiler builders have worked on, specifically, to make efficient, not kluge up to make their programs run at all. this difference of focus makes the behind-the-scenes view of such applications much, much less appealing than that of a language with real support for these things. because of the mess behind the scenes in C, you can't even build all the real languages you want in it without either too much overhead or lots of non-portable assembly code. | One might also look at the syntax as an obvious reason a preference for | C. obvious? I think you should look at C's typedef when you have some spare time. and be sure to take a close look at the "macro preprocessor". | LISP, itself, was never meant to be a purely bracketed language. That | syntax was designed as a holdover until the language could be complete | -- a first generation in a bootstrapping process. It's just that the | McCarthy never got around to finishing his project. Undoubtedly, part | of the reason was that Context Free Grammars were hardly even known | back then. could you provide some references for this history lesson? I'd like to update my insufficient view on this one. | LISP is, after all, the second oldest language in common use. so? how long do you think C will survive the test of time, or C++? I thought I knew all there was to know about programming, and found it more and more boring as time went on. then I had to use C++, and since that is the most horribly kluged language in popular existence, I started to look around for real languages. it has been a humbling experience. so much fun is going on in functional languages! not just syntax, but ideas, concepts, principles. and, what's worse, it's been going on for decades. it's just that I lost out on all this while I thought C was the Language. bummer. # -- Microsoft is not the answer. Microsoft is the question. NO is the answer.