title: Why Use Python?
category: page
slug: why-use-python
sort-order: 1107
choice1url: /introduction.html
choice1icon: fa-fast-backward fa-inverse
choice1text: Let me start over from the Full Stack Python introduction.
choice2url: /future-directions.html
choice2icon: fa-magic fa-inverse
choice2text: Show me what's coming on Full Stack Python in the future.
choice3url: /table-of-contents.html
choice3icon: fa-list-alt
choice3text: Let me see the list of all Full Stack Python topics.
choice4url:
choice4icon:
choice4text:


# Why Use Python?
Python's expansive library of open source data analysis tools, 
[web frameworks](/web-frameworks.html), 
and testing instruments make its ecosystem one of the largest out of any 
programming community. 

Python is an accessible language for new programmers because of the extensive 
availability of 
[free and low cost introductory resources](/best-python-resources.html). The
language is also widely taught in universities and used for working with 
beginner-friendly devices such as the 
[Raspberry Pi](http://www.raspberrypi.org/).


## Python's programming language popularity
Several programming language popularity rankings exist. While it's
possible to criticize that these guides are not exact, every ranking shows 
Python as a top programming language within the top ten, if not the top five
of all languages.  

Most recently, the 
[RedMonk January 2015 ranking](http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/) had Python at #4.

The 
[TIOBE Index](http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html),
a long-running language ranking, has Python steady at #8. 

The [PopularitY of Programming Language](http://pypl.github.io/PYPL.html) 
(PYPL), based on leading indicators from Google Trends search keyword 
analysis, shows Python at #3.

[GitHut](http://githut.info/), a visualization of GitHub language popularity, 
pegs Python at #3 overall as well.

These rankings provide a rough measure for language popularity. They are not 
intended as a precise measurement tool to determine exactly how many 
developers are using a language. However, the aggregate view shows that Python 
remains a stable programming language with a growing ecosystem.


## Why does the choice of programming language matter?
Programming languages have unique ecosystems, cultures and philosophies
built around them. You will find friction with a community and difficulty 
in learning if your approach to programming varies from the philosophy of 
the programming language you've selected.

Python's culture values 
[open source software](https://github.com/trending?l=python&since=monthly), 
community involvement with 
[local, national and international events](http://www.pycon.org/) and
teaching to new programmers. If those values are also important to you and/or
your organization then Python may be a good fit. 

The philosophy for Python is so strongly held that it's even embedded in
the language as shown when the interpreter executes "import this" and
displays [The Zen of Python](https://www.python.org/dev/peps/pep-0020/).

    >>> import this
    The Zen of Python, by Tim Peters

    Beautiful is better than ugly.
    Explicit is better than implicit.
    Simple is better than complex.
    Complex is better than complicated.
    Flat is better than nested.
    Sparse is better than dense.
    Readability counts.
    Special cases aren't special enough to break the rules.
    Although practicality beats purity.
    Errors should never pass silently.
    Unless explicitly silenced.
    In the face of ambiguity, refuse the temptation to guess.
    There should be one-- and preferably only one --obvious way to do it.
    Although that way may not be obvious at first unless you're Dutch.
    Now is better than never.
    Although never is often better than *right* now.
    If the implementation is hard to explain, it's a bad idea.
    If the implementation is easy to explain, it may be a good idea.
    Namespaces are one honking great idea -- let's do more of those!


### More perspectives on why to use Python
* The Python documentation has a HOWTO section specifically for 
  [Python advocacy](https://docs.python.org/2/howto/advocacy.html).

* [How to argue for Python’s use](http://nothingbutsnark.svbtle.com/how-to-argue-for-pythons-use)
  explains that choosing a programming language can be complicated but that
  Python is a very good option for many use cases.

* [Why I Push for Python](http://lorenabarba.com/blog/why-i-push-for-python/)
  explains one professor's rationale for promoting Python to teach programming
  to undergraduates.


### Resources for Python enterprise advocacy
* CIO Magazine discusses why 
  [dynamic languages are increasingly being adopted in enterprise environments](http://www.cio.com/article/2431212/developer/dynamic-languages--not-just-for-scripting-any-more.html).

* PayPal covers 
  [10 myths about enterprise Python](https://www.paypal-engineering.com/2014/12/10/10-myths-of-enterprise-python/)
  via their engineering blog.

* My DjangoCon 2014 talk focused on overcoming false biases against 
  [Python and Django in enterprise environments](https://www.youtube.com/watch?v=aMtiCX38w20).


## What else would you like to know about Python?
