A little bit else I would like to discuss

Steven D'Aprano steve at pearwood.info
Sat Feb 14 05:47:19 CET 2009

Martin wrote:

> Hi,
> at first I wanted to file this under meta-discussions, but your lost
> paragraph got me thinking...
> 2009/2/12 Christian Heimes <lists at cheimes.de>:
>> Nobody is going to stop you from creating a large bundle of useful
>> extensions as long as you follow the licenses. In fact lots of people
>> may appreciate a bundle. But the Python core package will always stay
>> small and agile.
> How does "small and agile" work with "batteries included"?

Well, it certainly isn't agile without batteries.

>>From my point of view:
> agile::
>  Would describe faster extension of the standard lib (rrd, yaml should
> IMHO already be in the standard lib). 

No, agile describes the language. It's easy to get things done *with*
Python. You're asking whether the Python-dev development process of getting
packages added to the standard library is agile. It absolutely is not, and
that is by design: python-dev doesn't want to fill the std lib up with
unnecessary, unused and buggy batteries just because one or two people
request them.

> I'm pretty sure other people 
> want to see other modules, but that's what agile + standard lib would
> mean for me. (Also I'm sometimes confused by the naming of modules but
> that's a different story)

The process for getting modules added to the std lib is on the Python


If you have a library you want added, go right ahead and make a PEP.

> small::
>  just the opposite of "batteries included"

Says who? Batteries can be small, and adding a few new batteries to the pile
doesn't necessarily make the pile significantly bigger.

Small means it doesn't have unnecessary batteries.

> My absolute favorite would be
>  * python as just python (no standard lib)

Would be a toy.

>  * a (rather) fast moving standard lib available as an addon download

No no no, the std lib needs to be conservative, so that if you write code
that relies on the std lib, you can be confident that it will work
anywhere. The core language and std library are conservative, slowly
changing, so that developers have stability. You don't have to write code
like this:

if version == 2.5:
    code block
elif version == 2.5.1b:
    different code block
elif version == 2.5.1:
    still different code block
elif version == 2.5.2:
    if exists(module):
        code block
        something different again
elif version == 2.5.3:

If you want to live on the bleeding edge, with rapidly changing APIs and
libraries, they have a repository for that. It's called "the Internet".


More information about the Python-list mailing list