[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Python 3.2 has some deadly infection

On 05/06/2014 16:50, Chris Angelico wrote:
> I wouldn't say they're second-class; it's more that the bytes type was
> considered to be more like a list of ints than like a Unicode string,
> and now that there are a few years' worth of real-world usage
> information to learn from, it's known that some more string-like
> operations will be extremely helpful. So now they're being added,
> which I agree is a good thing.

in python 2 str and unicode were much more comparable. On balance I think just 
reversing them ie str --> bytes and unicode --> str was probably the right thing 
to do if the default conversions had been turned off. However making bytes a 
crippled thing was wrong.

> Whether b"a"[0] should be b'a' or ord(b'a') is another sticking point.
> The Py2 str does the first, the Py3 bytes does the second. That one's
> a bit hard to change, but what I'm not sure of is how significant this
> is to new-build Py3 code. Obviously it's a barrier to porting, but is
> it important on its own? However, that's still not really "byte
> strings are second class".
I dislike the current model, but that's because I had a lot of stuff to convert 
and probably made a bunch of blunders. The reportlab code is now a mess of hacks 
to keep it alive for 2.7 & >=3.3; I'm probably never going to be convinced that 
uncode types are good. Bytes are the underlying concept and should have remained 
so for simplicity's sake.
Robin Becker