Path: csiph.com!usenet.pasdenom.info!gegeweb.org!de-l.enfer-du-nord.net!feeder2.enfer-du-nord.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.027 X-Spam-Evidence: '*H*': 0.95; '*S*': 0.00; 'fixes': 0.07; 'subject:data': 0.07; 'enormous': 0.09; 'subject:string': 0.09; 'python': 0.11; 'cc:addr:python-list': 0.15; 'discussion': 0.15; 'backwards': 0.16; 'driscoll': 0.16; 'spec': 0.16; 'subject:changing': 0.16; 'unwarranted': 0.16; 'windows': 0.17; 'amounts': 0.18; 'string': 0.18; 'changes': 0.19; 'wrote:': 0.21; "aren't": 0.22; 'header:In-Reply-To:1': 0.22; '"the': 0.23; 'header:User-Agent:1': 0.23; 'test': 0.24; 'cc:no real name:2**0': 0.26; 'cc:addr:python.org': 0.27; 'bit': 0.28; 'that.': 0.28; 'closer': 0.29; 'remotely': 0.29; "doesn't": 0.30; 'effort': 0.30; 'cc:2**0': 0.31; 'fact': 0.31; 'problems': 0.31; 'subject: (': 0.33; 'byte': 0.33; 'encoding': 0.33; 'there': 0.35; 'received:192.168.0': 0.35; 'things': 0.36; "i'm": 0.36; 'far': 0.36; 'subject:)': 0.36; 'but': 0.36; 'some': 0.37; 'software': 0.38; 'received:192': 0.39; 'being': 0.39; 'doing': 0.39; "can't": 0.39; 'received:192.168': 0.40; 'back': 0.63; 'yes,': 0.63; 'programs': 0.65; 'breaking': 0.66; 'strings': 0.66; 'caused': 0.67; 'is.': 0.67; 'assumptions': 0.84; 'deserves': 0.84; 'imaginary': 0.84; 'implementers': 0.84; 'progress,': 0.84; 'guaranteed': 0.85 Date: Wed, 28 Mar 2012 19:11:56 -0500 From: Evan Driscoll User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2 MIME-Version: 1.0 To: Ross Ridge Subject: Re: Re: Re: "convert" string to bytes without changing data (encoding) References: <9tg21lFmo3U1@mid.dfncis.de> <4f73504c$0$29981$c3e8da3$5496439d@news.astraweb.com> In-Reply-To: X-Enigmail-Version: 1.4 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Cc: python-list@python.org X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 33 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1332980161 news.xs4all.nl 6915 [2001:888:2000:d::a6]:51950 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:22319 On 3/28/2012 14:43, Ross Ridge wrote: > Evan Driscoll wrote: >> So yes, you can say that pretending there's not a mapping of strings to >> internal representation is silly, because there is. However, there's >> nothing you can say about that mapping. > > I'm not the one labeling anything as being silly. I'm the one labeling > the things as bullshit, and that's what you're doing here. I can in > fact say what the internal byte string representation of strings is any > given build of Python 3. Just because I can't say what it would be in > an imaginary hypothetical implementation doesn't mean I can never say > anything about it. People like you -- who write to assumptions which are not even remotely guaranteed by the spec -- are part of the reason software sucks. People like you hold back progress, because system implementers aren't free to make changes without breaking backwards compatibility. Enormous amounts of effort are expended to test programs and diagnose problems which are caused by unwarranted assumptions like "the encoding of a string is UTF-8". In the worst case, assumptions like that lead to security fixes that don't go as far as they could, like the recent discussion about hashing. Python is definitely closer to the "willing to break backwards compatibility to improve" end of the spectrum than some other projects (*cough* Windows *cough*), but that still doesn't mean that you can make assumptions like that. This email is a bit harsher than it deserves -- but I feel not by much. Evan