Beware complexity

Philip Smith as006d4848 at blueyonder.co.uk
Sun Mar 13 06:28:39 CET 2005


I wonder if anyone has any thoughts not on where Python should go but where 
it should stop?

One of the faults with langauges like C++ was that so many new 
features/constructs were added that it became a nightmare right from the 
design stage of a piece of software deciding which of the almost infinite 
different ways to do the same thing to use.

Result: the development of various coding standards (essentially definitions 
of what 'safe subset' of the language you intended to use in all your 
projects) to 'cripple' the overly complex language.

Conventions on type conversion are just one example.  Without using strict 
coding conventions the richness of the language could, and often did, result 
in ambiguity.  In my experience too C++ has defeated its own object (eg 
portability) - I've given up in many cases trying to compile third party 
libraries because I don't have the time to collect every version of every 
compiler for every platform in existence which is what C++ seems to demand 
(particularly if you are trying to cross-compile Unix->Windows).

Nothing wrong with coding conventions of course unless you:

a)    Want to read and understand other peoples code
b)    Want your code to work with it

There probably isn't a language in existence that provably constrains a 
programmer to use one and only one 'top level' approach to code a particular 
'class' of problem but Python does seem to have a way of naturally 
'suggesting' this through its very simplicity.

It seems to me that from here on in the Python developers should be very 
careful about adding new features to a language which (subjectively) already 
seems capable of handling pretty much any 'class' of problem.  There is 
plenty of scope left of course for continuing to develop libraries and 
optimize performance.






More information about the Python-list mailing list