What's this all about?

What is Python?

Python is a programming language that can be used for all sorts of tasks that include making web apps, mobile apps, video games, data analysis, and much, much more. Python was built with developer productivity in mind, so that it's easy to learn for beginners while remaining powerful and robust enough for advanced users. This has helped Python become a popular choice for hobbyists and startups alike, because it's easy to build things quickly.

Python is a language that is easy for beginners, has a vast ecosystem of third-party tools, is supported by one of the most friendly and welcoming communities in technology, and has a bright future in the software world.

What is Python useful for?

Web Programming

Whether you're building a simple blog or a full-blown web application, Python is a great choice for your back-end. There are a number of frameworks available that will help make building your app easy a fast.

  • Django is the most popular Python web framework. Django makes it easy to build better web apps, more quickly, with less code. There's also a thriving ecosystem of third-party Open Source Django apps. We recommend the DjangoGirls tutorial for learning Django.
  • Flask is a microframework that doesn't require lots of tools or libraries, and tries to get out of your way.
  • Pyramid fits somewhere between Django and Flask. It allows you to start small and finish big, growing with you to fit your applications needs.

See also: The Hitchhiker's Guide to Python: Web Applications & Frameworks

Video Games

  • Arcade is an easy-to-learn Python library for creating 2D video games. It is ideal for beginning programmers, or programmers who want to create 2D games without learning a complex framework.
  • PyGame is a highly-portable library for making multimedia applications, like games, on top of the excellent SDL2 library.
  • Panda3D is a fully-featured framework for 3D rendering and game development. Originally built by Walt Disney Interactive and Carnegie Mellon University.

Mobile (Android/iOS) Apps

  • Kivy is a framework for rapidly developing multi-touch applications, like you would see on a mobile device or tablet.
  • BeeWare is a project that aims to allow developers to build apps for iOS, Android, Windows, MacOS, Linux, Web, and tvOS using rich, native user interfaces.

Data Analysis and Scientific Programming

Python is a language heavily used in academia, data analysis, and scientific computing. Python's simple syntax makes it a great choice for academics who might not be primarily software developers, and the plethora of tools means you can do just about anything. Some packages you may want to check out include:

  • SciPy is an ecosystem of open-source software for mathematics, science, and engineering.
  • NumPy provides support for large multi-dimensional arrays and matrices, and the higher level mathematical functions to operate on them.
  • Pandas provides high-performance, easy-to-use data structures and data analysis tools.
  • AstroPy is a community effort to provide a core package for astronomy work.
  • BioPython is a set of freely available tools for biological computation.

See also: The Hitchhiker's Guide to Python: Scientific Applications

Machine Learning and Artificial Intelligence

  • TensorFlow - An open source machine learning framework developed by the Google Brain Team.
  • PyTorch - A deep learning platform developed by engineers in Facebook's AI Research Group.
  • scikit-learn - A machine learning framework built on NumPy, SciPy, and matplotlib.
  • Keras - A high-level neural network and deep learning API that can run on top of TensorFlow, CNTK, or Theano.

Microcontrollers

  • RaspberryPi is a very small single-board computer. The RaspberryPi runs Linux, and works very well with Python.
  • BBC micro:bit is a microcontroller made for education that is loaded with features and runs a version of Python called MicroPython. The micro:bit Python editor makes it easy to flash code onto the board.
  • MicroPython is a lean, efficient version of Python that is made to run on microcontrollers.
  • CircuitPython is Adafruit's own version of MicroPython. They've added new features and ship CircuitPython on several of their own boards.

Who uses Python?

Local companies/organizations

BIG companies using Python

  • Industrial Light and Magic uses Python in their CGI pipeline. That's right -- Python has helped create many of their blockbuster movies!
  • Google has always been a big supporter of Python, even making it one of their official languages -- the others being Java, C++, and Go -- that engineers are allowed to use for production apps and services.
  • Instagram is built in Python, and is probably the largest Django deployment in the world.
  • Facebook uses Python to manage their ever-growing infrastructure.
  • Netflix mainly uses Python for data analysis, but some of their infrastructure and services are Python-powered.
  • Pinterest was originally built with Django, and more recently moved to a custom framework built on top of Flask.
  • Spotify uses Python for back-end services and data analysis.
  • Reddit served 542 million requests across every month in 2017, making it the 4th most-visited website in the United States. Reddit is powered entirely by Python.