View Single Post
  #22   Report Post  
Posted to rec.crafts.metalworking
Ed Huntress Ed Huntress is offline
external usenet poster
 
Posts: 12,529
Default Beginning programming question


"DoN. Nichols" wrote in message
...
On 2011-03-03, Ed Huntress wrote:
I know, I should ask this somewhere else, but I don't trust somewhere
else...

My son is an economics researcher for a think tank, and he uses
statistics
programs -- SAS, SPSS, and SDATA -- all day long. He took it upon himself
to
learn scripting for all three, an he's become pretty facile at writing
scripts in their dedicated scripting languages. Now he wants to learn
something about programming.

He has no interest in becoming a programmer, but he'd like to know
something
that may be useful in his work (he had a math minor, and he's now going
for
a Masters in applied mathematics). I used to dabble in C and Assembly, so
he's asked me what he should learn. I have no clue.

Some people he works with have recommended Python. I know nothing about
it.
I suggested C, but I made the mistake to telling him it's like Latin for
a
language major, and he hated Latin.


It is more like a missing link between assembly language and a
high-level language.

Things like C++ have too many layers of abstraction, and result
in massively bloated programs, so I tend to avoid that.

He's not going to be doing anything
that
relates to the Web. His interest is mostly in things that will help him
deal
with data.


Given his intended use, I think that C (for all that I use it a
lot) is not the best choice. Among old languages, FORTRAN has massive
math libraries which could help.

Or for something somewhat newer and *very* math focused, APL is
a likely choice -- though it does use a weird characterset to represent
all the math operations.

It is infamous for being a write-only language. You can do
amazing things in a one line program, and weeks later not be able to
figure out how you did it -- but the program still works.

I've not taken the time to learn it, however -- I'm not that
strong in math.

If he were interested in artificial intelligence, the best
language is probably lisp -- or at least used to be.

Pascal is a good language to start with, actually, because it
makes it very difficult to write poorly-structured programs. However,
most implementations of it also make it rather difficult to make complex
programs which deal with strings a lot. (I wrote a membership database
program in it when I was learning it, and when I ported the basics of
that program to C, it was *much* easier.

BTW -- with linux systems, you can usually get gcc (GNU C Compiler)
which also includes A couple of versions of FORTRAN and possibly
even ADA (A language written for the DOD patterned after Pascal,
but designed for writing serious application programs, not for
teaching as Pascal was.)

However what you *don't* get with that Fortran is the ton of
math libs -- which are usually sold to mainframe users at
serious prices. You'll get a reasonable subset, but nothing
like the massive collection which is out there in the mainframe
world.

Enjoy,
DoN.


Thanks for the tips, Don. FWIW, Fortran is what I learned in college.
Actually, I took a course, but never really learned it, because we had
exactly two computers on campus, both of which were IBM 360s. I think it was
Tuesdays that I had to turn in my punch cards at the computer center. On
Monday, I'd get my output -- which almost always had an error or two. g

You could go a month or more getting one program to run right. That meant
four tries. It's a wonder we learned anything then, huh?

--
Ed Huntress