python as a first language?

Martijn Faassen m.faassen at vet.uu.nl
Wed Sep 29 09:45:34 EDT 1999


Craig Hagerman <NOSPAMcraig at osa.att.ne.jp> wrote:
> Hi,
> I want to get some feedback on how good Python is to learn for a beginner.
> I am interested in learning programming (OOP especially). I studied (bit
> didn't really learn) Fortran ages ago, studied formal logic (math) in
> university and have been playing around with web technologies (Javascript
> et al) and now want to try out bigger and better things.

> What are people's
> thinking regarding Perl vs Python for a beginner,

Not to start a flame war, but Python may be easier to learn for a beginner,
as Python has less special cases (in its syntax) than Perl. Python also
has a well-integrated object oriented system, while Perl's is rather 
unconventional..  Perl tends to produce programs that are a bit faster, 
and offers more extension modules (though Python already offers plenty).

For the rest Perl and Python are about equal. 

> or how about Python
> compared to Eiffel or Sather for this purpose? Any good suggestions for
> what road I should head up first?

It's hard to say. I haven't done more than glance at the Eiffel and Sather
references in the past, but they both seem to be well-designed languages.

Eiffel and Sather are less dynamic than Python. The advantage of this is
that they can compile to faster code, and that, once you have a well-designed
system, you can set it in stone and build on it without further worries.

Python is very flexible and dynamic; your objects can (under usual 
circumstances) always be changed during the running of the program. The
disadvantage of this is that Python code doesn't run as quickly as
code written in some other languages (but still more than quick enough
for most tasks), and that you set some interfaces in stone (other
programmers could always mess around with them, if they were 
malicious or stupid). But the advantage the flexibility is that you can
very rapidly code something that works, without getting trapped in
design paralysis (something that often happens to me when I write C++
code).

The quick result nature of Python, combined with the clean design, may make
it especially suited towards beginners. Beginners expect quick results to
remain motivated enough to continue learning. At the same time it's
bad to foist something onto beginners that teaches them bad programming
practices, but Python is just fine in this respect as well. Though of course
you can write messy code in any language.

Regards and good luck,

Martijn
-- 
History of the 20th Century: WW1, WW2, WW3?
No, WWW -- Could we be going in the right direction?




More information about the Python-list mailing list