Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!usc!apple!agate!shelby!csli!poser From: poser@csli.Stanford.EDU (Bill Poser) Newsgroups: comp.lang.misc Subject: Re: Fortran vs. C for numerical work Message-ID: <16671@csli.Stanford.EDU> Date: 4 Dec 90 01:14:41 GMT References: <2392:Nov2902:59:0590@kramden.acf.nyu.edu> <7339@lanl.gov> <1990Nov30.145649.17688@ux1.cso.uiuc.edu> <1990Nov30.163613.9562@alchemy.chem.utoronto.ca> <1980@mts.ucs.UAlberta.CA> <18016@hydra.gatech.EDU> Reply-To: poser@csli.stanford.edu (Bill Poser) Organization: Center for the Study of Language and Information, Stanford U. Lines: 54 Would someone care to enlighten me as to why he or she thinks that C has a difficult syntax and is difficult to learn? I just didn't have this experience, and I came to C after having learned Fortran, Assembler (MIX, on paper, and then the assembler for an obscure Japanese laboratory mini) and BASIC. I understand the position of LISP fans with respect to C syntax, since LISP syntax is clearly simpler (though I don't entirely agree that this is a good thing, but that's another issue), but why Fortran fans think that C syntax is more difficult is something that I find mysterious. As far as I can tell, the difficulties that people find in C stem from three sources: (a) C provides (via pointers and recursive functions) the ability to construct elaborate recursive data structures and the ability to traverse them. I suggest that the difficulties here are due to the fact that many programmers, especially Fortran programmers, are unfamiliar with data structures and recursion, but the problem is that these people need to learn these concepts, not a defect in the language. To make an analogy, most Algol-class languages lack closures, and people brought up on them may find it difficult at first to manipulate closures in a language like Scheme, but surely it is not a defect of Scheme that it provides them. (b) A few C constructs resemble constructs in other languages but are not the same. People brought up on these other languages don't like this. For example, gripes about the C switch statement seem basically to amount to the fact that it isn't the same as the Pascal case statement. (c) C doesn't provide run-time array bounds checking and some other safety features. I just don't see that this is that important. Surely it can be avoided by careful coding, and systems like Saber-C are available to do this at least at development time. But in any case, it isn't a syntax issue. In short, there are a number of modern language features that I like that C doesn't have, such as automatic storage allocation and garbage collection, closures, first class functions, out of band success/failure, and procedure suspension. These make me sympathetic to arguments for using languages like ICON and Scheme, at least for some purposes. But I really don't understand the arguments coming from Fortran enthusiasts. So, would someone care to explain why, from the point of view of Fortran, C can be said to have a complex syntax and to be difficult to learn? N.B.: I am aware of the efficiency arguments having to do with aliasing. That's a different issue. Bill Brought to you by Super Global Mega Corp .com