[NTLUG:Discuss] Direction Recomendations
Christopher Browne
cbbrowne at hex.net
Thu Jul 20 22:46:32 CDT 2000
On Thu, 20 Jul 2000 18:44:10 EST, the world broke into rejoicing as
Steve Baker <sjbaker1 at airmail.net> said:
> Richard Cobbe wrote:
>
> > Start with a high-level language. My personal favorite is Scheme (see
> > http://www.rice.edu/CS/PLT/ for an LGPLed implementation that runs on
> > Linux), but there are any number of other choices: ML, perhaps Python,
> > perhaps Smalltalk, plenty of others.
>
> This guy specifically said that he wants to learn so he can get a job.
>
> For that, I don't think Scheme is a good choice. There just isn't
> enough work out there for people using it.
It's a potent tool for learning Computer Science, but I'll go along
with the "not commonly advertised for" part.
Learning Scheme would be valuable as part of becoming _REALLY_ skilled
in programming, but it is not an immediate method for "getting a job." I
suspect it's more widely used in industry than, say, Standard ML, or
Haskell, but that's not saying too much. I use Common Lisp at work to
do set-oriented analysis, but that's _very_ secondary to my work.
(And nobody else in the organization would have a _HOPE_ of supporting
the code; I'm the only one that it's useful to. I do "magic" :-).)
> C, C++, Java - perhaps (ick) Perl and (even ickkier) Visual Basic
> are the most commercially useful languages I think.
Those are all good candidates for being considered "widely used in
industry."
> Since we are on a Linux list here, we won't go with Visual Basic.
>
> I personally dislike Perl - but I think even it's advocates would
> agree that it's not a good first time language.
There are some that would disagree, but I'd agree with you on most
counts. I'd consider Python to be a _better_ "first time language."
> C++ and Java are pretty similar in many ways.
>
> Whether you learn C first and then C++/Java or vice-versa is a matter
> of opinion.
>
> Some people claim that having learned the 'procedural style' of C makes
> it harder to learn C++ because procedural style first has to be 'unlearned'.
>
> Well, I can somewhat agree with that. I had a hard time unlearning C,
> and I was writing C programs in C++ (in effect) for YEARS because of
> that.
>
> However, for a total beginner, you are first worrying about things
> like
>
> x = x + 1
>
> ...being an assignment and not a math formula!
>
> Pointers, the mere *concept* of a loop, if and subroutine. Variables
> and arrays...all of those things have to be learned before we even
> *THINK* about object-oriented versus procedural style.
>
> So, perhaps learning C first is a smaller step - and taking small steps
> is the right way to learn.
K&R C is a much simpler language than ANSI C, and if you progress from
"K&R" to ANSI, many of the features that get added are the things that
C++ introduced, which means it may be a natural step to move on to
C++ from there.
> > Also, I don't really know Smalltalk or Python well enough to be able to say
> > anything intelligent about them.
>
> Python is a LOT like C++. You can learn it in a day if you know C++.
Python is a quite nice language; sort of a "cleaner" alternative to Perl.
> Smalltalk is to little used - and again we come back to what you'd learn
> in order to get a *JOB*.
There are some quite lucrative Smalltalk niches, but getting into that
niche is the challenge. It might be a better idea to look at Objective
C, which puts the (fairly nice) Smalltalk "syntax" on top of C, and
provides a kinder, gentler way of adding OO capabilities to C than C++
provided. But that's still a very "nichey" system; there is not
_WIDE_spread hiring of Objective C folk.
I think I'd commend Java fairly highly as an option. It has many of
the weaknesses of the other descendents of typeless BCPL (parent of C)
and class-oriented Simula (step parent of C++), but has the merit that
it is a _fairly_ dynamic garbage collected language. While it has
some significant demerits, that is true for virtually any language you
might choose to look at.
--
cbbrowne at acm.org - <http://www.hex.net/~cbbrowne/>
"Microsoft is sort of a mixture between the Borg and the
Ferengi. Combine the Borg marketing with Ferengi networking..."
-- Andre Beck in dcouln
More information about the Discuss
mailing list