<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>
<channel>
	<title>Comments on: Broken beyond repair - Pythons import system</title>
	<atom:link href="http://fiber-space.de/wordpress/?feed=rss2&#038;p=238" rel="self" type="application/rss+xml" />
	<link>http://fiber-space.de/wordpress/?p=238</link>
	<description>Projects and projections</description>
	<pubDate>Tue, 07 Sep 2010 14:08:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: kay</title>
		<link>http://fiber-space.de/wordpress/?p=238&cpage=1#comment-20</link>
		<dc:creator>kay</dc:creator>
		<pubDate>Sat, 04 Apr 2009 05:18:06 +0000</pubDate>
		<guid isPermaLink="false">http://fiber-space.de/wordpress/?p=238#comment-20</guid>
		<description>&lt;p&gt;@Philip, Micheal. I mentioned &lt;i&gt;len&lt;/i&gt; and &lt;i&gt;self&lt;/i&gt; only because I precisely know that those topics are controversial. They were so for the last 10 years and they will be so for the next 10 years as well. They are unusual and ideosyncratic and although some programmers might have fallen in love with them on the first sight I do not think that's very likely. People also love Lispy parentheses because they became used to them and learned to appreciate them. That's virtually the same situation as I described in the opening paragraph.&lt;/p&gt;

&lt;p&gt;Although the tone of the article is clearly emotional and intended to be so there are also arguments. If you find something reasonable about how relative imports work or the sys.modules cache you are free to provide a counter-argument, either here in the comment section or on your own blog.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@Philip, Micheal. I mentioned <i>len</i> and <i>self</i> only because I precisely know that those topics are controversial. They were so for the last 10 years and they will be so for the next 10 years as well. They are unusual and ideosyncratic and although some programmers might have fallen in love with them on the first sight I do not think that&#8217;s very likely. People also love Lispy parentheses because they became used to them and learned to appreciate them. That&#8217;s virtually the same situation as I described in the opening paragraph.</p>

<p>Although the tone of the article is clearly emotional and intended to be so there are also arguments. If you find something reasonable about how relative imports work or the sys.modules cache you are free to provide a counter-argument, either here in the comment section or on your own blog.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Foord</title>
		<link>http://fiber-space.de/wordpress/?p=238&cpage=1#comment-19</link>
		<dc:creator>Michael Foord</dc:creator>
		<pubDate>Sat, 04 Apr 2009 04:55:20 +0000</pubDate>
		<guid isPermaLink="false">http://fiber-space.de/wordpress/?p=238#comment-19</guid>
		<description>&lt;p&gt;Agree with the others that opening with your comments on len and self kind of mark you out as a loony from the start... Anyway, whilst the issue you discuss has &lt;em&gt;occasionally&lt;/em&gt; been an issue for me (one usually remedied) it is certainly highly bombastic to declare the Python import machinery broken beyond repair. Very odd. :-)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Agree with the others that opening with your comments on len and self kind of mark you out as a loony from the start&#8230; Anyway, whilst the issue you discuss has <em>occasionally</em> been an issue for me (one usually remedied) it is certainly highly bombastic to declare the Python import machinery broken beyond repair. Very odd. <img src='http://fiber-space.de/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>By: kay</title>
		<link>http://fiber-space.de/wordpress/?p=238&cpage=1#comment-18</link>
		<dc:creator>kay</dc:creator>
		<pubDate>Fri, 03 Apr 2009 18:30:20 +0000</pubDate>
		<guid isPermaLink="false">http://fiber-space.de/wordpress/?p=238#comment-18</guid>
		<description>&lt;p&gt;Jack, the "Python is Doomed" article was entirely ironic about the mentioned aspect. There are many superstitious believes about significant whitespace and occasional panic attacks even by long term Python programmers. I found the idea of the single peak fitness plateau where Python apparently lives ( and dies ) so heartbreaking that I couldn't resist being satirical ( or satyrical? ) about it.&lt;/p&gt;

