Why WSGI Minimalism: Difference between revisions

From GNU MediaGoblin Wiki
Jump to navigation Jump to search
(separated as per design decisions page.awaiting cite extension)
 
m (link fix)
 
Line 1: Line 1:
==Chris Webber on "Why WSGI Minimalism":==
== Chris Webber on "Why WSGI Minimalism": ==


If you notice in the technology list I list a lot of components
If you notice in the technology list I list a lot of components that are very "django-like", but not actually [http://www.djangoproject.com/ Django]components. What can I say, I really like a lot of the ideas in Django! Which leads to the question: why not just use Django?
that are very "django-like", but not actually [http://www.djangoproject.com/ Django]components. What can I say, I really like a lot of the ideas in
Django! Which leads to the question: why not just use Django?


While I really like Django's ideas and a lot of its components, I also feel that most of the best ideas in Django I want have been implemented as good or even better outside of Django. I could just use Django and replace the templating system with Jinja2, and the form system with wtforms, and the database with MongoDB and MongoKit, but at that point, how much of Django is really left?
While I really like Django's ideas and a lot of its components, I
also feel that most of the best ideas in Django I want have been
implemented as good or even better outside of Django. I could
just use Django and replace the templating system with Jinja2, and
the form system with wtforms, and the database with MongoDB and
MongoKit, but at that point, how much of Django is really left?


I also am sometimes saddened and irritated by how coupled all of Django's components are. Loosely coupled yes, but still coupled. WSGI has done a good job of providing a base layer for running applications on and if you know how to do it yourself <ref> [http://pythonpaste.org/webob/do-it-yourself.html Another Do-It-Yourself Framework]</ref>it's not hard or many lines of code at all to bind them together without any framework at all (not even say [http://pylonshq.com/ Pylons] [http://docs.pylonsproject.org/projects/pyramid/dev/ Pyramid] or [http://flask.pocoo.org/ Flask] which I think are still great projects, especially for people who want this sort of thing but have no idea how to get started). And even at this already really early stage of writing MediaGoblin, that glue work is mostly done.
I also am sometimes saddened and irritated by how coupled all of
Django's components are. Loosely coupled yes, but still coupled.
WSGI has done a good job of providing a base layer for running
applications on and if you know how to do it yourself <ref> [http://pythonpaste.org/webob/do-it-yourself.html Another Do-It-Yourself Framework]</ref>it's not hard or many lines of code at all to bind them together without any framework at all (not even say [http://pylonshq.com/ Pylons] [http://docs.pylonsproject.org/projects/pyramid/dev/ Pyramid]
or [http://flask.pocoo.org/ Flask] which I think are still great projects, especially for people who want this sort of thing but have no idea how to get
started). And even at this already really early stage of writing
MediaGoblin, that glue work is mostly done.


Not to say I don't think Django isn't great for a lot of things.
Not to say I don't think Django isn't great for a lot of things. For a lot of stuff, it's still the best, but not for MediaGoblin, I think.
For a lot of stuff, it's still the best, but not for MediaGoblin,
I think.


One thing that Django does super well though is documentation. It still has some faults, but even with those considered I can hardly think of any other project in Python that has as nice of documentation as Django. It may be worth learning some lessons on documentation from Django <ref>[http://pycon.blip.tv/file/4881071/ PyCon 2011: Writing great documentation]</ref> on that note.
One thing that Django does super well though is documentation. It
still has some faults, but even with those considered I can hardly
think of any other project in Python that has as nice of
documentation as Django. It may be worth learning some lessons on
documentation from Django <ref>[http://pycon.blip.tv/file/4881071/ PyCon 2011: Writing great documentation</ref> on that note.


I'd really like to have a good, thorough hacking-howto and
I'd really like to have a good, thorough hacking-howto and deployment-howto, especially in the former making some notes on how to make it easier for Django hackers to get started.
deployment-howto, especially in the former making some notes on
how to make it easier for Django hackers to get started.


==Notes==
== Notes ==
{{references | 2}}
<references/>


[[Category:DesignDecisions]]
[[Category:DesignDecisions]]

Latest revision as of 16:36, 20 May 2012

Chris Webber on "Why WSGI Minimalism":

If you notice in the technology list I list a lot of components that are very "django-like", but not actually Djangocomponents. What can I say, I really like a lot of the ideas in Django! Which leads to the question: why not just use Django?

While I really like Django's ideas and a lot of its components, I also feel that most of the best ideas in Django I want have been implemented as good or even better outside of Django. I could just use Django and replace the templating system with Jinja2, and the form system with wtforms, and the database with MongoDB and MongoKit, but at that point, how much of Django is really left?

I also am sometimes saddened and irritated by how coupled all of Django's components are. Loosely coupled yes, but still coupled. WSGI has done a good job of providing a base layer for running applications on and if you know how to do it yourself <ref> Another Do-It-Yourself Framework</ref>it's not hard or many lines of code at all to bind them together without any framework at all (not even say Pylons Pyramid or Flask which I think are still great projects, especially for people who want this sort of thing but have no idea how to get started). And even at this already really early stage of writing MediaGoblin, that glue work is mostly done.

Not to say I don't think Django isn't great for a lot of things. For a lot of stuff, it's still the best, but not for MediaGoblin, I think.

One thing that Django does super well though is documentation. It still has some faults, but even with those considered I can hardly think of any other project in Python that has as nice of documentation as Django. It may be worth learning some lessons on documentation from Django <ref>PyCon 2011: Writing great documentation</ref> on that note.

I'd really like to have a good, thorough hacking-howto and deployment-howto, especially in the former making some notes on how to make it easier for Django hackers to get started.

Notes

<references/>