Disclaimer - I have no fortran experience. I don't agree with the particular ideas you mention as important, but I understand the point about the initial experience being better with a "clean" language.
I think clean language is one that doesn't have leaky abstractions (think C arrays). IIUC, Fortran solves this by simply having only a few relatively concrete abstractions, whereas Smalltalk\Lisp solve this by having few meta abstractions. Maybe this makes Fortran easier to start with, because an array is easier to comprehend than a function, but it would seem to become frustrating quite quickly. In the short term, one might avoid becoming frustrated in practice if the problems posed fit the abstractions provided by the language (input sizes are bounded, mostly numeric functionality). But I've come to despise repetition. If you can't abstract loops, you'll always be spending half your time implementing and debugging them, which can get quite boring. So I want stronger abstractions and therefore choose higher level languages. I think most programmers would find their work more interesting if they did. And it is the same for learning (except maybe in the beginning - for that purpose C64 Basic served me well). Daniel Ehud Karni <[EMAIL PROTECTED]> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hello All, > > I want to add my 2c worth thoughts on this subject. > > First let me state that I know some programming languages (practically, > I've written applications in all of them) - Fortran, Algol, Cobol, > C, Lisp (emacs, not CL) and about 10 various assemblers (again, with > practical experience). I don't refer to scripting languages (shell, > perl and even awk) as programming languages (although they share the > basic principles and I use them a lot). > > I think the best language to teach young persons is Fortran. After a > VERY SHORT explanation of its principles and an example, a useful > program can be written. It takes much more time to achieve the same > level of usefulness with C. > > I have two anecdotes to illustrate this point. I learned Fortran after > a lecture of 1 hour by the late Gidon Zwas (BTW, a great teacher) 34 > years ago. I could write many programs that did real things (I used > it for the Physics lab reports) even before I read the CDC Fortran RM. > > Few years ago my daughter and her boyfriend had to take a course in > computer programming (in the Technion) for their Chemistry degree. > They were offered either Fortran or C. My daughter took Fortran (I > must have influenced her a little), her boyfriend took C. I saw the > their homework. By my judgment the Fortran exercises were concerned > more with the algorithms involved, while the C ones were dealing > more with the technical staff (like the difference between chr[0] > and *chr). > > My big point is: A first programming language should concentrate on > 3 principals only: > 1. Variables and assignment, i.e. a variable name is only a place > holder, and I = I + 2 change the value it the `I' place. > 2. Translation of algorithms to statements (i.e. conditionals and > looping). > 3. Use of (multi dimensioned) arrays. > > All the rest (data structure, subroutines, structured programming, > data abstraction, etc.) are important but must come after the > comprehension of the above principles. > > Ehud. > > > - -- > Ehud Karni Tel: +972-3-7966-561 /"\ > Mivtach - Simon Fax: +972-3-7966-667 \ / ASCII Ribbon Campaign > Insurance agencies (USA) voice mail and X Against HTML Mail > http://www.mvs.co.il FAX: 1-815-5509341 / \ > mailto:[EMAIL PROTECTED] Better Safe Than Sorry > -----BEGIN PGP SIGNATURE----- > Comment: use http://www.keyserver.net/ to get my key (and others) > > iD8DBQE+5yCGLFvTvpjqOY0RAtICAJ4r8cFaw5Sb3UFq8JusUZ0JfL1b6QCcCQjK > eNG8ECOdeJ3OGjd8/s1ySiI= > =vw5h > -----END PGP SIGNATURE----- > > ================================================================= > To unsubscribe, send mail to [EMAIL PROTECTED] with > the word "unsubscribe" in the message body, e.g., run the command > echo unsubscribe | mail [EMAIL PROTECTED] ================================================================= To unsubscribe, send mail to [EMAIL PROTECTED] with the word "unsubscribe" in the message body, e.g., run the command echo unsubscribe | mail [EMAIL PROTECTED]
