Re: Whats the best language to learn...
- From: Juha Nieminen <nospam@xxxxxxxxxxxxxx>
- Date: Sun, 17 Aug 2008 23:54:02 GMT
Pascal J. Bourguignon wrote:
The best programming language to learn as a beginner is probably scheme.
Is that a joke?
Functional languages like scheme and haskell may be wonderful for
programming gurus and mathematicians (and if you are both, better).
However, people who are infatuated with the functional paradigm fail to
understand the reality of the human mind.
The average person does not think functionally nor recursively. A
recursive definition might be compact and beautiful, but it's not the
way the average person thinks about things. It may be how a
mathematician and a specialized programmer thinks about (some) things,
but not how normal people do. Even a simple compact recursive definition
is very difficult for the average person to understand.
The average person thinks about tasks using two elements: Concepts and
sequential steps.
A food recipe is the perfect example of this: A food recipe consists
of concepts (such as ingredients and measurements) and sequential steps
(a list of things what to do, in which order and how).
In programming these two elements have a natural translation: Modules
and imperative programming. A module is a concept, and imperative
programming is the sequence of steps what to do with those concepts. As
much as programming gurus detest imperative programming, it's just the
reality that the average person thinks imperatively and understands
imperative algorithms easiest.
Many object-oriented programming languages use these two paradigms,
ie. modules and imperative programming. Thus it's a logical consequence
that a simple, high-level OOP language would be the best for a beginner.
(Well, in fact a modular programming language would be enough, but the
few modular languages which have ever existed never got very popular, so
the next best thing are their big brothers, the object-oriented languages.)
And yes, like "imperative programming", also "object-oriented
programming" is nowadays more a swearword than anything else among the
know-it-all programming gurus. However, it just works. There's no way
around it. It might not be the silver bullet, but it's the best
beginner-approachable paradigm we have.
Functional programming is nice, but it just isn't how people think
about things.
I would still learn C and Smalltalk, before C++.
Hell no! Smalltalk maybe, but C? No, no and a thousand times no!
Make a beginner learn C as his first language and he will struggle to
learn good programming for YEARS to come. Just no.
(For the record, personally I just love C++ and it's my language of
choice for most things. I also would be able to develop in C if I was
forced to (although it would really be a horrible nightmare). However, I
would never, ever, ever recommend C for anyone as their first language.
Ever.)
.
- Follow-Ups:
- Re: Whats the best language to learn...
- From: santosh
- Re: Whats the best language to learn...
- From: William Pursell
- Re: Whats the best language to learn...
- From: cr88192
- Re: Whats the best language to learn...
- From: Ben Bacarisse
- Re: Whats the best language to learn...
- From: Pascal J. Bourguignon
- Re: Whats the best language to learn...
- References:
- Whats the best language to learn...
- From: Gits
- Re: Whats the best language to learn...
- From: Pascal J. Bourguignon
- Whats the best language to learn...
- Prev by Date: Re: Algorithm for right-to-left comparison of strings
- Next by Date: Re: Whats the best language to learn...
- Previous by thread: Re: Whats the best language to learn...
- Next by thread: Re: Whats the best language to learn...
- Index(es):
Relevant Pages
|