Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!bellcore!uunet!mcsun!ukc!mucs!m1!bevan From: bevan@cs.man.ac.uk (Stephen J Bevan) Newsgroups: comp.lang.misc Subject: Re: What ``first-class'' means in comp.lang.misc Message-ID: Date: 10 Jan 91 09:04:14 GMT References: <25449:Jan823:00:2991@kramden.acf.nyu.edu> <1991Jan9.061340.21668@d.cs.okstate.edu> <2772@charon.cwi.nl> Sender: news@cs.man.ac.uk Distribution: comp Organization: Department of Computer Science, University of Manchester Lines: 41 In-reply-to: guido@cwi.nl's message of 9 Jan 91 19:37:41 GMT In <2772@charon.cwi.nl> guido@cwi.nl (Guido van Rossum) writes :- > As I read them, all those "definitions" of first-class don't really > define it, but merely use a convenient term to convey a somewhat vague > but useful idea which is then explained more precisely. I disagree. The definition given by Norman Graham (<1991Jan9.061340.21668@d.cs.okstate.edu>) seems to capture exactly what it means for an object to be first-class. I don't see anything vague in the idea at all. > On the other hand, the problem is no worse than the lack of built-in > dynamic data structures (such as variable-size arrays) in C -- everybody > knows how to roll their own, and for some this possibility is essential > because it means they aren't stuck with a built-in feature that may be > too slow or inflexible for a particular application. The efficiency argument (yet) again. There are a number of reasons for writing a whole application in a single language%. However, I don't think efficiency is one of them. I'm sure everybody knows the following steps :- Write in a high level language. Profile it. Identify the bottlenecks. Re-code or re-write in a lower level language. However, most seem to equate ``high level langauge'' with C and low level language with assembler. Why not try ``high level langauge'' = Scheme* and ``low level language'' = C. It works for me, your mileage may vary. Stephen J. Bevan bevan@cs.man.ac.uk % I'm currently in the middle of writing a medium sized C program (20,000 LOC). I would prefer to write in some other language (preferably Scheme/CommonLisp) , but I'm constrained by what compilers other people have. * Replace by your personal favourite e.g. Prolog, Smalltalk, CommonLisp, Self, Icon, ... etc.