&lt;p&gt;The article about the import machinery is meant deadly serious though for reasons given there. It has been a constant pain since I can think about using Python 1.5.2 and it became even worse over the time. I actually want people to acknowledge this even if it produces bad PR temporarily ( people are forgetful and move on to things they find more important and entertaining than a rather technical and esoteric topic they can virtually contribute nothing to it ).&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Jack, the &#8220;Python is Doomed&#8221; article was entirely ironic about the mentioned aspect. There are many superstitious believes about significant whitespace and occasional panic attacks even by long term Python programmers. I found the idea of the single peak fitness plateau where Python apparently lives ( and dies ) so heartbreaking that I couldn&#8217;t resist being satirical ( or satyrical? ) about it.</p>

<p>The article about the import machinery is meant deadly serious though for reasons given there. It has been a constant pain since I can think about using Python 1.5.2 and it became even worse over the time. I actually want people to acknowledge this even if it produces bad PR temporarily ( people are forgetful and move on to things they find more important and entertaining than a rather technical and esoteric topic they can virtually contribute nothing to it ).</p>]]></content:encoded>
	</item>
	<item>
		<title>By: PJ Eby</title>
		<link>http://fiber-space.de/wordpress/?p=238&cpage=1#comment-17</link>
		<dc:creator>PJ Eby</dc:creator>
		<pubDate>Fri, 03 Apr 2009 18:05:21 +0000</pubDate>
		<guid isPermaLink="false">http://fiber-space.de/wordpress/?p=238#comment-17</guid>
		<description>&lt;p&gt;Also, some of us &lt;em&gt;like&lt;/em&gt; explicit self and len as a function.  So you're already turning off that segment of your audience from the first paragraph.&lt;/p&gt;

&lt;p&gt;But as long as we're being inflammatory and trolling, I personally think that people who want to replace imports with file paths are stuck in PHP-land.  Even Perl and Java have native support for namespace packages.  It's about time Python included something better than pkgutil.extend_path.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Also, some of us <em>like</em> explicit self and len as a function.  So you&#8217;re already turning off that segment of your audience from the first paragraph.</p>

<p>But as long as we&#8217;re being inflammatory and trolling, I personally think that people who want to replace imports with file paths are stuck in PHP-land.  Even Perl and Java have native support for namespace packages.  It&#8217;s about time Python included something better than pkgutil.extend_path.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Jack Diederich</title>
		<link>http://fiber-space.de/wordpress/?p=238&cpage=1#comment-16</link>
		<dc:creator>Jack Diederich</dc:creator>
		<pubDate>Fri, 03 Apr 2009 17:39:59 +0000</pubDate>
		<guid isPermaLink="false">http://fiber-space.de/wordpress/?p=238#comment-16</guid>
		<description>&lt;p&gt;The import machinery is big and complicated because it can do lots of things.  Individuals might only use one or two of those features but they aren't the same one or two features.  If imports were simplified users would just re-add a custom layer on top of imports to get their feature back.&lt;/p&gt;

&lt;p&gt;Please consider making your writing style less combative.  It is heavy on assertions and emotional adjectives ("Python is Doomed" because it uses whitespace indentation).  You seem to pick one python feature a week and denounce it as an unforgivable evil.  There might be two people on the planet that can be bullied into agreeing with you but for the rest of us you will have to make an agument, not propaganda.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>The import machinery is big and complicated because it can do lots of things.  Individuals might only use one or two of those features but they aren&#8217;t the same one or two features.  If imports were simplified users would just re-add a custom layer on top of imports to get their feature back.</p>

