How To:


Why Python?

Python is rising in popularity and may well become the most popular and used language in the world! It is not only used by small start ups but also by big corporations like google, dropbox and instagram to build their sites. One reason for its popularity lies in the simplcity of its code but it is still a very powerful language indeed. From everything from game design to high end application development, Python will do the job!

Further uses of Python in the real world

Integrated development environments for Python

Python package managers and Python distributions

  • Anaconda, Python distribution with conda package manager
  • Enthought, Enthought Canopy Python with Python package manager
  • pip, package management system used to install and manage software packages written in Python

Applications

Web applications

  • Allura, an ASF software forge for managing source code repositories, bug reports, discussions, wiki pages, blogs and more for multiple projects
  • Bloodhound, an ASF project management and bug tracking system
  • ERP5, a powerful open source ERP / CRM used in Aerospace, Apparel, Banking and for e-government
  • Kallithea, a source code management system
  • Mailman, one of the more popular packages for running email mailing lists
  • MoinMoin, a wiki engine
  • OpenERP, new name Odoo, an open source comprehensive suite of business applications
  • Planet, a feed aggregator
  • Plone, an open source content management system
  • Roundup, a bug tracking system
  • Tor2web, an HTTP proxy for Tor Hidden Services (HS)
  • Trac, web-based bug/issue tracking database, wiki, and version control front-end
  • Turntable.fm, a discontinued social media site for interactively sharing music[citation needed]
  • ViewVC, a web-based interface for browsing CVS and SVN repositories

Video games

Web frameworks

  • BlueBream, a rewrite by the Zope developers of the Zope 2 web application server
  • Bottle, A fast, simple and lightweight WSGI micro web framework
  • CherryPy, an object-oriented web application server and framework
  • Django, an MVC (model, view, controller) web framework
  • Flask, a modern, lightweight, well-documented microframework based on Werkzeug and Jinja 2
  • Google App Engine, a platform for developing and hosting web applications in Google-managed data centers, including Python.
  • Grok, an web framework based on Zope Toolkit technology
  • Nagare, a web framework for developing web applications in Stackless Python
  • Nevow, a web application framework originally developed by the company Divmod
  • Pylons, a lightweight web framework emphasizing flexibility and rapid development
  • Pyramid, is a minimalistic web framework inspired by Zope, Pylons and Django
  • Python Paste, set of utilities for web development that has been described as "a framework for web frameworks"
  • Quixote, a framework for developing Web applications in Python
  • RapidSMS, a web framework which extends the logic and capabilities of Django to communicate with SMS messages
  • Spyce, a technology to embed Python code into webpages
  • TACTIC, a web-based smart process application and digital asset management system
  • Tornado, a lightweight non-blocking server and framework
  • TurboGears, a web framework combining SQLObject/SQLAlchemy, Kid/Genshi, and CherryPy/Pylons
  • web2py, a full-stack enterprise web application framework, following the MVC design
  • Webware for Python, an object-oriented web application framework
  • Zope 2, an application server, commonly used to build content management systems

Graphics frameworks

UI frameworks

  • Kivy, open source Python library for developing multitouch application software with a natural user interface (NUI).
  • 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 also have bindings
  • PySide, an alternative to the PyQt library, released under the BSD-style licence
  • Tkinter is Python's de facto GUI it is shipped in most versions of Python and is integrated in the IDLE. It is based Tcl command tool.
  • wxPython, a port of wxWidgets and a cross-platform GUI library for Python

Scientific packages

Mathematical libraries

  • Mathics, an open-source implementation of the Mathematica programming language
  • 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
  • Plotly is a scientific plotting library for creating browser-based graphs.
  • SageMath is a large mathematical software application which integrates the work of nearly 100 free software projects.
  • SymPy, a symbolic mathematical calculations package

Additional development packages

  • Cheetah, a Python-powered template engine and code-generation tool
  • Cherry, a non-WYSIWYG templating language developed for CherryPy framework
  • Construct, a python library for the declarative construction and deconstruction of data structures
  • Genshi, a template engine for XML-based vocabularies
  • IPython, a development shell both written in and designed for Python
  • Jinja, a Python-powered template engine, inspired by Django's template engine
  • Kid, simple template engine for XML-based vocabularies
  • Mako, a non-XML template library which compiles into Python modules for maximum performance
  • mod_python, an Apache module allowing direct integration of Python scripts with the Apache web server
  • PyObjC, a Python to Objective-C bridge that allows writing OS X software in Python
  • Robot Framework, a generic test automation framework for acceptance testing and acceptance test-driven development (ATDD)
  • Setuptools, a package development process library designed to facilitate packaging Python projects by enhancing the Python distutils (distribution utilities) standard library.
  • Sphinx, which converts reStructuredText files into HTML websites and other formats including PDF, EPub and Man pages
  • SQLAlchemy, database backend and ORM
  • SQLObject, an ORM for providing an object interface to a database
  • Storm, an ORM from Canonical
  • Topsite Templating System, another Python-powered template engine
  • Twisted, a networking framework for Python
  • VPython, the Python programming language plus a 3D graphics module called Visual

Embedded as a scripting language

Python is, or can be used as the scripting language in these software products:

Commercial uses

  • CCP hf uses Stackless Python in both its server and client side applications for its MMO Eve Online[2]
  • 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[citation needed]. It is also the development language for OpenMDAO, a framework developed by NASA for solving multidisciplinary design optimization problems.
  • "Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python."[3]
  • reddit was originally written in Common Lisp, but was rewritten in Python in 2005[4]
  • Yahoo! Groups uses Python "to maintain its discussion groups"[citation needed]
  • YouTube uses Python "to produce maintainable features in record times, with a minimum of developers"[5]
  • Enthought uses python as the main language for countless custom applications in Geophysics, Financial applications, Astrophysics, simulations for consumer product companies, ...
  • EDF uses Python for their finite element solver Code Aster in combination with Fortran

Python implementations

  • CPython – The reference implementation, written in C89
  • Cython is a programming language to simplify writing C and C++ extension modules for the CPython Python runtime.
  • IronPython – Python for .NET and Mono platforms
  • Jython – Python coded in Java
  • PyPy – Python (originally) coded in Python, used in conjunction RPython, a restricted subset of Python that is amenable to static analysis and therefore a JIT.
  • Stackless Python – Python with coroutines
  • CLPython – Implementation, written in Common Lisp
  • Pyston - an open source Python implementation using JIT techniques. Currently targeting Python 2 support.
  • 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.
  • Pyjs – a framework (based on GWT concept) for developing client-side Python-based web applications, including a stand-alone Python-to-JavaScript compiler, an Ajax framework and widget toolkit
(Source: Wikipedia)