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]

Reply via email to