[Tutor] help
alan.gauld@bt.com
alan.gauld@bt.com
Thu, 17 Aug 2000 12:49:38 +0100
> old-timer (though new to Python), - forget this 'as many languages as
> possible' business. Firstly, learn one language at a time,
> and secondly, you won't need to know very many.
Hmm, I'm afraid I disagree with this.
Most of the bigger projects I've worked on(*) had more than
3 languages within the single project. The most complex had
at least 7 languages being used.
Also each language teaches you somethjing about programming.
For example the Smalltalk view of OOP is very different to
the C++/Java/Object Pascal view. And LISP does it differently again.
Similarly languages like Haskell and Prolog take a still
different approach.
But all of these approaches can be used in vanilla C, say, once
you are aware they exist! If you are stuck with only a few
languages - especially if they are all imperative in nature
you will be faced with the real danger of "If all you have
is a hammer every problem looks like a nail"
> It's better to know three or four well than 20
> badly.
I do agree however that you should know 3 or four very well.
And knowing 20 badly, in the sense of trying to force every
language to behave like the ones you know already is no good.
But you can learn and use lots of languages at a less than
expert level and still understand the underlying concepts
that make them different. (eg the massive use of mixins in
Lisp)
> Provided that they are the right three or four, that is!
Which is the difficult bit. How do you define 'rightness'?
Is FOCUS right? or COBOL? or C++?
Both are very effective languages for their particular domain
but would probably not help a web developer very much...
Or do you go with the marketability, in which case it might be:
VB, C++ and Java.
But I doubt you'd get any big insight or improvement in programming
skill by learning those three!
Alan G.
(*)
By bigger I mean more than say, 100,000 lines of code.
Certainly every project of more than 1,000,000 LOC will use
multiple languages, its almost impossible to avoid. Whether
it be (COBOL, REXX, JCL, SQL) on MVS or (C++, Perl, Shell, SQL)
on Unix or whatever.