|
Size: 12333
Comment: modified tools section
|
Size: 12284
Comment: WikiName-ized names
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 29: | Line 29: |
| || [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 || || [https://helixcommunity.org/ Helix DNA] || multi-platform || The Helix community is a collaborative effort among Real, independent developers, and leading companies to extend the Helix DNA platform, the first open multi-format platform for digital media creation, delivery and playback. || |
|| [http://www.gimp.org/ GIMP] || multi-platform, GTK || GNU Image Manipulation Program. [http://www.daa.com.au/~james/software/pygimp/ PyGimp] is a package that allows people to write plug-ins for Gimp on Python 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 || || [https://helixcommunity.org/ Helix DNA] || multi-platform || The Helix community is a collaborative effort among real, independent developers, and leading companies to extend the Helix DNA platform, the first open multi-format platform for digital media creation, delivery and playback. || |
| Line 62: | Line 62: |
| || [http://www.eve-online.com/ Eve-Online] || Windows || Uses Stackless Python for client and server. Description from the web site - EVE: The Second Genesis, is a massively multiplayer, online, persistent world game. perhaps even too real to be called a game, but definitely more fun than reality. Played on the Net, it takes place in a world that is alive and kicking every day, every hour. Players are spaceship captains cruising around the universe, trading, fighting and communicating with other players. || || [http://www.irrationalgames.com/ff/ Freedom Force] || Windows || [http://www.google.com/search?q=freedom+force+python Google link] || |
|| [http://www.eve-online.com/ Eve-Online] || Windows || Uses StacklessPython for client and server. Description from the web site - EVE: The Second Genesis, is a massively multiplayer, online, persistent world game. perhaps even too real to be called a game, but definitely more fun than reality. Played on the Net, it takes place in a world that is alive and kicking every day, every hour. Players are spaceship captains cruising around the universe, trading, fighting and communicating with other players. || || [http://www.irrationalgames.com/ff/ Freedom Force] || Windows || http://www.google.com/search?q=Freedom+Force+Python || |
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:
- developers don't have to waste time and money inventing their own scripting language and users don't have to learn a new automation language for every application they use
Python is an OpenSource solution and can be embedded and distributed for free so there are no royalty payments or licensing hassles
- Python is simple to learn, yet Python and its standard libraries are much more powerful than a proprietary language like VBScript
- Python is cross-platform
[#head-3 tools] like ["Pyrex"] and BoostPython make it easy to expose part or all of the application programming interface (API)
- Python scripting can be added to legacy projects just as well as new ones so developers don't have to abandon their old C/C++ code libraries
On the Windows platform, Python has an excellent interface to COM (also known as ActiveX) and can be used to interface to almost any COM program (such as the MS-Office suite). Again, Python scripting can be added to enhance a project without change to the existing COM components. (See Win32All)
[http://pyobjc.sourceforge.net PyObjC] can be used to add scripting to any Cocoa app on Mac OS X
Many Mac OS applications provide Apple event-based scripting interfaces, allowing them to be controlled from languages such as [http://www.apple.com/applescript/ AppleScript], [http://www.latenightsw.com/freeware/JavaScriptOSA/ JavaScript OSA], Perl (via [http://search.cpan.org/~cnandor/Mac-Glue/ Mac::Glue]), Python (via [http://freespace.virgin.net/hamish.sanderson/appscript.html appscript]), Tcl and UserTalk. (See MacPython)
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.
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 and Toolkits
Games
Tools For Integrating Python
- ["Pyrex"]
[http://www.swig.org/ SWIG] (SimplifiedWrapperAndInterfaceGenerator)
BoostPython and [http://www.boost.org/libs/python/doc/index.html Boost.Python] (official page)
[http://pyobjc.sourceforge.net PyObjC] (Mac OS X)
[http://www.riverbankcomputing.co.uk/sip/index.php SIP]
Articles
[http://www.idevnews.com/TipsTricks.asp?ID=107 Devs Using Python to Boost Integration] - In this two-part interview, Martelli offers Win32, Java and .NET devs some useful perspectives on Python, and how Python scripting can extend the integration capabilities of their Win32, ASP.Net, Java and C/C++ applications.
Embedding Python in Multi-Threaded C/C++ Applications in [http://www.linuxjournal.com/article.php?sid=3641 LinuxJournal]
Building Hybrid Systems with Boost.Python in [http://www.cuj.com/documents/s=8188/cuj0307abrahams/ C/C++ User Journal]
[http://dales.rmplc.co.uk/Duncan/accu/integratingpython.html Integrating Python, C and C++], presented at the ACCU conference by Duncan Booth, and his [http://dales.rmplc.co.uk/Duncan/accu conference slides]
Other Resources (many apps from pages below need to be copied to this page)
[http://www.python.org/community/users.html Organizations and Apps using Python]
http://www.thinkware.se/cgi-bin/thinki.cgi/PythonUsers
[http://www.cygnus-software.com/papers/gamescriptinginpython.html Game Scripting in Python]
[http://www.onlamp.com/pub/a/python/2002/07/11/pythonnews.html Humongous Games]
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
