[Python-3000] Proposal: No more standard library additions

"Martin v. Löwis" martin at v.loewis.de
Sun Oct 15 13:41:55 CEST 2006


Phillip J. Eby schrieb:
> The difference between the two is that an extensible system is one that
> follows the same rules for extenders as it does for its core
> developers.  For example, in the distutils, there are two ways to
> register commands: one for extenders, and one for core developers. 
> (Actually, there are three, as there is yet another way added in Python
> 2.4 for third parties to add commands as well.)

It's only a terminology issue, but I think most people would assume
a different definition for "extensible". I'd call a system extensible
if it supports being extended, period. By my definition, distutils
is extensible; by your definition, it's not.

> Another example is compiler support.  Using the techniques of setuptools
> and zc.buildout, we could allow anybody to write support for a
> particular C compiler abstraction, to e.g. support cross-compilation. 
> They could distribute that support separately and would not have to be a
> distutils developer to do so.  Other people could use that support for
> their own projects without having to bundle it in, and create the
> massive distutils "extensions" used by many larger projects today.

Actually, it is possible to add a new compiler to some Python
installation, so that users can pass it to the --compiler option,
and distutils packages don't have to be modified for that.
You just have to extend the dictionary
distutils.ccompiler.compiler_class.

> Two of the biggest Python "community" development trends in recent
> years, setuptools and WSGI, are good demonstrations of how a design can
> be used to promote collaboration, rather than balkanization.  The
> distutils' design promotes balkanization through project-specific
> customization, but this can be turned around with a better design that
> allows more people to participate in development and extension.

I don't object to improving the design. I object to dropping distutils
and replacing it with something else. If certain functionality is
missing in distutils (e.g. means for more transparent extension), then
distutils should be enhanced to provide this functionality.

Regards,
Martin



More information about the Python-3000 mailing list