A really bad idea.

James J. Besemer jb at cascade-sys.com
Thu Nov 14 18:04:47 EST 2002


Manuel M. Garcia wrote:

> A good point. Python is pretty darn small.  

I disagree.

 > O'Reilly's Python Pocket
> Reference for Python 2 is 124 pages, and only because the major
> modules are referenced starting at page 65.  

I collect pocket reference guides, and FWIW, Python's is the largest!

Perl 5 (including libraries) is only 48 pages.

I have C/C++ pocket refs that work out to 8 pages for the language and 8 
pages for the libraries.

Python includes virtually all of the features commonly available to most 
languages plus a bunch of extra features that appear only in non mainstream 
languages or that are entirely unique to Python.  Tuples, Longs, Imaginary 
numbers, list comprehensions, while/else, for/else, generators, are examples 
of Python features that are not commonly available in other languages.  The 
list grows considerably if we include features common to Perl (e.g., lists, 
dictionaries, slices, strings) but which are otherwise missing from most 
mainstream languages.  I suppose the one thing Python (Perl and others) leave 
out are variable and type declarations, which goes to making the language 
seem smaller than others.

I don't raise this point to complain or suggest Python is bad.  I actually 
think it's a tribute to Python's superior design that so MUCH functionality 
is contained in a manageable tool.  Python is so well designed that it SEEMS 
small even though it's comparable to the most elaborate programming systems 
ever made.

Disagreeing with the OP, I rather think Python tends to go overboard the 
other way in deference to newbies and naive programmers.  This is why Python 
consciously rejects assignment within an expression, ++ and --, ?:, var 
parameters and goto, even though most experienced programmers already know 
how these constructs work.  It's ostensibly the reason why integer division 
was redefined to produce a real result -- because naive users might be 
"confused" by a truncated integer result.  I think the designers are overly 
pedantic on this point overall and thus sometimes make the wrong call.  In 
any case, it's certainly not fair to suggest that Python errs in adding "hard 
to understand" features.

Some learning curve is inevitable even in the most readable language.

Regards

--jb

-- 
James J. Besemer		503-280-0838 voice
2727 NE Skidmore St.		503-280-0375 fax
Portland, Oregon 97211-6557	mailto:jb at cascade-sys.com
				http://cascade-sys.com	






More information about the Python-list mailing list