title: Why Use Python?
category: page
slug: why-use-python
sortorder: 0103
toc: False
sidebartitle: Why Use Python?
meta: Learn why you should use Python, the powerful and accessible programming language, on Full Stack 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 the community
provides many [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/).

<img src="/img/logos/py.png" width="100%" alt="Python logo.">

<div class="well see-also">If you're learning about why to use Python you should also take a look at <a href="/best-python-resources.html">the best Python resources</a> and read <a href="/web-development.html">more about web development</a>.</div>


## 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.  

The IEEE ranked Python as the
[#1 programming language in 2019](https://spectrum.ieee.org/computing/software/the-top-programming-languages-2019),
which continued its hot streak
after ranking it 
[#1 in 2018](https://spectrum.ieee.org/at-work/innovation/the-2018-top-programming-languages) and 2017.
[RedMonk's June 2019 ranking](https://redmonk.com/sogrady/2019/07/18/language-rankings-6-19/)
had Python at #3, which held consistent from previous years' rankings in 
[2018](https://redmonk.com/sogrady/2018/08/10/language-rankings-6-18/) 
and 
[2017](https://redmonk.com/sogrady/2017/06/08/language-rankings-6-17/).

Stack Overflow's community-created question and answer data confirms the
[incredible growth of the Python ecosystem](https://stackoverflow.blog/2017/09/06/incredible-growth-python/)
and tries to determine
[why it growing so quickly](https://stackoverflow.blog/2017/09/14/python-growing-quickly/)
with their own analysis. In the 2020 Stack Overflow developer survey the
data indicated that 
[Python was the fastest growing major programming language](https://insights.stackoverflow.com/survey/2020/#technology-programming-scripting-and-markup-languages)
and that there is a close alignment between the languages and tools that 
developers choose to learn and the usage in developers' professional work.

The 
[TIOBE Index](https://www.tiobe.com/tiobe-index//)
a long-running language ranking, has Python moving up the charts to #3,
climbing from #8 just a few years ago.

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 #1.

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

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 using Python
Programming language rankings and the philosophy behind a language 
provide solid initial data points for why you should learn Python.
These resources also give perspectives on why people switched from other
programming communities and why they advocate for Python as a primary
language.

* [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/)
  gives one professor's rationale for promoting Python to teach programming
  to undergraduates.

* If you're wondering about the differences in Python's dynamically typed
  system versus statically typed languages, be sure to 
  [read this thorough explanation of the topic](http://blogs.perl.org/users/ovid/2010/08/what-to-know-before-debating-type-systems.html).

* [Python, Machine Learning, and Language Wars](http://sebastianraschka.com/blog/2015/why-python.html)
  compares Python with R, MATLAB and Julia for data science work. While 
  Python is great for [deployment automation](/deployment.html) and
  [web development](/web-development.html), many non-developers are first
  introduced to the language and ecosystem while getting data analysis
  work done.

* [Evangelizing Python for Business](https://pbpython.com/python-for-business.html)
  contains helpful hints if you are trying to convince your company to use 
  Python, particularly for [web development](/web-development.html).

* [Python: Beyond Just Web Apps](https://blog.appdynamics.com/python/python-beyond-just-web-apps/)
  supplies non-web development project examples that use Python. The article
  also does a solid job comparing and contrasting Python to other common
  programming languages such as Java, Ruby and JavaScript.

* [Python or Ruby for web development](https://opensource.com/article/17/4/python-or-ruby-web-development)
  gives reasons for one language compared to the other just focused on the
  web development space.

* If you are worried about the community split between 
  [Python 2 and Python 3](/python-2-or-3.html), you should go with Python 3.
  To read more about how companies handled upgrading, check out 
  [Instagram's smooth move to Python 3](https://thenewstack.io/instagram-makes-smooth-move-python-3/),
  [practical steps for moving to Python 3](https://talkpython.fm/episodes/show/155/practical-steps-for-moving-to-python-3)
  and
  [lessons learned from migrating to Python 3](https://able.bio/rhett/lessons-learned-from-migrating-to-python-3--27jsj82).
