<?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: DjangoCon (Part 2)</title>
	<atom:link href="http://compoundthinking.com/blog/index.php/2008/09/24/djangocon-part-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://compoundthinking.com/blog/index.php/2008/09/24/djangocon-part-2/</link>
	<description>Thinking about programming in new ways</description>
	<lastBuildDate>Wed, 28 Jul 2010 19:00:53 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: j_king</title>
		<link>http://compoundthinking.com/blog/index.php/2008/09/24/djangocon-part-2/#comment-242793</link>
		<dc:creator>j_king</dc:creator>
		<pubDate>Thu, 25 Sep 2008 19:35:54 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=403#comment-242793</guid>
		<description>@mark:

Fan boys will be as they are. It&#039;s good on you to not get involved. ;)

I think I did misunderstand the purpose of lib/base.py at first -- but that&#039;s just one reason why I don&#039;t like boilerplate code. I didn&#039;t write it and if I am to understand what&#039;s going on in my application I have to know what it does.

To be fair, it doesn&#039;t look like the TG2 boilerplate does a whole lot on its own, but there&#039;s just so much of it that it&#039;s a little disorienting for new developers despite their level of expertise.

Anyway -- I&#039;m looking forward to giving TG2 a go on a small project.

Good work again on the talk.

Cheerio.</description>
		<content:encoded><![CDATA[<p>@mark:</p>
<p>Fan boys will be as they are. It&#8217;s good on you to not get involved. ;)</p>
<p>I think I did misunderstand the purpose of lib/base.py at first &#8212; but that&#8217;s just one reason why I don&#8217;t like boilerplate code. I didn&#8217;t write it and if I am to understand what&#8217;s going on in my application I have to know what it does.</p>
<p>To be fair, it doesn&#8217;t look like the TG2 boilerplate does a whole lot on its own, but there&#8217;s just so much of it that it&#8217;s a little disorienting for new developers despite their level of expertise.</p>
<p>Anyway &#8212; I&#8217;m looking forward to giving TG2 a go on a small project.</p>
<p>Good work again on the talk.</p>
<p>Cheerio.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mike bayer</title>
		<link>http://compoundthinking.com/blog/index.php/2008/09/24/djangocon-part-2/#comment-242781</link>
		<dc:creator>mike bayer</dc:creator>
		<pubDate>Thu, 25 Sep 2008 16:18:48 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=403#comment-242781</guid>
		<description>wrt the paster setup process, all the code generated by paster setup is not &quot;boilerplate&quot; since you didn&#039;t have to create it yourself.  It&#039;s all there for you to modify.  Once your app gets going and you need to customize its overall functionality, having the whole middleware configuration and everything else transparently visible and outside of the installed libraries is gold.   It&#039;s not at all a new idea and is highly analagous to a framework like Struts2.   Granted, it&#039;s not ever going to be big with the PHP crowd but as the J2EE community begins to give Python a second look, the Pylons/TG approach will appeal to a broad segment of that base (as it is here, in a shop where we have Pylons and Django apps, the Java devs prefer the Pylons way for its transparency and configurability).</description>
		<content:encoded><![CDATA[<p>wrt the paster setup process, all the code generated by paster setup is not &#8220;boilerplate&#8221; since you didn&#8217;t have to create it yourself.  It&#8217;s all there for you to modify.  Once your app gets going and you need to customize its overall functionality, having the whole middleware configuration and everything else transparently visible and outside of the installed libraries is gold.   It&#8217;s not at all a new idea and is highly analagous to a framework like Struts2.   Granted, it&#8217;s not ever going to be big with the PHP crowd but as the J2EE community begins to give Python a second look, the Pylons/TG approach will appeal to a broad segment of that base (as it is here, in a shop where we have Pylons and Django apps, the Java devs prefer the Pylons way for its transparency and configurability).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Ramm</title>
		<link>http://compoundthinking.com/blog/index.php/2008/09/24/djangocon-part-2/#comment-242780</link>
		<dc:creator>Mark Ramm</dc:creator>
		<pubDate>Thu, 25 Sep 2008 16:09:24 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=403#comment-242780</guid>
		<description>Well, I agree that having reusable app components build in Django is a very useful thing, and making that easy is that&#039;s one of the goals of TG2 in the next iteration.

There&#039;s obviously a balance between providing easy ways to customize things in the quick started template and keeping the code generation under control.   TG2 started with the same template as Pylons, and we&#039;ve been slowly but surely decreasing the amount of code in the quickstart template and moving somethings into TG2. 

I do think you may be confused about how the base controller works, it&#039;s just there as a stub for you to use to add customizations too -- the controller in lib.base is very, very small and just subclasses a controller in TG2.  It&#039;s purpose is just to make it obvious where such customizations should live. 

As I mentioned, most of the flaming is coming from people who haven&#039;t actually watched the talk and are making interesting assumptions about what I must have said, or what motives I must have had.   

I&#039;m not worried about it though, it&#039;s just part of life, and really it hasn&#039;t been that bad.</description>
		<content:encoded><![CDATA[<p>Well, I agree that having reusable app components build in Django is a very useful thing, and making that easy is that&#8217;s one of the goals of TG2 in the next iteration.</p>
<p>There&#8217;s obviously a balance between providing easy ways to customize things in the quick started template and keeping the code generation under control.   TG2 started with the same template as Pylons, and we&#8217;ve been slowly but surely decreasing the amount of code in the quickstart template and moving somethings into TG2. </p>
<p>I do think you may be confused about how the base controller works, it&#8217;s just there as a stub for you to use to add customizations too &#8212; the controller in lib.base is very, very small and just subclasses a controller in TG2.  It&#8217;s purpose is just to make it obvious where such customizations should live. </p>
<p>As I mentioned, most of the flaming is coming from people who haven&#8217;t actually watched the talk and are making interesting assumptions about what I must have said, or what motives I must have had.   </p>
<p>I&#8217;m not worried about it though, it&#8217;s just part of life, and really it hasn&#8217;t been that bad.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: j_king</title>
		<link>http://compoundthinking.com/blog/index.php/2008/09/24/djangocon-part-2/#comment-242778</link>
		<dc:creator>j_king</dc:creator>
		<pubDate>Thu, 25 Sep 2008 15:38:28 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=403#comment-242778</guid>
		<description>I think you&#039;re right on many counts.

However, I think you&#039;re being mislead to think that Django is talking about the framework dependencies when it uses the slogan, &quot;tightly integrated, loosely coupled.&quot;

What it really means when talking about Django is that the framework is tightly integrated, but the application code written on it is loosely coupled.

For example, I write a bunch of code for a forum built on Django. That code lives on its own as a python package. It has only a handful of imports to do from Django in order to work. I can then pack and re-use or even distribute my new forum package. Anyone running Django can import the package into their settings file and it will just work. They can then specify their own template path and start developing their own forum templates without touching my package&#039;s source.

That, I think, is a very nice feature.

Contrasted with Turbogears 2 which I just set up the other day -- I&#039;m starting with a huge file-system structure and a tonne of boilerplate code. I just entered the &#039;paster quickstart&#039; command and already have more code than most Django apps I&#039;ve ever had to write. There&#039;s a lot of code I would assume should just be in the tg package, but for some reason it&#039;s polluting my application source. What&#039;s with all the boilerplate? Why can&#039;t those controller base classes live in tg.controllers?

Boilerplate makes babies cry.

However, Django could definitely be better off if it would open up to outside developments like SQLAlchemy (which is being worked on AFAIK) and the various other template languages and dispatch systems (though I think Django&#039;s dispatcher is the best thing since sliced bread... really not a fan of the active routing method).

If you are getting lots of flaming it might simply be a mis-communication issue.

Good talk though overall -- I did sit through all 50mins of it on youtube. ;)</description>
		<content:encoded><![CDATA[<p>I think you&#8217;re right on many counts.</p>
<p>However, I think you&#8217;re being mislead to think that Django is talking about the framework dependencies when it uses the slogan, &#8220;tightly integrated, loosely coupled.&#8221;</p>
<p>What it really means when talking about Django is that the framework is tightly integrated, but the application code written on it is loosely coupled.</p>
<p>For example, I write a bunch of code for a forum built on Django. That code lives on its own as a python package. It has only a handful of imports to do from Django in order to work. I can then pack and re-use or even distribute my new forum package. Anyone running Django can import the package into their settings file and it will just work. They can then specify their own template path and start developing their own forum templates without touching my package&#8217;s source.</p>
<p>That, I think, is a very nice feature.</p>
<p>Contrasted with Turbogears 2 which I just set up the other day &#8212; I&#8217;m starting with a huge file-system structure and a tonne of boilerplate code. I just entered the &#8216;paster quickstart&#8217; command and already have more code than most Django apps I&#8217;ve ever had to write. There&#8217;s a lot of code I would assume should just be in the tg package, but for some reason it&#8217;s polluting my application source. What&#8217;s with all the boilerplate? Why can&#8217;t those controller base classes live in tg.controllers?</p>
<p>Boilerplate makes babies cry.</p>
<p>However, Django could definitely be better off if it would open up to outside developments like SQLAlchemy (which is being worked on AFAIK) and the various other template languages and dispatch systems (though I think Django&#8217;s dispatcher is the best thing since sliced bread&#8230; really not a fan of the active routing method).</p>
<p>If you are getting lots of flaming it might simply be a mis-communication issue.</p>
<p>Good talk though overall &#8212; I did sit through all 50mins of it on youtube. ;)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
