Path: csiph.com!usenet.pasdenom.info!news.redatomik.org!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!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.002 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'interfaces': 0.04; 'root': 0.05; 'subject:Python': 0.06; '/usr/local': 0.09; 'historic': 0.09; 'rescue': 0.09; 'scripts,': 0.09; 'structure,': 0.09; 'yeah,': 0.09; 'python': 0.11; 'systems.': 0.12; 'language.': 0.14; 'mostly': 0.14; 'changes': 0.15; 'available;': 0.16; 'bullet': 0.16; 'cleaner': 0.16; 'consequence,': 0.16; 'filesystem': 0.16; 'forth.': 0.16; 'from:addr:cs': 0.16; 'from:addr:zip.com.au': 0.16; 'from:name:cameron simpson': 0.16; 'imo.': 0.16; 'it;': 0.16; 'limiting': 0.16; 'message- id:@cskk.homeip.net': 0.16; 'simpson': 0.16; 'supplied': 0.16; 'tends': 0.16; 'wrote:': 0.18; 'bit': 0.19; 'have:': 0.19; 'small,': 0.19; 'later': 0.20; 'fit': 0.20; 'code,': 0.22; 'example': 0.22; 'admin': 0.22; 'header:User-Agent:1': 0.23; '2.x': 0.24; 'config': 0.24; 'paul': 0.24; 'cheers,': 0.24; '(or': 0.24; 'supported': 0.26; 'header:In-Reply-To:1': 0.27; 'correct': 0.29; 'bigger': 0.30; 'important.': 0.30; 'code': 0.31; 'easier': 0.31; '3.x': 0.31; 'away.': 0.31; "d'aprano": 0.31; 'libraries': 0.31; 'repair': 0.31; 'steven': 0.31; 'class': 0.32; 'probably': 0.32; 'stuff': 0.32; "we're": 0.32; 'run': 0.32; 'linux': 0.33; 'subject:the': 0.34; 'something': 0.35; 'more,': 0.35; 'but': 0.35; 'add': 0.35; 'there': 0.35; 'skip:> 10': 0.36; 'transition': 0.36; 'yield': 0.36; 'charset:us-ascii': 0.36; 'needed': 0.38; 'to:addr:python-list': 0.38; 'issue': 0.38; 'supporting': 0.39; 'to:addr:python.org': 0.39; 'days': 0.60; 'skip:u 10': 0.60; 'commands': 0.60; 'documents,': 0.60; 'most': 0.60; 'break': 0.61; 'content-disposition:inline': 0.62; 'our': 0.64; 'linked': 0.65; 'series': 0.66; 'home': 0.69; 'therefore': 0.72; 'risk': 0.72; 'bag': 0.74; 'cut': 0.74; 'topic,': 0.81; 'areas.': 0.84; 'bare': 0.84; 'bite': 0.84; 'confusion.': 0.84; 'extras': 0.84; 'pervasive': 0.84; 'received:192.168.15': 0.84; 'sorry.': 0.91 Date: Tue, 17 Mar 2015 17:47:17 +1100 From: Cameron Simpson To: python-list@python.org Subject: Re: Python 2 to 3 conversion - embrace the pain MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <55073edd$0$13014$c3e8da3$5496439d@news.astraweb.com> User-Agent: Mutt/1.5.23 (2014-03-12) References: <55073edd$0$13014$c3e8da3$5496439d@news.astraweb.com> X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.19 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: 68 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1426574849 news.xs4all.nl 2944 [2001:888:2000:d::a6]:48716 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:87626 On 17Mar2015 07:36, Steven D'Aprano wrote: >I must admit that the Linux filesystem layout strikes me as awfully pedantic >and fussy. We're happy to use our home directory as an undifferentiated bag >with no structure, dumping binaries, scripts, documents, data files, config >files and everything else into $HOME, but for applications we have: > >/bin >/sbin >/usr/bin >/usr/sbin >/usr/local/bin >/usr/local/sbin >/opt > >and probably more, to say nothing of > >/lib >/usr/lib >/usr/local/lib Yeah, it is a bit nuts. A lot of that is history: /bin vs /sbin /sbin was staticly linked executables, which needed to work early in the boot process (or in rescue situations) before (arbitrarily placed) dynamic libraries were available; as a consequence, /sbin these days mostly contains admin commands (necessary) versus /bin with the other commands (less critical, just useful) Less of an issue these days with bigger drives, so /bin vs /sbin is mostly historic and unnecessary / vs /usr (and therefore /bin vs /usr/bin etc) the root fs (/0 used to be very small, limiting what would fit /usr was larger and mounted later There are multiple reasons for this, including the size of the system you need to repair to rescue (repair a small / vs something bigger) and limiting damage (less I/O to /, therefore less risk of need of repair) and so forth. Less of an issue these days with bigger and faster drives, fo /bin vs /usr/bin is historic and unnecessary / (and /usr) vs /usr/local This is architectural and important. /usr/local tends to be for extras not supplied by the OS provider/vendor. So a bare supplies OS will have stuff in / and /usr, but /usr/local will be an empty skeleton for people to add stuff to without treading on the supplied and supported OS areas. Yes, off topic, sorry. Python 3 vs Python 2: a good thing IMO. The way the transition was done? Correct IMO. Add nonbreaking stuff to the 2.x series (with, yield from, extra libraries supporting interfaces coming in the 3.x series, so forth) but keep legacy code working unchanged. With 3.x, cut to changes that would break legacy code, but we now have a cleaner and better language. And re Paul Rubin's "fork the language" remakr: Python 3.x _is_ the fork! I try to make most of my code work in both py2 and py3; easier to run on multiple systems. But I definitely have code that works so much better in python 3 that I will never backport it; the example I have in mind started as python 2 and spent years in bytes/text indecision and confusion. Bite the bullet and go py3, an a whole class of pervasive issue just go away. Cheers, Cameron Simpson PARANOIDS!!!! They're EVERYWHERE!!! - bcash@crchh410.NoSubdomain.NoDomain (Brian Cash)