<p>Please consider making your writing style less combative.  It is heavy on assertions and emotional adjectives (&#8221;Python is Doomed&#8221; because it uses whitespace indentation).  You seem to pick one python feature a week and denounce it as an unforgivable evil.  There might be two people on the planet that can be bullied into agreeing with you but for the rest of us you will have to make an agument, not propaganda.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: kay</title>
		<link>http://fiber-space.de/wordpress/?p=238&cpage=1#comment-15</link>
		<dc:creator>kay</dc:creator>
		<pubDate>Fri, 03 Apr 2009 14:18:22 +0000</pubDate>
		<guid isPermaLink="false">http://fiber-space.de/wordpress/?p=238#comment-15</guid>
		<description>&lt;p&gt;@love'n flow, I do not intend to add new features in the first place. The current import system is already quite powerful due to import-hooks. I made extensive and also successful use of them in EasyExtend. I want something that is conceptually simple but as powerful as the current state-of-the-art solution.&lt;/p&gt;

&lt;p&gt;BTW I'm not quite clear if I like the idea of versioned module imports. This has the bad taste of compiler flags to me. But that's right now really off topic and it may be perfectly possible that it fits into the new structure quite naturally. Importing from URLs will be naturally provisioned although I don't give a reference implementation and there also won't be changes in the Python grammar to support URLs in import statements. If I've got a working prototype you might checkout implementing a fetch command yourself.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@love&#8217;n flow, I do not intend to add new features in the first place. The current import system is already quite powerful due to import-hooks. I made extensive and also successful use of them in EasyExtend. I want something that is conceptually simple but as powerful as the current state-of-the-art solution.</p>

<p>BTW I&#8217;m not quite clear if I like the idea of versioned module imports. This has the bad taste of compiler flags to me. But that&#8217;s right now really off topic and it may be perfectly possible that it fits into the new structure quite naturally. Importing from URLs will be naturally provisioned although I don&#8217;t give a reference implementation and there also won&#8217;t be changes in the Python grammar to support URLs in import statements. If I&#8217;ve got a working prototype you might checkout implementing a fetch command yourself.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: kay</title>
		<link>http://fiber-space.de/wordpress/?p=238&cpage=1#comment-14</link>
		<dc:creator>kay</dc:creator>
		<pubDate>Fri, 03 Apr 2009 13:53:59 +0000</pubDate>
		<guid isPermaLink="false">http://fiber-space.de/wordpress/?p=238#comment-14</guid>
		<description>&lt;p&gt;Alec, I know about Brett Cannons importlib and I deeply respect his work. However importlib is mostly an attempt to reconstruct the structure and semantics of the current import machinery in accessible Python code which is much harder than anything I intend to do. I hope to show at the end of the promised article series that designing an import system hasn't anything to do with reconstructing how black magics work. It won't be complete though and I'll neglect some of the features I do not understand and I've never used or tested like importing from "frozen packages".&lt;/p&gt;

&lt;p&gt;Notice also one thing. Beyond an initialization phase my implementation will completely bypass Pythons current import system which importlib does not. Maybe there will be some rest. I'm not finished with it. This can be done in pure Python only by means of language transformations - import statements have to be transformed into function calls in Python code. This also means that it will always ever have the status of a prototype.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Alec, I know about Brett Cannons importlib and I deeply respect his work. However importlib is mostly an attempt to reconstruct the structure and semantics of the current import machinery in accessible Python code which is much harder than anything I intend to do. I hope to show at the end of the promised article series that designing an import system hasn&#8217;t anything to do with reconstructing how black magics work. It won&#8217;t be complete though and I&#8217;ll neglect some of the features I do not understand and I&#8217;ve never used or tested like importing from &#8220;frozen packages&#8221;.</p>

<p>Notice also one thing. Beyond an initialization phase my implementation will completely bypass Pythons current import system which importlib does not. Maybe there will be some rest. I&#8217;m not finished with it. This can be done in pure Python only by means of language transformations - import statements have to be transformed into function calls in Python code. This also means that it will always ever have the status of a prototype.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: ^love *encounter ~flow</title>
		<link>http://fiber-space.de/wordpress/?p=238&cpage=1#comment-13</link>
		<dc:creator>^love *encounter ~flow</dc:creator>
		<pubDate>Fri, 03 Apr 2009 12:48:28 +0000</pubDate>
		<guid isPermaLink="false">http://fiber-space.de/wordpress/?p=238#comment-13</guid>
		<description>&lt;p&gt;yeah, do it. a redesign of the import system is sorely needed---one that is sane, and simple. i could imagine it would be worth while to steer towards statements à la batz = fetch( 'foo/bar/batz.py' ), blah = fetch( 'foo/bar/batz.py/blah' ), log = fetch( '~/math.py/log' ), where fetch accepts relative, absolute, and symbolic paths (~ here being a symbol for the standard library).&lt;/p&gt;

&lt;p&gt;not so sure about making the .py extension mandatory; also, it is symbolic itself (as it could be supplanted by .pyc, .pyo where suitable); but if extensions are omitted, how do you distinguish between a file x.py and a package x? or maybe this is not necessary?&lt;/p&gt;

&lt;p&gt;also, some versioning system should be readily available, so you can e.g. state fetch( 'foobar[&#62;0.3]' ), and, importantly, to use URL-like identifiers to avoid name clashes (but please not in the way that java does it), maybe à la mojo = fetch( 'example.com/projects/fireball//magic/mojo.py' ).&lt;/p&gt;

&lt;p&gt;just some arbitrary ideas. probably yours will be very different.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>yeah, do it. a redesign of the import system is sorely needed&#8212;one that is sane, and simple. i could imagine it would be worth while to steer towards statements à la batz = fetch( &#8216;foo/bar/batz.py&#8217; ), blah = fetch( &#8216;foo/bar/batz.py/blah&#8217; ), log = fetch( &#8216;~/math.py/log&#8217; ), where fetch accepts relative, absolute, and symbolic paths (~ here being a symbol for the standard library).</p>

<p>not so sure about making the .py extension mandatory; also, it is symbolic itself (as it could be supplanted by .pyc, .pyo where suitable); but if extensions are omitted, how do you distinguish between a file x.py and a package x? or maybe this is not necessary?</p>

<p>also, some versioning system should be readily available, so you can e.g. state fetch( &#8216;foobar[&gt;0.3]&#8216; ), and, importantly, to use URL-like identifiers to avoid name clashes (but please not in the way that java does it), maybe à la mojo = fetch( &#8216;example.com/projects/fireball//magic/mojo.py&#8217; ).</p>

<p>just some arbitrary ideas. probably yours will be very different.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Alec Munro</title>
		<link>http://fiber-space.de/wordpress/?p=238&cpage=1#comment-12</link>
		<dc:creator>Alec Munro</dc:creator>
		<pubDate>Fri, 03 Apr 2009 12:24:05 +0000</pubDate>
		<guid isPermaLink="false">http://fiber-space.de/wordpress/?p=238#comment-12</guid>
		<description>&lt;p&gt;Are you aware of all the work Brett Cannon has been doing on importlib?
http://docs.python.org/dev/py3k/library/importlib.html&lt;/p&gt;

&lt;p&gt;I'm not nearly conversant enough in the import mechanism to know if it would address your concerns (and in fact, I've never had a significant problem with importing, so I'm clearly not your target audience), but I've read much of Brett's posting on importlib, and it seems like he spent a lot of time trying to build it properly.&lt;/p&gt;

&lt;p&gt;Let me know your thoughts.&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Are you aware of all the work Brett Cannon has been doing on importlib?
<a href="http://docs.python.org/dev/py3k/library/importlib.html" rel="nofollow">http://docs.python.org/dev/py3k/library/importlib.html</a></p>

<p>I&#8217;m not nearly conversant enough in the import mechanism to know if it would address your concerns (and in fact, I&#8217;ve never had a significant problem with importing, so I&#8217;m clearly not your target audience), but I&#8217;ve read much of Brett&#8217;s posting on importlib, and it seems like he spent a lot of time trying to build it properly.</p>

<p>Let me know your thoughts.</p>

<p>Thanks</p>]]></content:encoded>
	</item>
</channel>
</rss>
