python is not a new programming language ,it has been there for the
last .... 15+ years or so ? right ?
however by having a look at this page http://wiki.python.org/moin/Applications
i could not see many programs written in python (i will be interested
more in COMMERCIAL programs written in python ). and to be honest ,i
tried some of the programs in that list and all the programs that i
tried either dead projects or so buggy !
1- where are the programs that is written in python ?
2- python is high productivity language : why there are no commercial
programs written in python ?
is python a valid practical programming language ?
why it is not used in commercial software ?
please don't mention programs where python was used as a glue ,those
programs are not actually written in python.
any help will be appreciated
Yeah about the same as Java
It's a wiki, if anybody is interested they could change the page, I
actually have never looked at it.
My experience is that Python is the FreeBSD of the programming
languages. For example, the average user knows mac and windows, the
average admin knows there is also something like linux, and the average
linux admin knows there is also something like BSD.
Python is used in a lot in custom applications, while off the shelve
software needs a lot of buzzwords to shift any market interest.
I have participated in a couple of 'pure' Python programs, used by
Airbus, Randstad and a whole fleet of small firms. But yes, off the
shelve software seems to be either written in Java or any .net equivalent.
did this not go to the list? Arg, reply does in other mailing list.
thankx for reply.
from that list i have a feeling that python is acting only as "quick
and dirty work" nothing more !
Too bad, that still nobody feels insulted isn't it?
You might have just offended a lot of people on the list here....
Well, in any case, I can tell you that I know of a number of large
commercial web sites built with Django. I just can't tell you what
they are. ;-)
would you call 8702 python statements big? If so,
Kajongg would be a candidate.
Most projects are dead projects; that is just the natural state of
things regardless of language. Just browse Sourceforge for awhile.
I've looked it over, there is some interesting stuff. But why
contribute a story when you could be coding on your project! A
perennial problem. :)
I suppose it depends on your use of the term "used". It is used a *lot*
in the SOA / Workflow world - in the form of Jython. That provides a
very nice way to extend Java applications [it is still Python! Python
is a language, not a runtime].
In general to 'core' of large applications are, IMO, easier to maintain
in the more rigid statically typed languages as the toolchain can do
more work for you. Of course someone here will have a fit about that
And what about Gwibber? Zeitgeist? BitTorrent? Zope/Plone? Those are
all certainly "real" applications. Zope is almost an industry unto
I think your distinction is not valid. "glue" is a vital part of every
enterprise. And the sophistication of some "glue" certainly surpasses
< http://hackerboss.com/how-to-distribute-commercial-python-ap[..] > is an interesting read. Certainly the 'packaging' mechanism is less end-user friendly than .NET. I personally would not choose to create an end-user application in Python; but it has become my first choice for server-side development.
Adam Tauno Williams <awilliam*******> LPIC-1, Novell CLA
< http://www.whitemiceconsulting.com> >
OpenGroupware, Cyrus IMAPd, Postfix, OpenLDAP, Samba
I write commercial software full-time in Python (well, mixed with C )
at ESRI. I have been able to make a living developing in Python full
time at various places for the last 4 years. I can assure you that
there is plenty of commercial software out there that uses Python. The
reason you don't *see* it is because the development language for a
commercial product is a lot less important than the functionality of
the product, so "WRITTEN IN PYTHON!!!!" is likely not going to be a
bullet point on a marketing slide. And quite frankly, it should be a
trade secret for the companies enlightened enough to use it as their
language of choice because it is to productive that it provides a
Try 'quick and clean' and you would be more accurate.
But that would not be so trollish, would it?
Well you could try PyPi, or even a search on googlecode.
What do you mean by commercial, and why?
So, you want us to believe that you desperately want to pay someone
for working Python software, but are finding it hard to find some?
All over the place.
There are a lot of commercial programs written in Python. But any
company which thinks it has a lock on some kind of super secret sauce
isn't going to use Python, because it's very easy to reverse engineer
even compiled Python programs. Also, any company in a competitive
market where execution speed is extremely important might choose some
other language because, frankly, the fact that a development tool is
highly productive is not something that the end user directly cares
about. (But the up-front choice of another language simply for speed,
rather than prototyping with Python and then recoding the slow bits,
would probably be a decision borne of ignorance.)
Absolutely. I've been using it heavily for 11 years, for real work,
for which I get paid.
What makes you think that it's not? Is this some kind of "big lie"
strategy? To what end?
It's hard to help when you don't describe the problem. Reading
between the lines, the most charitable and probable interpretation of
your problem I can come up with is that you think you're going to
create a multi-billion dollar computer program and you're desperately
trying to validate your preconceived notion that Python isn't the
language to write it in. Sorry, but I can't help with that.
Yeah, there's not really a lot of industry support. If only we could
get a huge search engine like bing to use python extensively we'd
be in a lot better shape.
There are two kinds of 'commercial' programs.
1. The vast majority are proprietary programs kept within a company for
its own use. As long as these work as intended, they are mostly
invisible to the outside world.
2. Programs sold to anyone who wants them.
Python trades programmer speed for execution speed. If a successful
Python program is going to be run millions of times, it makes economic
sense to convert time-hogging parts to (for instance) C. In fact, this
is a consideration in deciding what functions should be builtin and
which stdlib modules are written or rewritten in C.
Programs being sold tend to be compared to competitors on speed with
perhaps more weight than they rationally should. Speed is easier to
measure than, for instance, lack of bugs.
Python programs can be and sometimes are distributed as .exe files. The
users of such neither know nor care that some of the source is Python.
Mostly kept private. For instance, GvR, Python's inventor, spent part of
his first year at Google writing a neat-looking programmer console
program in Python (Mondrian) designed to improve the productivity of
Google programmers. As far as I know, Google has not released it.
A C program glues together micro-coded functions. Even a 'pure' CPython
program glues together C-coded functions. Some are in builtins, some are
imported from the stdlib, and some can be imported from 3rd party
packages. The extensibility of CPython is part of its design.
Terry Jan Reedy
Or if an organization known to hire a bunch of rocket-scientists
were to use Python...that would make it a real language...
That's not always true. Both my employer (Egnyte) and one of our main
competitors (Dropbox) use Python in our clients. We don't care much
because using our servers is a requirement of the client.
f u cn rd ths, u cn gt a gd jb n nx prgrmmng.
Doesn't that mean those companies don't fit the above description? That
is, neither of them â€śthinks it has a lock on some kind of super secret
sauceâ€ť in the programs. So they don't seem to be counter-examples.
\ â€śThe right to search for truth implies also a duty; one must |
`\ not conceal any part of what one has recognized to be true.â€ť |
_o__) â€”Albert Einstein |
doubting python's speed? Look at Mercurial vs. SVN; Mercurial is written
in Python while SVN in C. Mercurial beats SVN in speed by several orders
One of Mercurial's design goal was to be faster than SVN, if the
programmers have naively believed that choice of language would matter
to program's speed, they'd choose to write Mercurial in assembly instead
(the same argument applies to Git, written in shell scripts).
Now, you may think this is an unfair comparison, since Mercurial is hype
and new, SVN is antiquated and old. But it shows that in real-life, the
language being inherently slow often dosn't matter. What matters more
are the choice of data structure and algorithm, I/O speed, network
latency, and development speed.
Erm, in fairness, I recall hearing that some speed-critical bits of hg
are written in C. It does lend credence to the "Python as glue
language" argument though; I doubt hg's extensibility and friendly
interface would have been as easy to implement it C (particularly the
slick instant-server feature).
I hate to answer a troll, but I'll just mention that when people talk
about a "glue language", they're not talking about using some Python
code to connect two big systems together (although Python is good for
What they are saying is that Python is a good language to serve as
high-level logic interfacing lots of different library codes--often
but not always written in faster languages--together in one program.
In that case, yes, the program is written in Python.
The word "glue" is probably not the best metaphor, since to most
people it means "something you use to connect two objects together".
A better metaphor would be like a "substrate language".
A lot of materials do use a form of glue as the substrate, but never
You could search for them with Google and download your results
No, it is probably Turing incomplete.
short, derisive tome, I inferred that the OP's definition of
"commercial" was quite narrow, so I was trying to respond on the basis
of what he would consider "commercial," which BTW, probably wouldn't
include a lot of programs that, e.g. Google uses to make money.
Just because someone has competition doesn't mean they don't think
they have secret sauce. I think Aahz's main point was that in his sub-
industry, the secret sauce is guarded by not actually letting the
customer have access to executable code, other than through the
Decompiling Java or .NET bytecode isn't rocket science either.
That only applies to CPU bound program code (most program code is I/O
bound), and only to computational bottlenecks (usually less than 5% of
the code) in the CPU bound programs. Today, most programs are I/O
bound: You don't get a faster network connection or harddrive by using
C. In this case, performance depends on other factors than choice of
language. That is why Mercurial (written in Python) can be much faster
than SVN (written in C).
For computational bottlenecks we might want to try high-performance
numerical libraries first. If that does not help, we can try to
replace some Python with C. Python as "glue" does not mean Python is
inferior to C. It just means it is a PITA to write C or Fortran all
the time. I value my own time a lot more than a few extra CPU cycles.
Who cares about speed where it is not needed?
There are also a lot of uneducated FUD about the GIL: First, for I/O
bound programs the GIL is not an issue, as threads that are blocked
and waiting for I/O do not compete for the GIL. (That should be rather
obvious, but my guesstimate is that most programmers do not understand
this.) Second, for CPU bound programs the GIL is not an issue either:
Fine-grained parallelization is done elsewhere than Python, e.g.
hidden inside numerical libraries or implemented with OpenMP pragmas
in C code. Course-grained parallelization can be done in Python using
Python threads, as the GIL can be released in C using a couple of
macros (or using ctypes.CDLL). In practice, the GIL rarely impairs
anything, but create a lot of FUD form persons who do not understand
thank you very much ,your reply guys are very nice and informative.
hope you best luck in your life
Just as an aside, last I checked, mercurial had some core code in
C for speed. But that doesn't negate your line of reasoning,
rather it cements it -- they found it was most productive to work
in Python, but needed the core bits to improve in speed so
I'd also include that a change in algorithm can be a big help for
speeding up CPU-bound code. It doesn't matter much if you're
using Python or hand-coding that inner loop in C/ASM, if you're
using a O(2^N) algorithm. I find it easier to write good/speedy
algorithms in Python because I have a toolkit of built-in
data-types (sets, dicts, lists, etc) that I can reach for,
without making sure I've added-on certain C libraries.
Rewriting an algorithm also helps I/O-bound code when you're doing
something stupid like querying a DB multiple times for each record
instead of caching the result. Also, rewriting your algorithm to just
pull the entire DB into RAM helps, too. (If you know your dataset must
fit into RAM, anyway, in order to process your algorithm.)
f u cn rd ths, u cn gt a gd jb n nx prgrmmng.
Yes it does, if it involves how we do I/O. Algorithms are just as
important for I/O bound as they are for compute bound code.
But implementing an algorithm in C as opposed to Python would not
improve nearly as much for I/O bound as it could do for compute bound
The is a somewhat bizarre response to me. I have been promoting Python
for about 13 years, since I dubbed it 'executable pseudocode', which is
to say, easy to write, read, understand, and improve. I am also a
realist. Any fixed (C)Python program can be sped up, at least a bit, and
possibly more, by recoding in C. At minimum, the bytecodes can be
replaced by the C code and C-API calls that they get normally get
translated into. Ints can be unboxed. Etcetera. This tend to freeze a
program, which is fine when development is finished.
repeatedly used components of other Python programs. He is not 'doubting
Python's speed', just being realistic.
Neither are being sold, as far as I know.
speed, including speed of testing new algorithms, over raw execution
speed of current algorithms. (Current) speed is (also) easier to test
than improvability and hence possible speed improvements.
If and when mercurial deveopment slows down, some of its developers
might consider whether any of the utility functions written in Python
might usefully be rewritten in C. One of the intentional virtues of
Python is that one can transparently convert part or all of a module
*without changing* the import and use of the module.
Terry Jan Reedy
I think we're in violent agreement here -- you neglected to quote the
for speed, rather than prototyping with Python and then recoding the
slow bits, would probably be a decision borne of ignorance.)"
First of all, I don't think you and Lie have any basic disagreements.
The key realization is that the quantitative difference in programmer
speed you mention is so large (orders of magnitude) that, for many
classes of problems, it is not just *possible*, but actually
*probable*, that a Python implementation *will be faster* than a C
implementation. Yes, you are absolutely correct that most Python
programs can be made faster by adding a bit of C, but that doesn't
negate the fact that if I can throw 'x' man-hours at a problem, for
lots of real-world values of 'x' and of 'the problem', a pure Python
implementation will run rings around a pure C implementation, assuming
the C implementation even works by the time I've burned through 'x'
hours. I discussed this a bit on this newsgroup over five years ago,
and the points are still pertinent:
I don't even think that Mercurial development has to slow down to
decide to recode a few things in C. A tiny bit of C at the right
place can often provide more than enough leverage to be worthwhile,
and be small enough to throw away if need be.
Is C viewed as a "glue language" in those environments where it is the
primary tool and sometimes some small bits are recoded into assembly
language for speed?
Is it [only] the aspect of being "sold" that makes software
A better question would be is how many Python applications, in house or
not, are used to facilitate commerce. Answer: a lot.
I have an Open Source project with >100,000 lines of Python code [which
I think qualifies as a 'real' application]
< https://www.ohloh.net/p/coils/analyses/latest>. But that it is Open
Source makes it non-commercial? I doubt anyone would use it outside of
a commercial environment, and one of its principle goals is to serve as
the backend for CRM systems [essentially commercial] and facilitate
automation of business processes [essentially commercial]. The 'secret
sauce' isn't the code [which is MIT licenses] but what you do with it.
But since the framework is essentially general purpose - why not publish
I think of my Open Source code as "commercial".
Adam Tauno Williams <awilliam*******> LPIC-1, Novell CLA
< http://www.whitemiceconsulting.com> >
OpenGroupware, Cyrus IMAPd, Postfix, OpenLDAP, Samba
I came across a game on Big Fish Games recently (it was
"The Moonstone" IIRC) that appeared to have been built using
Python and py2app.
I'm not arguing against you. You're argument is almost that which
Donald Knuth attributes to C.A.R. Hoare: "Premature optimization is
the root of all evil in computer programming." It's very true though.
I've been writing scrintific software for over 10 years. I always find
myself writing small pieces of C now and then. It is usally because
header files are too complicated to expose to Python. I will e.g. make
OpenGL calls from C, and then call the rendering routine from Python
with ctypes. It saves me the work of exposing OpenGL (or whatever) to
Python. There are already header files that make the API available to
Yes I know about PyOpenGL, but then there is the speed argument: From
C I can make epeated calls to functions like glVertex4f with minial
loss of efficacy. Calling glVertex4f from Python (e.g. PyOpenGL) would
give me the Python (and possibly ctypes) overhead for each call, which
So there is the two arguments for using C now and then: (1) Save
programming time by not having to repeat header files and (2) make
programs run faster by avoiding the Python overhead. Some times it
matters, some times it don't. But it does not make sense to write C or
C all the time, nor does it help to use C or C for I/O bound
Not to counter your arguement, but I would just like to point out that
calling glVertex*() repeatedly is always not as efficient as using a VBO or
a display list.
I'm not claiming Python is faster than C, but I'm just being a realists,
when I say that in real life 9 out of 10 writing a program in a slow
language doesn't really matter to actual program speed. I used Mercurial
as an example where the developers choose an initially irrational
decision of using a slow language (python) to beat the speed of a fast
Of course, you can always point out the 1 case out of 10. In this cases,
python can still cope with C extension, Psyco, Numpy-and-friends,
Cython, or even dumping python and using full C all the way.
But the point still hold, that in real life, often the language's raw
speed doesn't really limit the program's speed.
I would rather say that Python vs C does not matter until it does, and
it generally does when constants factor matter (which is one way to
draw the line between system programming and "general" programming).
It totally depends on the applications, I don't think you can draw
I disagree. C matters because it is portable assembly code. Which
means it is tedious and error prone to use, so avoiding it actually
matters. Hence C matters. Knowing when and when not to use C matters a
Python tends to be used more for scripting internal game logic than
for every aspect of a game (which is, IMO, the right way to go about
it). It's not a huge list of commercial games that does this, but
it's a fairly classy one :)
List of Python software
Jump to:navigation, search
This article needs additional citations for verification.
Please help improve this article by adding reliable references. Unsourced material may be challenged and removed. (March 2008)
The Python programming language is actively used by many people, both in industry and academia for a wide variety of purposes.
1 Integrated development environments
3 Web Applications
4 Video games
5 Web frameworks
6 Graphics frameworks
7 GUI frameworks
8 Scientific packages
9 Mathematical libraries
10 Additional development packages
11 Embedded as a scripting language
12 Commercial uses
13 Python implementations
15 External links
 Integrated development environments
Boa Constructor, a cross-platform IDE for Python development
EasyEclipse, an open source IDE for Python and other languages
Eric, an IDE for Python and Ruby
PIDA, open source IDE written in Python capable of embedding other text editors, such as Vim
Stani's Python Editor (SPE), a cross-platform IDE for Python development
Webware for Python, a suite of programming tools for constructing web-based applications in Python
Wing IDE, an IDE for Python
NetBeans, is written in Java and runs everywhere where a JVM is installed.
Anki, a spaced repetition flashcard program
Bazaar, a free distributed revision control system
BitTorrent, original client, along with several derivatives
BuildBot, a continuous integration system
Calibre, an open source e-book management tool
Chandler, a personal information manager including calendar, email, tasks and notes support that is currently under development
Decibel Audio Player, an open source audio player
Deluge, a BitTorrent client for GNOME
emesene, a MSN/WLM substitute
Exaile, an open source audio player
Gajim, an instant messaging client for the XMPP protocol
GRAMPS, an open source genealogy software
Gwibber, a microblogging client
Impressive (ex. KeyJnote), a presentation software
Juice, a popular podcast downloader
Mercurial a cross-platform, distributed source management tool
Miro, a cross-platform internet television application
Morpheus, file-sharing client/server software operated by the company StreamCast
MusicBrainz Picard, a cross-platform MusicBrainz tag editor
Nicotine, a PyGTK Soulseek client
OpenLP, lyrics projection software
OpenShot Video Editor
PiTiVi, a non-linear video editor
Portage, the heart of Gentoo Linux, an advanced package management system based on the BSD-style ports system
Quake Army Knife, an environment for developing 3D maps for games based on the Quake engine
Resolver One, a spreadsheet
Sage (sagemath) combines more than 20 main opensource math packages and provides easy to use web interface with the help of Python
SCons, a tool for building software
Ubuntu Software Center, a graphical package manager, installed by default in Ubuntu 9.10 and higher
Wammu, a mobile phone management utility
Wicd, a network manager for Linux
YUM, a package management utility for RPM-compatible Linux operating systems
 Web Applications
ERP5, a powerful open source ERP / CRM used in Aerospace, Apparel, Banking and for e-government
GNU Mailman, one of the more popular packages for running email mailing lists
MoinMoin, a popular wiki engine
Planet, a feed aggregator
Plone, a user-friendly and powerful open source content management system
Projectplace, Europe’s Leading Online Service for Project Collaboration
Roundup, a bug tracking system
ViewVC, a web-based interface for browsing CVS and SVN repositories
Trac, web-based bug/issue tracking database, wiki, and version control front-end
MediaCore Video CMS is an open source media focused content management system.
 Video games
Civilization IV uses Python for most of its tasks
Battlefield 2 uses Python for all of its addons and a lot of its functionality
Eve Online uses Stackless Python
Frets on Fire uses Python and Pygame
The Temple of Elemental Evil, a computer role-playing game based on the classic Greyhawk Dungeons & Dragons campaign setting
Vampire: The Masquerade – Bloodlines, a computer role-playing game based on the World of Darkness campaign setting
Vega Strike, an open source space simulator
 Web frameworks
CherryPy, an object-oriented web application server and framework
Django, an MVC (model, view, controller) web framework
Pylons, a lightweight web framework emphasizing flexibility and rapid development
Quixote, a framework for developing Web applications in Python
Topsite Templating System, another Python-powered web framework
TurboGears, a web framework combining CherryPy, SQLObject, and Kid
web2py, a full-stack enterprise web application framework, following the MVC design
Zope, an application server, commonly used to build content management systems
 Graphics frameworks
Pygame, Python bindings for SDL
Pyglet, a cross-platform windowing and multimedia library for Python
Python Imaging Library, a module for working with images
Python-Ogre, a Python Language binding for the OGRE 3D engine
Soya3D, a high-level 3D game engine for Python
 GUI frameworks
PyGTK, a popular cross-platform GUI library based on GTK+; furthermore, other GNOME libraries also have bindings for Python
PyQt, another cross-platform GUI library based on Qt; as above, KDE libraries have bindings too
wxPython, a port of wxWidgets and a cross-platform GUI library for Python
 Scientific packages
Biopython, a Python molecular biology suite
SciPy, a library of scientific and numerical routines
SimPy, a discrete-event simulation package
stsci python, a library library of Python routines and C extensions that has been developed to provide a general astronomical data analysis infrastructure, developed by STScI
 Mathematical libraries
matplotlib, an extension providing MATLAB-like plotting and mathematical functions
NumPy, a language extension that adds support for large and fast, multi-dimensional arrays and matrices
PyIMSL Studio is a Python distribution which includes the IMSL math and statistics Libraries from Visual Numerics (a Rogue Wave Software company)
Sage Math is a large mathematical software application which integrates the work of nearly 100 free software projects and supports linear algebra, combinatorics, numerical mathematics, calculus, and more.
SymPy, a computer algebra system
 Additional development packages
Cheetah, a Python-powered template engine and code-generation tool
IPython, a powerful development shell both written in and designed for Python
Jinja, a Python-powered template engine, inspired by Django's template engine
mod python, an Apache module allowing direct integration of Python scripts with the Apache web server
PYthon Remote Objects, a Distributed Object Technology
PyObjC, a Python-Objective C bridge that allows one to write Mac OS X software in Python
Twisted, a networking framework for Python
 Embedded as a scripting language
Python is, or can be used as the scripting language in these software products.
ArcGIS, a prominent GIS platform, allows extensive modelling using Python
Autodesk Softimage (formerly Softimage|XSI)
Boxee, a cross-platform home theater PC software
Corel Paint Shop Pro
EventScripts, plugin for Valve's Source engine
GNAT The GNAT programming chain tool (Ada language implementation in GNU gcc), as a GNATcoll reusable components for the applications (with or without PyGTK) and as a scripting language for the commands in the GPS programming environment
Autodesk Maya (version 8.5 and newer only)
Nuke (compositing for visual effects)
Poser, a 3D rendering and animation software program, that uses for scripting a special dialect of Python, called PoserPython
PyMOL, a popular molecular viewer that embeds Python for scripting and integration
QGIS uses Python for scripting and plugin-development
SPSS statistical software SPSS Programmability Extension allows users to extend the SPSS command syntax language with Python
Totem, a media player for the GNOME desktop environment
WeeChat, a console IRC client
 Commercial uses
CCP hf uses Stackless Python in both its server and client side applications for its MMO Eve Online
Google uses Python for many tasks including the backends of web apps such as Google Groups, Gmail, and Google Maps, as well as for some of its search-engine internals
Autodesk Maya, professional 3D modeler allows Python scripting as an alternative to MEL as of version 8.5
NASA is using Python to implement a CAD/CAE/PDM repository and model management, integration, and transformation system which will be the core infrastructure for its next-generation collaborative engineering environment
reddit was originally written in Common Lisp, but was rewritten in Python in 2005
Yahoo! Groups uses Python "to maintain its discussion groups"
YouTube uses Python "to produce maintainable features in record times, with a minimum of developers"
 Python implementations
CPython - the reference implementation
IronPython - Python for .NET and Mono platforms
Jython - Python coded in Java
Parrot - virtual machine being developed mainly as the runtime for Perl 6, but with the intent to also support dynamic languages like Python, Ruby, Tcl, etc.
Psyco - not an implementation, but JIT compiler for CPython
PyPy - Python coded in Python
Stackless Python - Python with coroutines
Unladen Swallow - the Python implementation from the Google team