Revision 39 as of 2004-03-27 14:57:27

Clear message

Applications can and are written in Python, but people are slow to change, so the vast majority are still done using C/C++ on Linux and Windows and a combination of C++ and Objective-C on Mac OS X. I've noticed a growing trend of using Python to provide user automation or scripting, sometimes called macros, for C/C++ applications. This makes a lot of sense:

For many of the same reasons, Python is often used as the "glue" language for a project. In the Java world, people are using ["Jython"] as the glue and scripting language.

TableOfContents

(!) This page is not for listing those applications primarily built with Python. Try PythonSoftware for those types of apps, tools, and frameworks.

(!) Please keep wiki links as wiki links, use external links only if there is no existing page for the program.

Applications

Name

Platform

Notes

[http://www.blender.org/ Blender]

multi-platform

OpenSource software for 3D modeling, animation, rendering, post-production, interactive creation and playback. [http://www.blender.org/modules/documentation/228PythonDoc/ Blender Python API reference]

ClearSilver

multi-platform

Web application framework

[http://www.fontlab.com/ FontLab]

Windows, Mac OS

Commercial font editing software, uses Python as a macro language.

[http://www.gimp.org/ GIMP]

multi-platform, GTK

GNU Image Manipulation Program. [http://www.daa.com.au/~james/software/pygimp/ Gimp-Python] is a package that allows people to write plug-ins for The Gimp in the Python programming language rather than Script-Fu (Scheme), Perl, Tcl or C.

[http://gxsm.sourceforge.net/ GXSM]

Linux, Mac OS X

Gnome X Scanning Microscopy. multi-channel 2D/3D data acquisition and visualization

[http://kahakai.sourceforge.net/ Kahakai Window Manager]

POSIX, KDE and GNOME

Python is used for event and key binding configuration.

[http://www.kaydara.com/products/motionbuilder/ Kaydara Motionbuilder]

Mac OS X, Windows

Helpful for integrating into production pipelines and allows users to automate repetitive processes.

[http://mahogany.sourceforge.net/ Mahogany]

Linux, Mac OS X, Windows

OpenSource cross-platform mail and news client.

[http://www.ogre3d.org/ OGRE]

multi-platform

Object-Oriented Rendering Engine

[http://oss.sgi.com/projects/inventor/ Open Inventor]

multi-platform

Object-oriented 3D toolkit. [http://pivy.tammura.at/ Pivy] is the Python binding for Open Inventor. Check out the [http://www.python.org/pycon/dc2004/papers/47/pycon-pivy-paper.html Pycon paper on Pivy].

[http://www.openoffice.org/ OpenOffice]

multi-platform

[http://udk.openoffice.org/python/python-bridge.html Python-UNO bridge] for scripting OpenOffice with Python

Office and Outlook

Windows

While Microsoft Office apps including Microsoft Outlook were not originally designed to be scripted with Python, [http://starship.python.net/crew/mhammond/win32/Downloads.html pywin32] (formerly Win32All) makes it possible to script Microsoft Office apps and build plug-ins. Of special note is the [http://spambayes.sourceforge.net/windows.html SpamBayes] plug-in for Outlook which enables any Outlook user to use [http://spambayes.sourceforge.net/windows.html SpamBayes] without even knowing anything about Python.

[http://magix.fri.uni-lj.si/orange/ Orange]

multi-platform

Orange is a component-based data mining software. It includes a range of preprocessing, modelling and data exploration techniques. It is based on C++ components, that are accessed either directly (not very common), through Python scripts (easier and better), or through GUI objects called Orange Widgets.

[http://www.jasc.com/products/paintshoppro/ Paint Shop Pro 8]

Windows

Photo and graphics editor. [http://www.jasc.com/support/customercare/articles/psp8components.asp PSP scripting resources]

[http://www.etc.cmu.edu/panda3d/ Panda3D]

multi-platform

Open Source game and simulation engine. Disney is one of the notable users. Check out the [http://www.python.org/pycon/dc2004/papers/29/Panda3D.htm PyCon paper on Panda3d].

[http://subversion.tigris.org/ Subversion]

multi-platform

A compelling replacement for CVS. See the [http://subversion.tigris.org/project_links.html Project Links], [http://subversion.tigris.org/bindings.html Bindings] or do a [http://www.google.com/search?&q=site:subversion%2Etigris%2Eorg+python Google site search].

[http://netdragon.sourceforge.net SuperKaramba]

Linux, KDE

SuperKaramba allows you to create cool dekstop widgets with little to no programming experience. It's similar to "Konfabulator" for the Mac.

[http://www.vim.org/ Vim]

multi-platform

editor

[http://www.wincvs.org/ WinCvs]

Windows

GUI front-end for CVS

[http://www.xchat.org/ XChat]

multi-platform

IRC Client

Games

Name

Platform

Notes

[http://crystal.sourceforge.net/ Crystal Space]

multi-platform

OpenSource 3D SDK

[http://www.myfreedomforce.com/ Freedom Force]

Windows

[http://www.google.com/search?q=freedom+force+python Google link]

[http://www.bridgecommander.com/ Star Trek Bridge Commander]

Windows

[http://vegastrike.sourceforge.net/ Vega Strike]

Linux, Mac, Windows

3D OpenGL Action Space Sim

Tools

Articles

Other Resources (many apps from pages below need to be copied to this page)

Additional Notes

After adding Panda3D and Open Inventor I've started to wonder whether those really qualify as apps the way I originally envisioned this list? Perhaps we should have a separate page for C/C++ libraries, frameworks, etc. that have Python bindings? That would include frameworks like GTK, QT, and WxWidgets which have popular Python bindings. Regardless, all the Python bindings available for popular C/C++ tools and frameworks shows the agility of Python. There are great benefits to adding Python bindings to existing C/C++ (and Java) code bases so that you can leverage the power and flexibility of Python without abandoning an existing code base or giving up the speed of C/C++ code. In these cases, Python is a complement rather than a complete replacement for another programming language. -- KevinAltis

Unable to edit the page? See the FrontPage for instructions.