Russel Winder:

> Uuuurrr... this is just wrong on so many levels.  To avoid writing an
> 10,000 word essay, I'll just stick to:  Python and Groovy have proven to
> be excellent languages for teaching first year undergraduates and
> adults.

I have chosen Python to teach programming at new university students that know 
nearly nothing about programming. I think Python is among the best languages 
currently available to teach programming (Python partially comes from ABC, a 
language mostly designed for teaching), but it's far from perfect still for 
this purpose:

- I appreciate Python significant indentation a lot, but I've seen it cause 
problems to some students.
- Dynamic typing is handy, but it makes it a bit harder to learn the discipline 
of types.
- Confusing variable creation and variable update is not good to teach 
programming to newbies and causes problems.
- Many programming newbies are blind to the diffences in case, for them FOR and 
for are the same word, so a case agnostic language as Pascal is may be better 
for such people.
- The lack of built-in rationals doesn't help.
- Lazy computations, introduced since some years in Python are a useful and 
powerful tool, but for a newbie it's one more complexity to learn and manage.
- All variables managed by reference (by name) is good for uniformity (and 
efficiency!), but it also introduces some complexities and bugs that newbies 
don't like a lot.
- Python doesn't support recursion in a good enough way.
- Python error messages and debugging is far from the best. If you take a look 
at the IDE of Racket Scheme you see something far more newbie-friendly.

Note: your posts come out empty through the web interface:
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.announce&article_id=20572

Bye,
bearophile

Reply via email to