Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site rtp47.UUCP Path: utzoo!watmath!clyde!bonnie!akgua!mcnc!rti-sel!rtp47!vollum From: vollum@rtp47.UUCP (Rob Vollum) Newsgroups: net.lang.lisp,net.lang Subject: Re: What language do you use for scientific programming? Message-ID: <147@rtp47.UUCP> Date: Fri, 16-Aug-85 13:02:04 EDT Article-I.D.: rtp47.147 Posted: Fri Aug 16 13:02:04 1985 Date-Received: Tue, 20-Aug-85 05:28:47 EDT References: <909@oddjob.UUCP> Distribution: net Organization: Data General, RTP, NC Lines: 59 Xref: watmath net.lang.lisp:525 net.lang:1706 In article <909@oddjob.UUCP> paul@oddjob.UUCP (Paul Schinder) writes: > >I've been curious for a while what scientist/engineering types on the net >use for scientific programming. >>The advantages of fortran in my opinion are 1. >at least two real precisions, 2. standard and powerful i/o routines, and 3. >very wide availability with great portability (because of the existance of a >standard for the language). Is there any other language which shares these >properties but also has some of the constructs I would like to use (while, >do ... while, case, structures, pointers). > >Reply via e-mail; if there is a large enough response, I'll summarize in a >few weeks. Thanks. >-- > Paul Schinder (I did reply, at length, via e-mail, but I had to post here as well. I'll keep it short.) I vote for Common Lisp. Beyond the excellent programming environment it provides, it gives a rich set of numerical operations as well. It has: infinite precision integers, complex numbers, many flavors of floating point numbers, and for those who don't like roundoff error, true rational numbers. As for control structure, it provides iteration, conditionals, lexical closures of functions (i.e. functions as first class citizens), and recursion, to name some important ones. It also uses lexical scoping for semantic cleanliness, and for when you need(?) global variables, it provides "special variables", which are essentially globals where you can stack values by binding, or assign new global values by straight assignment. Common Lisp supports a robust structure facility for data abstraction, and a macro-defining facility for language extension. For I/O, the FORMAT statement and use of the abstract notion of I/O streams provide a more robust I/O engine than most people could ever fully use (a good point?). For a standard language, well, it's trying. One of the ideas of Common Lisp is to unify the Lisp community. We'll see if a 'real' standard ever happens. Concerning efficiency, there is no reason, given improved compilers that handle type-inferencing and type-propagation, for example, that compiled Common Lisp can't be as fast as compiled anything else in most cases; certainly in most 'simple' numerical applications that would be handled by a Fortan program (simple here means 32-bit integer or single- or double-precision arithmetic). (Did I keep that short?) --- -- Rob Vollum Data General Corp. Research Triangle Park, NC !mcnc!rti-sel!rtp47!vollum