On 25 Oct, 2012, at 9:23, anatoly techtonik <techtonik@gmail.com> wrote:
On Tue, Oct 23, 2012 at 9:28 AM, Ronald Oussoren <ronaldoussoren@mac.com> wrote:
On 22 Oct, 2012, at 20:03, anatoly techtonik <techtonik@gmail.com> wrote:
What do you think about this?
The cost of changing the build directory is high, and has limited upsides at best. Some of the costs: confusing current users, breaking existing documentation like books, breaking build systems, incompatibility between python versions.
There is already a lot of incompatibilities between 2 and 3, and even between 3.1, 3.2 and 3.3, so the added value of this change to the total cost is miserable. Speaking about user confusion - if they won't find 'build' directory - they'll surely notice __build__ in their tree. Python 3 toolchains are still fragile, so it won't come for me a a surprise if Python 3.4 conventions are not the same as in 3.3.
What do you mean w.r.t. python 3 toolchain fragility? AFAIK distutils and distribute work fine with Python 3, and have the same interface as with Python 2.
So, there are two questions: 1. If you were designing Python from scratch right now now - which name would you choose `__build__` or `build` for the temporary directory?
I don't know what I'd choose, __build__ is a bit too cute for my taste. I do know that I also use "build" as the name for build directories outside of Python, and have done so from before I used Python. Anyway, we are not designing from scratch, and that means you have to take the cost of change into account. Given the, at best, small improvement I don't think it worthwhile to change the default. See also <http://www.boredomandlaziness.org/2011/02/status-quo-wins-stalemate.html>.
2. Is the Python 3.x already mature enough to deny any improvements (considering these are improvements) for the 3.4 version?
Of course not, but there is a balance between the cost of changes and the improvements those bring. Ronald
If the name of the build directory bothers you you can change it by adding two lines to ~/.pydistutils.cfg:
[build] build-base = __build__