views:

778

answers:

11

What makes Python stand out for use in web development? What are some examples of highly successful uses of Python on the web?

+5  A: 

Certainly one successful use of Python on the web is Google App Engine. Site authors write code in (a slightly restricted subset of) Python, which is then executed by the App Engine servers in a distributed and scalable manner.

Greg Hewgill
Or a buttload of other google code.
EBGreen
Is there some GAE runtime to let my code run on a different server if I decide that I don't want to continue using GAE?
stesch
@stesch I don't think so, but it's all python so you could probably port much of it over to django (or just use django on the GAE in the first place)
Jiaaro
+12  A: 

Django is, IMHO, one of the major benefits of using Python. Model your domain, code your classes, and voila, your ORM is done, and you can focus on the UI. Add in the ease of templating with the built-in templating language (or one of many others you can use as well), and it becomes very easy to whip up effective web applications in no time. Throw in the built-in admin interface, and it's a no-brainer.

Harper Shelby
+1  A: 

trac(bug tracker) and moinmoin(wiki) are too web based python tools that I find invaluable.

Aaron Maenpaa
A: 

Dynamic languages are in general good for web apps because the speed of development. Python in particular has two advantages over most of them:

  • "batteries included" means lots of available libraries
  • Django. For me this is the only reason why i use Python instead of Lua (which i like a lot more).
Javier
+1  A: 

GNU Mailman is another project written in python that is widely successful.

Ryan
A: 

Besides the frameworks...

  • Python's pervasive support for Unicode should make i18n much smoother.
  • A sane namespace system makes debugging much nicer, because it's typically easier to find where things are defined.
  • Python's inability to function as a standalone templating language should discourage the mixture of HTML with model code
  • Great standard library
Triptych
A: 

Other examples of Python sites are Reddit and YouTube.

Dan Ellis
+3  A: 

Quotes about Python:

"Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers," said Cuong Do, Software Architect, YouTube.com.

J.F. Sebastian
+1  A: 

Short anwser: the diversity of tools readily available and freedom of choice.

This sounds like a simple question but which it really isn't. While Python is very good for web development and this has been shown by the, oh so famous, Google App Engine, Plone and Django. One has to point out that the development way in Python requires a lot more from the developer than PHP but it gives a lot more to the mix as well.

The entry level on actually producing something is higher. This is because there are bunch of different tools for doing web development with Python. Choosing the web development framework can be a hard decision for an inexperienced developer.

Having a lot of different tools is a two edged sword. To some extent it brings you the freedom of choice to pick the one you might want but then again how do you really know which one is good for what you're doing. This brings me to my point. Python stands out from the mass by not having a standard or de facto web development library. While this is pretty much against the principle of having only one simple way of doing on thing it also brings us a wide variety of different tools with different kind of design choices. At first this might feel very frustrating because it would be so much easier if somebody had made the choice for you but now that you're left to make the choice you actually might have to think about what you're doing and what would fit. ...or you might just end up picking one and blowing your head off after you've realized that you made the wrong choice. Anyway you end up, you've made the choice and no one else.

Bleadof
A: 

As many have pointed out, Django is a great reason to use Python...so in order to figure out why Python is great for web development, the best bet is to look at why it is a good language to build a framework like Django.

IMHO Python combines the cleanest, or at least one of the cleanest, metaprogramming models of any language with a very pure object orientation. This not only makes it possible to write extremely general abstractions that are easy to use, but also allows the abstractions to combine relatively cleanly with others. This is harder to do in languages that take a code-generation based approach to metaprogramming (e.g. Ruby).

Erik Engbrecht
+2  A: 

YouTube uses a lot of Python and is probably the best example of a Python success story.

A great example of a Django success story is the Washington Post, who recently shared a big list of applications they have developed:

http://push.cx/2009/washington-post-update

www.lawrence.com and www.ljworld.com are two of the first sites to use Django (before it was even open source).

djangositeoftheweek.com has a bunch of good case studies.

www.everyblock.com is another great example.

Finally, http://www.djangosites.org/ links to nearly 2,000 other Django powered sites.

Simon Willison