Question:
I'm new to programming, and I decided to go along the lines of learning
scheme and forth instead of the traditional languages (C, java, perl,
python... etc). I plan to stay with those languages (and tcl too,
perhaps smalltalk) for perhaps a couple of years or more, perhaps a lot
more, learn their literature well (HTDP and SICP for scheme, SF/TF and
PF for forth), and use them as time allows. I have no urgent need to be
programming, no ambition to work as a professional programmer, and I
don't know yet what my eventual interests will be except that I like
fields such as statistics and AI.
Now I know well that two persons going through the same material could
get markedly different comprehension, and I know well that it will
depend on how much I practice using them, but that's not my question.
My question is, am I making a mistake by committing perhaps a couple of
years or more to those two (or 4) "unpopular" languages?
So far the impression I have is that mastering those three languages
will make learning other languages trivial. Am I mistaken?
Answer:
I don't think "trivial" is quite right. For many languages, and most
especially the commercial languages, a primary difficulty is in
mastering the many details they put in your way, and in learning how to
translate a design you have in your head into clear, solid,
maintainable, code /despite/ all the crap. E.g. learning C++ syntax
and semantics is decidedly non-trivial, whatever your background. But
you still do have to learn all that detail -- even though, once you've
done it, you'll find almost nothing that you haven't already leaned
with much less effort in (at least) one of Scheme, Smalltalk, or Forth.
But since you don't expect to become a commercial programmer, it's not
clear why you should worry about whether leaning Scheme will make it
easier to learn C++ (for example). I don't see that you have a reason
ever to want to learn C++ (for example). It may be that none of
Scheme, Smalltalk, or Forth will turn out to be the language you like
best (maybe you'll end up doing everything in O'Camel...) but the
chances are that whatever language(s) you end up preferring will have
the kind of simplicity exemplified by those three, so learning them
will definitely help you learn others.
Submit Your
Own Answer!