1. Python for Animation
Python is one of the two programming languages that can be used in the Autodesk Maya toolkit. Maya is a 3D animation, modelling, simulation and rendering software systems used by games, film and TV companies. Within Maya, Python can be used for anything from creating scripts handling common tasks, through to developing complete plug-ins providing extensions to the core functionality of the tool. Maya currently supports Python 2 but will be moving towards Python 3 in the near future.
2. Python for Film Making
Industrial Light and Magic was formed in 1975 by George Lucas to help create special effects for the original Star Wars film. Since then it has gone on to provide special effects for a huge range of films and film makers. Back in 1996 it used Unix shell scripts to help it automate and control is production pipeline. However, they needed to develop their increasingly complex and computationally expensive production process and felt that their existing approach was not flexible enough. Although they looked at several alternatives (including TCL and Perl) they decided to adopt Python. This allowed for faster development times and greater flexibility. Over the years they have re-evaluated their decision and considered different alternatives, but Python remains key to their development processes.
3. Cross Platform UIs
Python is particularly well served in terms of Graphical User Interface frameworks (or GUI frameworks). Most of these are cross platform, although a few allow developers to exploit particular features of an underlying windowing system and are thus tied to a specific platform. Widely used GUI libraries include the cross platform TKinter, wxPython and pyQT and the platform specific PythonWin (for Windows) and PyObjc ( for MacOS). As an example, the following ‘Hello World’ GUI application uses wxPython and is shown running on a Mac OS and Windows system.
4. Games Programming
Python has also been used for games development with several well-known games titles depending on it in one way or another. For example, Battlefield 2 by Digital Illusions CE is a military simulator first-person shooter game. Within this game, Python is used to handle portions of the game logic for Battlefield Heroes involving game modes and scoring. Other games that use Python include Civilisation IV, Pirates of the Caribbean Online and Overwatch. The pygame library is probably the most widely used library for creating games within the Python world. There are also many extensions available for pygame that help to create a wide range of different types of games. pygame is built on top of the SDL library (or Simple Directmedia Layer). SDL is a cross platform development library designed to provide access to audio, keyboards, mouse, joystick and graphics hardware via OpenGL and Direct3D. To promote portability, pygame also supports a variety of additional backends including WinDIB, X11, Linux Frame Buffer etc.
5. Integration Testing Framework
Morgan Stanley have developed a Python integration testing framework called TestPlan which they have open sourced and made available through GitHub. Testplan is designed to simplify the process of configuring and driving integration tests for a range of programming languages and technologies. It supports driving integration tests that require messaging services, RESTful services, databases, files for code written in Python, C / C++, Java etc.
6. Academic Research
Python is widely used within the Academic community to support research work, not only within Computer Science departments but also across a range of different disciplines including Mechanical Engineering, Aerospace Engineering, Architecture, Pharmacology and Medicine etc. In these settings it has been used to help develop distributed analysis systems, identify patterns in experiments of laboratory data, evolve designs towards optimal solutions, provide Natural Language front ends to research applications (for example using the Python NLTK library) etc.
7. Web Services
Python is also widely used as a server-side language for the creation of web services; whether these are RESTful services or the newer GraphQL based services. There are a range of frameworks available to help develop such services including Flask, Django and CherryPy. Flask and CherryPy are lightweight frameworks that can be used to create RESTful services whereas Django is a full-stack web framework; aimed at developing not just web services but full blown web sites. A wide range of organisations used Python in this way for example Reddit, Spotify and Instagram.
DevOps is another hot trend at the moment; it represents the combination of Software Developers and operations working together usually to automate operations processes that were previously either handled manually or were executed as individual steps. Python is one of the key programming languages used within the DevOps world. It can be used as a scripting language to help automate operations activities as well as a tool to analyse production data and for data visualizations.
https://www.autodesk.co.uk/pro... for information on Autodesks Maya computer animation software.
https://www.wxpython.org wxPython home page.
https://www.tcl.tk for Information on Tcl/Tk.
https://www.qt.io For information on the Qt cross-platform software and UI development library.
https://wiki.python.org/moin/P... For information about PyQt.
https://pythonhosted.org/pyobj... for information on the Python to Objective-C bridge.
https://www.cgl.ucsf.edu/Outre... for information on PythonWin.
https://www.pygame.org for information on pygame.
https://www.python.org/about/s... ILM and their use of Python
https://github.com/Morgan-Stan... Testplan Python integration testing framework
https://testplan.readthedocs.i... Testplan Documentation
https://www.nltk.org/ Python Natural Language Toolkit
https://cherrypy.org/ For documentation on the CherryPy web framework.
http://flask.pocoo.org/ For information and examples on the Flask web development framework.
https://www.djangoproject.com/ for information on Django.
https://devops.com/how-python-... Article on DevOps and Python