<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Werkzeug 0.1 Released</title>
	<link>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/</link>
	<description>Armin Ronacher thinking</description>
	<pubDate>Sat, 11 Oct 2008 11:29:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2</generator>

	<item>
		<title>By: Empty</title>
		<link>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1241</link>
		<author>Empty</author>
		<pubDate>Mon, 24 Dec 2007 17:59:01 +0000</pubDate>
		<guid>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1241</guid>
		<description>Wow, very impressive.  I plan to dig through this code just for the learning value if nothing else.  I too would like to see this type of web-based console debugger available in Django.  Thanks again for your contribution.</description>
		<content:encoded><![CDATA[<p>Wow, very impressive.  I plan to dig through this code just for the learning value if nothing else.  I too would like to see this type of web-based console debugger available in Django.  Thanks again for your contribution.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: propanbutan</title>
		<link>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1228</link>
		<author>propanbutan</author>
		<pubDate>Sun, 23 Dec 2007 16:04:29 +0000</pubDate>
		<guid>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1228</guid>
		<description>Werkzeug is a gem, to the point, elegant, lean code. Luke Arno's libraries have a similar quality, the conventions are natural, the code is easy to follow, build upon and adapt to. Unlike Paste, where I first got turned off by StackedObjectProxy, after realizing it was just a glorious wrapper for threading.local. And while this generic header parser-composer is, well generic, I can deal with raw header strings just fine, hence I use Werkzeug. Thanks for sharing it.
PS. Is pocoo dead or just hibernating?</description>
		<content:encoded><![CDATA[<p>Werkzeug is a gem, to the point, elegant, lean code. Luke Arno&#8217;s libraries have a similar quality, the conventions are natural, the code is easy to follow, build upon and adapt to. Unlike Paste, where I first got turned off by StackedObjectProxy, after realizing it was just a glorious wrapper for threading.local. And while this generic header parser-composer is, well generic, I can deal with raw header strings just fine, hence I use Werkzeug. Thanks for sharing it.<br />
PS. Is pocoo dead or just hibernating?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: In Nomine - The Lotus Land &#187; Werkzeug 0.1 released - WSGI toolbox</title>
		<link>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1200</link>
		<author>In Nomine - The Lotus Land &#187; Werkzeug 0.1 released - WSGI toolbox</author>
		<pubDate>Fri, 21 Dec 2007 11:48:33 +0000</pubDate>
		<guid>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1200</guid>
		<description>[...] Ronacher has released Werkzeug 0.1 a little while ago. As the website for Werkzeug says: &#8220;Werkzeug is a collection of various utilities for WSGI [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Ronacher has released Werkzeug 0.1 a little while ago. As the website for Werkzeug says: &#8220;Werkzeug is a collection of various utilities for WSGI [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam Hinds</title>
		<link>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1181</link>
		<author>Adam Hinds</author>
		<pubDate>Wed, 19 Dec 2007 10:00:37 +0000</pubDate>
		<guid>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1181</guid>
		<description>Thank you for releasing this, have looking for something lightweight like this for a while.</description>
		<content:encoded><![CDATA[<p>Thank you for releasing this, have looking for something lightweight like this for a while.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Graham Dumpleton</title>
		<link>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1021</link>
		<author>Graham Dumpleton</author>
		<pubDate>Tue, 11 Dec 2007 02:19:13 +0000</pubDate>
		<guid>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1021</guid>
		<description>FWIW, I personally feel that choice is good. I do not buy in to this argument that in Python there should always be only one way of doing things. If one were to pursue that ideal to the end then you will just end up with a monopolistic mono culture that would more than likely stagnate.

When different parties do implement similar things they are never really the same anyway, as each will incorporate different ideas as to how to go about solving the problem. This is important and any decent programmer would look at what other people are doing in the Python community and learn from others successes, as well as their failures. It is only through this cross fertilisation of ideas and learning from others that as a whole the quality and utility of code will move forward.

The other thing with competing solutions is that they usually have different trade offs, and as such, which one is better for a particular scenario will depend on the sort of application or environment it is used in. No one solution will always be the best at everything.

As such I feel that trying to suppress people from doing their own thing and trying to make them use a specific package is in the end run counter productive. If a solution is not good it will die its own death. If it is a good solution and for good reason, it could well become so successful as to replace all other existing solutions, even if only for a time.

So, empires will come and go, this will never change and we shouldn't try and stop it.</description>
		<content:encoded><![CDATA[<p>FWIW, I personally feel that choice is good. I do not buy in to this argument that in Python there should always be only one way of doing things. If one were to pursue that ideal to the end then you will just end up with a monopolistic mono culture that would more than likely stagnate.</p>
<p>When different parties do implement similar things they are never really the same anyway, as each will incorporate different ideas as to how to go about solving the problem. This is important and any decent programmer would look at what other people are doing in the Python community and learn from others successes, as well as their failures. It is only through this cross fertilisation of ideas and learning from others that as a whole the quality and utility of code will move forward.</p>
<p>The other thing with competing solutions is that they usually have different trade offs, and as such, which one is better for a particular scenario will depend on the sort of application or environment it is used in. No one solution will always be the best at everything.</p>
<p>As such I feel that trying to suppress people from doing their own thing and trying to make them use a specific package is in the end run counter productive. If a solution is not good it will die its own death. If it is a good solution and for good reason, it could well become so successful as to replace all other existing solutions, even if only for a time.</p>
<p>So, empires will come and go, this will never change and we shouldn&#8217;t try and stop it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Armin Ronacher</title>
		<link>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1017</link>
		<author>Armin Ronacher</author>
		<pubDate>Mon, 10 Dec 2007 19:10:24 +0000</pubDate>
		<guid>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1017</guid>
		<description>Ian: Well. Unfortunately some project evolved next to each other. Colubrid started long ago and some parts of it are either bad implemented and/or silly. However it was still one of the smallest libraries so I thought about uncoupling the request and response objects, the debugger and some other functions there. I also wanted a slightly improved version of string.Template so that was that template engine thing.

However I missed for some time that you started a very similar thing namely webob and tempita. I guess if those projects would have existed for a little longer some parts of werkzeug would probably not exist as such.

One of the reasons why I never really felt that happy with paste was that it brings a lot of stuff I personally don't want to use and lacks things I need every day. There are exceptions for every status code, how many of those do you actually use? There are request objects but the file handling feels a lot like the cgi module thanks to the FieldStorage. Long time ago I had big problems with unicode because paste was lacking unicode support everywhere. Paste comes with interesting stuff but most of them I don't use (like paste deploy, SCGI, paste config, transactions) which make 20.000 lines of code and lack things I would actually use (like URL routing, the Werkzeug debugger [yes, there is evalexception, however my sense for aesthetics and usability prefers the Werkzeug one, sorry for that], a simple way to generate custom management scripts without installing PasteScript).

At the end of the day Werkzeug is a very small library bundling everything you need to bootstrap your own WSGI application in no time and I'm very happy with the feature/lines of code ratio. And even if I was the only person using Werkzeug the work of the last half year was worth the effort. And unlike Colubrid it's predecessor you can mix it with any other library out there which makes it a good addition to existing libraries.

Hope I could defend my POV :-)

Regards,
Armin</description>
		<content:encoded><![CDATA[<p>Ian: Well. Unfortunately some project evolved next to each other. Colubrid started long ago and some parts of it are either bad implemented and/or silly. However it was still one of the smallest libraries so I thought about uncoupling the request and response objects, the debugger and some other functions there. I also wanted a slightly improved version of string.Template so that was that template engine thing.</p>
<p>However I missed for some time that you started a very similar thing namely webob and tempita. I guess if those projects would have existed for a little longer some parts of werkzeug would probably not exist as such.</p>
<p>One of the reasons why I never really felt that happy with paste was that it brings a lot of stuff I personally don&#8217;t want to use and lacks things I need every day. There are exceptions for every status code, how many of those do you actually use? There are request objects but the file handling feels a lot like the cgi module thanks to the FieldStorage. Long time ago I had big problems with unicode because paste was lacking unicode support everywhere. Paste comes with interesting stuff but most of them I don&#8217;t use (like paste deploy, SCGI, paste config, transactions) which make 20.000 lines of code and lack things I would actually use (like URL routing, the Werkzeug debugger [yes, there is evalexception, however my sense for aesthetics and usability prefers the Werkzeug one, sorry for that], a simple way to generate custom management scripts without installing PasteScript).</p>
<p>At the end of the day Werkzeug is a very small library bundling everything you need to bootstrap your own WSGI application in no time and I&#8217;m very happy with the feature/lines of code ratio. And even if I was the only person using Werkzeug the work of the last half year was worth the effort. And unlike Colubrid it&#8217;s predecessor you can mix it with any other library out there which makes it a good addition to existing libraries.</p>
<p>Hope I could defend my POV :-)</p>
<p>Regards,<br />
Armin</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Bicking</title>
		<link>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1015</link>
		<author>Ian Bicking</author>
		<pubDate>Mon, 10 Dec 2007 18:39:43 +0000</pubDate>
		<guid>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1015</guid>
		<description>Werkzeug always leaves me a little... baffled.  The feature list is so closely matched to Paste and its related libraries.

For instance: 

request/response: paste.wsgiwrappers, and now webob
file uploads: well, the cgi module automatically does that
static files: paste.fileapp and paste.urlparser.StaticURLParser
wsgiref wrapper: paste.httpserver and paster serve
unicode: paste.wsgiwrappers/webob
mini template engine: tempita
context locals: paste.registry
test utilities: paste.fixture.TestApp and now webtest
interactive debugger: paste.evalexception and now weberror

I don't particularly mind this duplication, but I'm confused by it.  Why reimplement everything?  (And you aren't even the only one, Luke Arno's libraries have the same pattern of reimplementation.)</description>
		<content:encoded><![CDATA[<p>Werkzeug always leaves me a little&#8230; baffled.  The feature list is so closely matched to Paste and its related libraries.</p>
<p>For instance: </p>
<p>request/response: paste.wsgiwrappers, and now webob<br />
file uploads: well, the cgi module automatically does that<br />
static files: paste.fileapp and paste.urlparser.StaticURLParser<br />
wsgiref wrapper: paste.httpserver and paster serve<br />
unicode: paste.wsgiwrappers/webob<br />
mini template engine: tempita<br />
context locals: paste.registry<br />
test utilities: paste.fixture.TestApp and now webtest<br />
interactive debugger: paste.evalexception and now weberror</p>
<p>I don&#8217;t particularly mind this duplication, but I&#8217;m confused by it.  Why reimplement everything?  (And you aren&#8217;t even the only one, Luke Arno&#8217;s libraries have the same pattern of reimplementation.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ali Afshar</title>
		<link>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1009</link>
		<author>Ali Afshar</author>
		<pubDate>Mon, 10 Dec 2007 13:57:23 +0000</pubDate>
		<guid>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1009</guid>
		<description>Excellent work! I have been using Werkzeug for a good while now, and I can strongly recommend it to any web developer.</description>
		<content:encoded><![CDATA[<p>Excellent work! I have been using Werkzeug for a good while now, and I can strongly recommend it to any web developer.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Armin Ronacher</title>
		<link>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1006</link>
		<author>Armin Ronacher</author>
		<pubDate>Mon, 10 Dec 2007 08:11:22 +0000</pubDate>
		<guid>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1006</guid>
		<description>I already did that. That package is called werkzeug ;-) Seriously. Werkzeug plays very well with other packages and it's a very small package, about 3000 lines in total. So no real need to further unbundle the debugger.

Regards,
Armin</description>
		<content:encoded><![CDATA[<p>I already did that. That package is called werkzeug ;-) Seriously. Werkzeug plays very well with other packages and it&#8217;s a very small package, about 3000 lines in total. So no real need to further unbundle the debugger.</p>
<p>Regards,<br />
Armin</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan</title>
		<link>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1005</link>
		<author>Dan</author>
		<pubDate>Mon, 10 Dec 2007 07:53:42 +0000</pubDate>
		<guid>http://lucumr.pocoo.org/cogitations/2007/12/09/werkzeug-01-released/#comment-1005</guid>
		<description>Your debugger is very nice. It even looks nicier that Paste's one. Do you have plans on releasing it as a separate package so every WSGI applications developers could use it? It would be great to have such a package. For example, we currently use Paste's evalexception debugger in our Zope3 development, but werkzeug's one looks so great, I'm going to try it with Zope3... :)</description>
		<content:encoded><![CDATA[<p>Your debugger is very nice. It even looks nicier that Paste&#8217;s one. Do you have plans on releasing it as a separate package so every WSGI applications developers could use it? It would be great to have such a package. For example, we currently use Paste&#8217;s evalexception debugger in our Zope3 development, but werkzeug&#8217;s one looks so great, I&#8217;m going to try it with Zope3&#8230; :)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
