From: declrckd@rtsg.mot.com (Dan J. Declerck)
Subject: Re: Scientists as Programmers (was Re: Small Language Wanted)
Organization: Motorola Inc., Cellular Infrastructure Group
Distribution: na
Date: Wed, 2 Sep 1992 20:50:38 GMT

In article <92245.124125KGZXK@ASUACAD.BITNET> Zafer KADI <KGZXK@ASUACAD.BITNET> writes:
>I have been on both sides of issue (I have MS's in both Mech.Eng CS)
>
>There is no one wrong or right on the issue of :
>
>1. FORTRAN or anyother language.
>   All you Computer Science major that think Fortran is so bad    can
>you tell me anyother language that has all the forms of numbers
>that the scinetist use such as integers, real numbers and COMPLEX
>numbers.  If I am a CFD or any other dicipline that require
>complex numbers, which language should I use?  Or should I become
>a proficient C programmer to be able to develop my own comlex number
>structure?  I am just at the beginning of desiding to leran how to program
>should I use C  and make all kind of mistakes that are very difficult to
>find or use Pascal and not able to have any tools for developing the
>program but furthermore develop slower programs, and in bothe cases
>no COMPLEX numbers.  HMMM.. there is a language called FORTRAN and has complex
>numbers, it has Scientific Libraries, it has all kind of tools to debug and
>develop programs, why not use that?   Yes, my Computer Science friend
>told me that FORTRAN is the worst language in the world.  He must be right
>and all those people in the industry must have eaten their brains for lunch.

Try C++, creating an object called COMPLEX, then re-define the operators of
+ - and * to get what good ol Fortan gives you. Since I have a background in CS,
I can tell you that modern block structured languages lend themselves to 
optimization better than older unstructured ones (a CS compiler course will teach you
this). Therefore by moving to C++ your code would be more readable AND would be 
faster (YMMV, it depends on the compiler). You might consider a C++ class,
it sure helped our RF simulation people.
C++ can catch the wierdness of C at compile time, about as good as pascal,
but it does not have array bounds checking.
Regarding libraries, there are companies that sell libraries, but I'm not sure
they're like LINPACK, or any other thing similar, since I don't do scientific
programming.

>
>This is a true story and happend last Spring when I had to take  S/W
>development class.
>
>The instructor asked how many know FORTRAN :
>
>You heard the same laughs and smurks as we hear all the time on this
>netpost, and only  3 people out of (60) raised their hand.
>
>Then he asked how many know COBOL :
>
>4 hands came up.
>
>(This was senior level class, with most people graduating).
>
>He just said welcome to the real world, when you get out
>do not expect people to ask you to help, develop or program in
>Pascal or even C.  (Ada sometimes), but COBOL and FORTRAN.
>
>Issue # 2:
>
>About having global variables or not and if making calls slows the
>program and optimization:  Yes it does.

Same with C or C++, depends how you build your program.
Most good programmers know this.

>
>About the MIPS compiler :
> This compiler is not faultless :
>  Example : Has a problem with complex numbers in FORTRAN when the
>            -r8  option is used (does not promote them, even though
>            it should.  If you have a DEC or an SGI they use the
>   MIPS compiler
>
>   To have the optimization of the nature that the previous person
>mentioned about the compiler is to compiler everything together.
>That will break the consept of modularity and the need to develop
>each part of the program as a subrotuine or function, since at
>the end you can insert it.   There are switches as I remember for that compiler
> to insert code.
>
>As you see no one will win on this.  Do you want the program to be faster or
>clearly written for your own standards.....

This is not always the case, if need really smokin' speed, how come you're not
programming in assembler, like Herman Rubin??



>
>Issue # 3
>
>Most of the professors here have conections with the industry and most of the
>reseacrh done at ASU in Computer Sciences is closelly industry related.
>No one can accuse profs of being in another universe here (in my opinion)
>

Sounds OK to me... Does the physics department help out medical sciences by designing
radiology equipment?? (Fermilab does this).


>
>Issue # 4
>CS major has no right of accusing other majors of not knowing the computers
>well enough, because it mostly comes down to the person.

Whole-heartedly agree!
We do like to inform the non-CS about new stuff, like the above paragraphs.
CS is kinda like Tool and Die, we make tools for others to use, even other CS
people. Some of this stuff isn't simple, look at UNIX or Perl, or JCL (ugh!).


>
> Issue # 5
>I totally agree that CS majors do not have enough knowledge
>in mathematics and physics and if you are taking classes
>in Computer Graphics or Computer Aidded Design  all you CS major that
>thing that programming is everything in your job or knowing how
>the computer works will realize it isn't so.
>The above opinion is not only mine but most of the  profs in
>the CS dept. at ASU, mostly Comp. Graph. and CAGD.
>

I don't think so, I learn new things every day. Right now I'm learning why the
physics community is really pissed at us (grin!). I'm my spare time, I'm trying
to learn the concepts of combustion sciences, so I can build a better engine controller.
The past application of comp sci to this area is really in the dumper.

>
>  Issue # 6
>
>On the other hand as a consulatnt at ASU, I have seen scientists
>that do not have the idea what computer is and when the computer
>does something "illogical" they say it  is not them but
>
>the computer.
>One person said:
>
>     "Your computer is stupid !"
>
>In my opinion, if you want to learn how to program, you should at least know
>about how the numbers are stored on the computer .

For your stuff, machine epsilon is VERY important (I learned this in a numerical methods
class in the Math Department of my undergrad university). I use it today, in
embedded work by simulating floating point on a fixed point processor.


>
>The amaizing thing is I have seen papers written based on some strange reslt.
>Most of the old Fortran 77 books talk about it but the new once skip it
>and so many people skip those pages anyway.
>
>My two cents
>
>No one is wrong and no one is right as far as the job gets done.

True, but sometimes it is better to use a screwdriver instead of a hammer.
It depends upon the job.

-Dan


-- 
=> Dan DeClerck                      |  EMAIL: dand%isdgsm@rtsg.mot.com   <=
=> Motorola Intl Subscriber Group    |                                    <=
=>                                   |  Phone: (708) 632-4486             <=
----------------------------------------------------------------------------
Newsgroups: comp.edu,comp.lang.fortran