forked from mattmakai/fullstackpython.com
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwhy-use-python.html
More file actions
262 lines (257 loc) · 19.7 KB
/
why-use-python.html
File metadata and controls
262 lines (257 loc) · 19.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
<!DOCTYPE html>
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Matt Makai">
<link rel="shortcut icon" href="theme/img/fsp-fav.png">
<title>Why Use Python? - Full Stack Python</title>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<style>
.toc-indent {padding-left: 25px;}
.toc-more-indent {padding-left: 37px;}
</style>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-19910497-7', 'auto');
ga('send', 'pageview');
</script> </head>
<body>
<a href="https://github.com/makaimc/fullstackpython.github.com"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/a6677b08c955af8400f44c6298f40e7d19cc5b2d/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f677261795f3664366436642e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"></a>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="logo-header-section">
<a href="/" style="text-decoration: none; border: none;"><img src="theme/img/fsp-logo.png" height="52" width="52" class="logo-image" style="padding-top: 1px;" alt="Full Stack Python logo"></a>
<span class="logo-title"><a href="/">Full Stack Python</a></span>
</div>
</div>
</div><div class="row">
<div class="col-md-8">
<h1>Why Use Python?</h1>
<p>Python's expansive library of open source data analysis tools,
<a href="/web-frameworks.html">web frameworks</a>,
and testing instruments make its ecosystem one of the largest out of any
programming community. </p>
<p>Python is an accessible language for new programmers because of the extensive
availability of
<a href="/best-python-resources.html">free and low cost introductory resources</a>. The
language is also widely taught in universities and used for working with
beginner-friendly devices such as the
<a href="http://www.raspberrypi.org/">Raspberry Pi</a>.</p>
<h2>Python's programming language popularity</h2>
<p>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. </p>
<p>Most recently, the
<a href="http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/">RedMonk January 2015 ranking</a> had Python at #4.</p>
<p>The
<a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">TIOBE Index</a>,
a long-running language ranking, has Python steady at #8. </p>
<p>The <a href="http://pypl.github.io/PYPL.html">PopularitY of Programming Language</a>
(PYPL), based on leading indicators from Google Trends search keyword
analysis, shows Python at #3.</p>
<p><a href="http://githut.info/">GitHut</a>, a visualization of GitHub language popularity,
pegs Python at #3 overall as well.</p>
<p>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.</p>
<h2>Why does the choice of programming language matter?</h2>
<p>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.</p>
<p>Python's culture values
<a href="https://github.com/trending?l=python&since=monthly">open source software</a>,
community involvement with
<a href="http://www.pycon.org/">local, national and international events</a> and
teaching to new programmers. If those values are also important to you and/or
your organization then Python may be a good fit. </p>
<p>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 <a href="https://www.python.org/dev/peps/pep-0020/">The Zen of Python</a>.</p>
<div class="codehilite"><pre><span class="o">>>></span> <span class="n">import</span> <span class="n">this</span>
<span class="n">The</span> <span class="n">Zen</span> <span class="n">of</span> <span class="n">Python</span><span class="p">,</span> <span class="n">by</span> <span class="n">Tim</span> <span class="n">Peters</span>
<span class="n">Beautiful</span> <span class="n">is</span> <span class="n">better</span> <span class="n">than</span> <span class="n">ugly</span><span class="p">.</span>
<span class="n">Explicit</span> <span class="n">is</span> <span class="n">better</span> <span class="n">than</span> <span class="n">implicit</span><span class="p">.</span>
<span class="n">Simple</span> <span class="n">is</span> <span class="n">better</span> <span class="n">than</span> <span class="n">complex</span><span class="p">.</span>
<span class="n">Complex</span> <span class="n">is</span> <span class="n">better</span> <span class="n">than</span> <span class="n">complicated</span><span class="p">.</span>
<span class="n">Flat</span> <span class="n">is</span> <span class="n">better</span> <span class="n">than</span> <span class="n">nested</span><span class="p">.</span>
<span class="n">Sparse</span> <span class="n">is</span> <span class="n">better</span> <span class="n">than</span> <span class="n">dense</span><span class="p">.</span>
<span class="n">Readability</span> <span class="n">counts</span><span class="p">.</span>
<span class="n">Special</span> <span class="n">cases</span> <span class="n">aren</span><span class="err">'</span><span class="n">t</span> <span class="n">special</span> <span class="n">enough</span> <span class="n">to</span> <span class="k">break</span> <span class="n">the</span> <span class="n">rules</span><span class="p">.</span>
<span class="n">Although</span> <span class="n">practicality</span> <span class="n">beats</span> <span class="n">purity</span><span class="p">.</span>
<span class="n">Errors</span> <span class="n">should</span> <span class="n">never</span> <span class="n">pass</span> <span class="n">silently</span><span class="p">.</span>
<span class="n">Unless</span> <span class="n">explicitly</span> <span class="n">silenced</span><span class="p">.</span>
<span class="n">In</span> <span class="n">the</span> <span class="n">face</span> <span class="n">of</span> <span class="n">ambiguity</span><span class="p">,</span> <span class="n">refuse</span> <span class="n">the</span> <span class="n">temptation</span> <span class="n">to</span> <span class="n">guess</span><span class="p">.</span>
<span class="n">There</span> <span class="n">should</span> <span class="n">be</span> <span class="n">one</span><span class="o">--</span> <span class="n">and</span> <span class="n">preferably</span> <span class="n">only</span> <span class="n">one</span> <span class="o">--</span><span class="n">obvious</span> <span class="n">way</span> <span class="n">to</span> <span class="k">do</span> <span class="n">it</span><span class="p">.</span>
<span class="n">Although</span> <span class="n">that</span> <span class="n">way</span> <span class="n">may</span> <span class="n">not</span> <span class="n">be</span> <span class="n">obvious</span> <span class="n">at</span> <span class="n">first</span> <span class="n">unless</span> <span class="n">you</span><span class="err">'</span><span class="n">re</span> <span class="n">Dutch</span><span class="p">.</span>
<span class="n">Now</span> <span class="n">is</span> <span class="n">better</span> <span class="n">than</span> <span class="n">never</span><span class="p">.</span>
<span class="n">Although</span> <span class="n">never</span> <span class="n">is</span> <span class="n">often</span> <span class="n">better</span> <span class="n">than</span> <span class="o">*</span><span class="n">right</span><span class="o">*</span> <span class="n">now</span><span class="p">.</span>
<span class="n">If</span> <span class="n">the</span> <span class="n">implementation</span> <span class="n">is</span> <span class="n">hard</span> <span class="n">to</span> <span class="n">explain</span><span class="p">,</span> <span class="n">it</span><span class="err">'</span><span class="n">s</span> <span class="n">a</span> <span class="n">bad</span> <span class="n">idea</span><span class="p">.</span>
<span class="n">If</span> <span class="n">the</span> <span class="n">implementation</span> <span class="n">is</span> <span class="n">easy</span> <span class="n">to</span> <span class="n">explain</span><span class="p">,</span> <span class="n">it</span> <span class="n">may</span> <span class="n">be</span> <span class="n">a</span> <span class="n">good</span> <span class="n">idea</span><span class="p">.</span>
<span class="n">Namespaces</span> <span class="n">are</span> <span class="n">one</span> <span class="n">honking</span> <span class="n">great</span> <span class="n">idea</span> <span class="o">--</span> <span class="n">let</span><span class="err">'</span><span class="n">s</span> <span class="k">do</span> <span class="n">more</span> <span class="n">of</span> <span class="n">those</span><span class="o">!</span>
</pre></div>
<h3>More perspectives on why to use Python</h3>
<ul>
<li>
<p>The Python documentation has a HOWTO section specifically for
<a href="https://docs.python.org/2/howto/advocacy.html">Python advocacy</a>.</p>
</li>
<li>
<p><a href="http://nothingbutsnark.svbtle.com/how-to-argue-for-pythons-use">How to argue for Python’s use</a>
explains that choosing a programming language can be complicated but that
Python is a very good option for many use cases.</p>
</li>
<li>
<p><a href="http://lorenabarba.com/blog/why-i-push-for-python/">Why I Push for Python</a>
explains one professor's rationale for promoting Python to teach programming
to undergraduates.</p>
</li>
</ul>
<h3>Resources for Python enterprise advocacy</h3>
<ul>
<li>
<p>CIO Magazine discusses why
<a href="http://www.cio.com/article/2431212/developer/dynamic-languages--not-just-for-scripting-any-more.html">dynamic languages are increasingly being adopted in enterprise environments</a>.</p>
</li>
<li>
<p>PayPal covers
<a href="https://www.paypal-engineering.com/2014/12/10/10-myths-of-enterprise-python/">10 myths about enterprise Python</a>
via their engineering blog.</p>
</li>
<li>
<p>My DjangoCon 2014 talk focused on overcoming false biases against
<a href="https://www.youtube.com/watch?v=aMtiCX38w20">Python and Django in enterprise environments</a>.</p>
</li>
</ul>
<h2>What else would you like to know about Python?</h2>
<div class="row">
<div class="col-md-4">
<div class="well select-next">
<a href="/introduction.html" class="btn btn-success btn-full"><i class="fa fa-fast-backward fa-inverse fa-2x"></i></a>
<p class="under-btn">
Let me start over from the Full Stack Python introduction.
</p>
</div>
</div>
<div class="col-md-4">
<div class="well select-next">
<a href="/future-directions.html" class="btn btn-success btn-full"><i class="fa fa-magic fa-inverse fa-2x"></i></a>
</a>
<p class="under-btn">
Show me what's coming on Full Stack Python in the future.
</p>
</div>
</div>
<div class="col-md-4">
<div class="well select-next">
<a href="/table-of-contents.html" class="btn btn-success btn-full"><i class="fa fa-list-alt fa-2x"></i></a>
<p class="under-btn">
Let me see the list of all Full Stack Python topics.
</p>
</div>
</div>
</div> <div id="mc_embed_signup">
<form action="//mattmakai.us2.list-manage.com/subscribe/post?u=b7e774f0c4f05dcebbfee183d&id=b22335388d" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<div id="mc_embed_signup_scroll">
<h4>Interested in major updates to this site or an alert when a complete Full Stack Python book with detailed example code is released? Sign up here and you'll an occasional email only when there's big news to report.</h4>
<div class="row">
<div class="col-md-9">
<input type="email" value="" name="EMAIL" class="email form-control" id="mce-EMAIL" placeholder="email address" required>
<div style="position: absolute; left: -5000px;"><input type="text" name="b_b7e774f0c4f05dcebbfee183d_b22335388d" tabindex="-1" value=""></div>
</div>
<div class="col-md-3">
<div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="btn btn-success" style="font-family: 'Helvetica Neue';"></div>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="col-md-offset-1 col-md-3" id="sidebar">
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-head"><a href="/table-of-contents.html" style="color: #fff;">Table of Contents</a></h3>
</div>
<div class="list-group">
<a href="/introduction.html" class="list-group-item smaller-item ">Introduction</a>
<a href="/why-use-python.html" class="list-group-item smaller-item active">Why Use Python?</a>
<a href="/development-environments.html" class="list-group-item smaller-item ">Development Environments</a>
<a href="/vim.html" class="list-group-item smaller-item ">Vim</a>
<a href="/best-python-resources.html" class="list-group-item smaller-item ">Best Python Resources</a>
<a href="/web-frameworks.html" class="list-group-item smaller-item ">Web Frameworks</a>
<a href="/django.html" class="list-group-item smaller-item ">Django</a>
<a href="/flask.html" class="list-group-item smaller-item ">Flask</a>
<a href="/bottle.html" class="list-group-item smaller-item ">Bottle</a>
<a href="/pyramid.html" class="list-group-item smaller-item ">Pyramid</a>
<a href="/morepath.html" class="list-group-item smaller-item ">Morepath</a>
<a href="/other-web-frameworks.html" class="list-group-item smaller-item ">Other Web Frameworks</a>
<a href="/web-design.html" class="list-group-item smaller-item ">Web Design</a>
<a href="/cascading-style-sheets.html" class="list-group-item smaller-item ">Cascading Style Sheets</a>
<a href="/javascript.html" class="list-group-item smaller-item ">JavaScript</a>
<a href="/websockets.html" class="list-group-item smaller-item ">WebSockets</a>
<a href="/web-application-security.html" class="list-group-item smaller-item ">Web Application Security</a>
<a href="/databases.html" class="list-group-item smaller-item ">Databases</a>
<a href="/no-sql-datastore.html" class="list-group-item smaller-item ">NoSQL Data Stores</a>
<a href="/application-programming-interfaces.html" class="list-group-item smaller-item ">Application Programming Interfaces</a>
<a href="/api-integration.html" class="list-group-item smaller-item ">API Integration</a>
<a href="/api-creation.html" class="list-group-item smaller-item ">API Creation</a>
<a href="/deployment.html" class="list-group-item smaller-item ">Deployment</a>
<a href="/servers.html" class="list-group-item smaller-item ">Servers</a>
<a href="/platform-as-a-service.html" class="list-group-item smaller-item ">Platform-as-a-service</a>
<a href="/operating-systems.html" class="list-group-item smaller-item ">Operating Systems</a>
<a href="/web-servers.html" class="list-group-item smaller-item ">Web Servers</a>
<a href="/wsgi-servers.html" class="list-group-item smaller-item ">WSGI Servers</a>
<a href="/source-control.html" class="list-group-item smaller-item ">Source Control</a>
<a href="/application-dependencies.html" class="list-group-item smaller-item ">Application Dependencies</a>
<a href="/static-content.html" class="list-group-item smaller-item ">Static Content</a>
<a href="/task-queues.html" class="list-group-item smaller-item ">Task Queues</a>
<a href="/configuration-management.html" class="list-group-item smaller-item ">Configuration Management</a>
<a href="/continuous-integration.html" class="list-group-item smaller-item ">Continuous Integration</a>
<a href="/logging.html" class="list-group-item smaller-item ">Logging</a>
<a href="/monitoring.html" class="list-group-item smaller-item ">Monitoring</a>
<a href="/web-analytics.html" class="list-group-item smaller-item ">Web Analytics</a>
<a href="/docker.html" class="list-group-item smaller-item ">Docker</a>
<a href="/caching.html" class="list-group-item smaller-item ">Caching</a>
<a href="/code-metrics.html" class="list-group-item smaller-item ">Code Metrics</a>
<a href="/what-full-stack-means.html" class="list-group-item smaller-item ">What "Full Stack" Means</a>
<a href="/change-log.html" class="list-group-item smaller-item ">Change Log</a>
<a href="/future-directions.html" class="list-group-item smaller-item ">Future Directions</a>
<a href="/about-author.html" class="list-group-item smaller-item ">About the Author</a>
</div>
</div>
<div class="panel panel-success">
<div class="panel-heading"><h3 class="panel-head">Why Use Python?</h3></div>
<div class="panel-body">
Need more detailed tutorials and walkthroughs than you see here?
<a href="/email.html">Sign up for an email alert when that content is created.</a>
<hr/>
<a href="/">Full Stack Python</a> is an open book that explains
concepts in plain language and provides the most helpful resources
on those topics.
<hr/>
<a href="http://twitter.com/mattmakai">Matt Makai</a> built
this site with appreciated assistance from
<a href="https://github.com/makaimc/fullstackpython.github.com/pulls">pull requests</a>.
</div>
</div>
</div></div>
<hr/>
<div class="footer pull-right">
<a href="http://www.mattmakai.com/" class="underline">Matt Makai</a>
2015
</div>
</div>
<link href="theme/css/f.min.css" rel="stylesheet">
<link href="//netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.css" rel="stylesheet">
</body>
</html>