Glyph Lefkowitz wrote:
Still, it would have been more helpful to point out how exactly this
problem could be solved, and to present (for example) a description of
similar objects politely interacting and delegating responsibility to
one another to accomplish the same task.
Sorry, I edited out the bit at the last minute where I explained that it would
be great to have a centralized option-managing object such that any command can
ask what options were set on any other regardless of the dependencies between
commands.
I would definitely characterize these assertion from Robert as
"nebulous", given that the prior messages in the thread (as far as I can
tell) do not describe the kind of massive-overhaul changes which would
fix things, only the problems that currently exist:
In our considered opinion, piecemeal changes probably aren't going to
solve the significant problems that we face.
Why not? The whole of computer history is the story of piecemeal
improvements of one kind or another; despite perennial claims that, for
example, hierarchical filesystems or bit-mapped displays "fundamentally"
cannot support one type of data or another, here we are.
Perhaps in my head the analogy with biological evolution is unjustifiably
strong. Species can't always get from point A to point B while making viable
intermediates with incremental changes. Evolutionary deadends happen frequently.
In software, design decisions early on affect how much change the software can
tolerate (which is why we are told to "design for change"). I think that
distutils exemplifies a design that is particularly adverse to evolution.
Or this one, also from Robert:
Mostly because I'm entirely uninterested in helping you make
incremental improvements that are going to break all the hard work
we've already done just to get things working as it is.
Why do incremental improvements have to break all the hard work that has
already been done? Surely this is what a compatibility policy is about.
Since Tarek keeps asking us to make proposals without thinking about
compatibility, I wonder what policy is being kept in mind. My comment stems from
my worry about that attitude.
In any case, I think that keeping compatibility while making improvements to the
code in situ is going to be quite difficult. The distutils API is not clean.
Using distutils beyond setup() and Extension() involves too much intimate
knowledge of the detailed implementation of distutils as-is. That's why we got a
2.6.4 release.
This is why I think the piecemeal evolution of distutils is not going to work.
The act of fixing distutils to make a cleaner API for modification and extension
*triggers* the problem that the fix is supposed to address.
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
_______________________________________________
Distutils-SIG maillist - Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig