Skip to content

Commit dbf5225

Browse files
committed
updating table of contents and ordering of content
1 parent c2056d8 commit dbf5225

File tree

72 files changed

+341
-291
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+341
-291
lines changed

about-author.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ <h3 class="panel-head"><a href="/table-of-contents.html" style="color: #fff;">Ta
102102
<a href="/learning-programming.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Learning Programming</a>
103103
<a href="/why-use-python.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Why Use Python?</a>
104104
<a href="/python-2-or-3.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Python 2 or 3?</a>
105+
<a href="/enterprise-python.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Enterprise Python</a>
105106
<a href="/best-python-resources.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Best Python Resources</a>
106107
<a href="/best-python-videos.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Best Python Videos</a>
107-
<a href="/enterprise-python.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Enterprise Python</a>
108108
<a href="/development-environments.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Development Environments</a>
109109
<a href="/vim.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Vim</a>
110110
<a href="/emacs.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Emacs</a>

all.html

Lines changed: 110 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,116 @@ <h3>Python 2 to 3 resources</h3>
249249
plan is for supporting Python 3 and why it has taken so long to make it
250250
happen.</p>
251251
</li>
252+
</ul>
253+
<h1>Enterprise Python</h1>
254+
<p>One of the misconceptions around Python and other dynamically-typed languages
255+
is that they cannot be reliably used to build enterprise-grade software.
256+
However, almost all commercial and government enterprises already use
257+
Python in some capacity, either as glue code between disparate applications
258+
or to build the applications themselves. </p>
259+
<h2>What is enterprise software?</h2>
260+
<p>Enterprise software is built for the requirements of an organization rather
261+
than the needs of an individual. Software written for enterprises often
262+
needs to integrate with legacy systems, such as existing databases and
263+
non-web applications. There are often requirements to integrate with
264+
authentication systems such as the
265+
<a href="http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol">Lightweight Directory Access Protocol (LDAP)</a>
266+
and
267+
<a href="https://msdn.microsoft.com/en-us/library/aa746492%28v=vs.85%29.aspx">Active Directory (AD)</a>.</p>
268+
<p>Organizations develop enterprise software with numerous custom requirements
269+
to fit the specific needs of their operating model. Therefore the software
270+
development process often becomes far more complicated due to disparate
271+
factions within an organization vying for the software to handle their
272+
needs at the expense of other factions.</p>
273+
<p>The complexity due to the many stakeholders involved in the building of
274+
enterprise software leads to large budgets and extreme scrutiny by
275+
non-technical members of an organization. Typically those non-technical
276+
people place irrational emphasis on the choice of programming language and
277+
frameworks when otherwise they should not make technical design decisions.</p>
278+
<h2>Why are there misconceptions about Python in enterprise environments?</h2>
279+
<p>Traditionally large organizations building enterprise software have used
280+
statically typed languages such as C++, .NET and Java. Throughout the 1980s
281+
and 1990s large companies such as Microsoft, Sun Microsystems and Oracle
282+
marketed these languages as "enterprise grade". The inherent snub to other
283+
languages was that they were not appropriate for CIOs' difficult technical
284+
environments. Languages other than Java, C++ and .NET were seen as risky and
285+
therefore not worthy of investment.</p>
286+
<p>In addition, "scripting languages" such as Python, Perl and Ruby were not
287+
yet robust enough in the 1990s because their core standard libraries were
288+
still being developed. Frameworks such as <a href="/django.html">Django</a>,
289+
<a href="/flask.html">Flask</a> and Rails (for Ruby) did not yet exist. The Web was
290+
just beginning and most enterprise applications were desktop apps built
291+
for Windows. Python simply wasn't made for such environments.</p>
292+
<h2>Why is Python now appropriate for building enterprise software?</h2>
293+
<p>From the early 2000s through today the languages and ecosystems for many
294+
dynamically typed languages have greatly improved and often surpassed some
295+
aspects of other ecosystems. Python, Ruby and other previously derided
296+
languages now have vast, well-maintained open source ecosystems backed by
297+
both independent developers and large companies including Microsoft, IBM,
298+
Google, Facebook, Dropbox, Twilio and many, many others.</p>
299+
<p>Python's open source libraries, especially for
300+
<a href="/web-frameworks.html">web development</a> and data analysis, are some of the
301+
best maintained and fully featured pieces of code for any language.</p>
302+
<p>Meanwhile, some of the traditional enterprise software development languages
303+
such as Java have languished due to underinvestment by their major corporate
304+
backers. When <a href="http://www.oracle.com/us/corporate/press/018363">Oracle purchased Sun Microsystems in 2009</a>
305+
there was a long lag time before Java was enhanced with new language features
306+
in Java 7. Oracle also
307+
<a href="http://www.engadget.com/2015/03/06/java-adware-mac/">bundles unwanted adware with the Java installation</a>,
308+
whereas the Python community would never put up with such a situation because
309+
the language is open source and does not have a single corporate controller.</p>
310+
<p>Other ecosystems, such as the .NET platform by Microsoft have fared much
311+
better. Microsoft continued to invest in moving the .NET platform along
312+
throughout the early part of the new millennium.</p>
313+
<p>However, Microsoft's enterprise products often have expensive licensing fees
314+
for their application servers and associated software. In addition, Microsoft
315+
is also a major backer of open source, <a href="http://www.hanselman.com/blog/OneOfMicrosoftsBestKeptSecretsPythonToolsForVisualStudioPTVS.aspx">especially Python</a>,
316+
and their
317+
<a href="https://www.visualstudio.com/en-us/features/python-vs.aspx">Python tools for Visual Studio</a>
318+
provide a top-notch <a href="/development-environments.html">development environment</a>.</p>
319+
<p>The end result is that enterprise software development has changed
320+
dramatically over the past couple of decades. CIOs and technical executives
321+
can no longer ignore the progress of Python and the great open source
322+
community in the enterprise software development landscape if they want to
323+
continue delivering business value to their business side customers.</p>
324+
<h2>Open source enterprise Python projects</h2>
325+
<ul>
326+
<li>
327+
<p><a href="https://github.com/cfpb/collab">Collab</a> by the
328+
U.S. government's
329+
<a href="http://www.consumerfinance.gov/">Consumer Financial Protection Bureau</a>
330+
(CFPB) agency is a corporate intranet and collaboration platform for large
331+
organizations. The project is currently running and in-use by thousands of
332+
CFPB employees.</p>
333+
</li>
334+
<li>
335+
<p><a href="https://github.com/twitter/pants">Pants</a> is a build system for software
336+
projects with many distinct parts and built with many different programming
337+
languages as is often the case in large organizations.</p>
338+
</li>
339+
</ul>
340+
<h2>Enterprise Python software development resources</h2>
341+
<ul>
342+
<li>
343+
<p>There are a couple of solid demystifying articles in CIO magazine including
344+
<a href="http://www.cio.com/article/2437137/developer/you-used-python-to-write-what-.html">this broad overview of Python in enterprises</a>
345+
and this article on
346+
<a href="http://www.cio.com/article/2431212/developer/dynamic-languages--not-just-for-scripting-any-more.html">why dynamic languages are gaining share for enterprise development</a>.</p>
347+
</li>
348+
<li>
349+
<p>JavaWorld wrote an interesting article about
350+
<a href="http://www.javaworld.com/article/2078655/scripting-jvm-languages/python-coming-to-the-enterprise--like-it-or-not.html">Python's inroads into enterprise software development</a>.</p>
351+
</li>
352+
<li>
353+
<p>I gave a talk at DjangoCon 2014 on
354+
<a href="https://www.youtube.com/watch?v=aMtiCX38w20">How to Solve the Top 5 Headaches with Django in the Enterprise</a>
355+
which covered both Python and Django in large organizations.</p>
356+
</li>
357+
<li>
358+
<p>This <a href="http://programmers.stackexchange.com/questions/141411/what-is-enterprise-software-exactly">StackExchange answer</a>
359+
contains a solid explanation what differentiates enterprise software
360+
from traditional software.</p>
361+
</li>
252362
</ul>
253363
<h1>Best Python Resources</h1>
254364
<p>The Python community is amazing at sharing detailed resources and helping
@@ -588,116 +698,6 @@ <h2>Video compilations</h2>
588698
to emphasize professional software developers who also have the ability to
589699
engage an audience of peers with an exciting talk.</p>
590700
</li>
591-
</ul>
592-
<h1>Enterprise Python</h1>
593-
<p>One of the misconceptions around Python and other dynamically-typed languages
594-
is that they cannot be reliably used to build enterprise-grade software.
595-
However, almost all commercial and government enterprises already use
596-
Python in some capacity, either as glue code between disparate applications
597-
or to build the applications themselves. </p>
598-
<h2>What is enterprise software?</h2>
599-
<p>Enterprise software is built for the requirements of an organization rather
600-
than the needs of an individual. Software written for enterprises often
601-
needs to integrate with legacy systems, such as existing databases and
602-
non-web applications. There are often requirements to integrate with
603-
authentication systems such as the
604-
<a href="http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol">Lightweight Directory Access Protocol (LDAP)</a>
605-
and
606-
<a href="https://msdn.microsoft.com/en-us/library/aa746492%28v=vs.85%29.aspx">Active Directory (AD)</a>.</p>
607-
<p>Organizations develop enterprise software with numerous custom requirements
608-
to fit the specific needs of their operating model. Therefore the software
609-
development process often becomes far more complicated due to disparate
610-
factions within an organization vying for the software to handle their
611-
needs at the expense of other factions.</p>
612-
<p>The complexity due to the many stakeholders involved in the building of
613-
enterprise software leads to large budgets and extreme scrutiny by
614-
non-technical members of an organization. Typically those non-technical
615-
people place irrational emphasis on the choice of programming language and
616-
frameworks when otherwise they should not make technical design decisions.</p>
617-
<h2>Why are there misconceptions about Python in enterprise environments?</h2>
618-
<p>Traditionally large organizations building enterprise software have used
619-
statically typed languages such as C++, .NET and Java. Throughout the 1980s
620-
and 1990s large companies such as Microsoft, Sun Microsystems and Oracle
621-
marketed these languages as "enterprise grade". The inherent snub to other
622-
languages was that they were not appropriate for CIOs' difficult technical
623-
environments. Languages other than Java, C++ and .NET were seen as risky and
624-
therefore not worthy of investment.</p>
625-
<p>In addition, "scripting languages" such as Python, Perl and Ruby were not
626-
yet robust enough in the 1990s because their core standard libraries were
627-
still being developed. Frameworks such as <a href="/django.html">Django</a>,
628-
<a href="/flask.html">Flask</a> and Rails (for Ruby) did not yet exist. The Web was
629-
just beginning and most enterprise applications were desktop apps built
630-
for Windows. Python simply wasn't made for such environments.</p>
631-
<h2>Why is Python now appropriate for building enterprise software?</h2>
632-
<p>From the early 2000s through today the languages and ecosystems for many
633-
dynamically typed languages have greatly improved and often surpassed some
634-
aspects of other ecosystems. Python, Ruby and other previously derided
635-
languages now have vast, well-maintained open source ecosystems backed by
636-
both independent developers and large companies including Microsoft, IBM,
637-
Google, Facebook, Dropbox, Twilio and many, many others.</p>
638-
<p>Python's open source libraries, especially for
639-
<a href="/web-frameworks.html">web development</a> and data analysis, are some of the
640-
best maintained and fully featured pieces of code for any language.</p>
641-
<p>Meanwhile, some of the traditional enterprise software development languages
642-
such as Java have languished due to underinvestment by their major corporate
643-
backers. When <a href="http://www.oracle.com/us/corporate/press/018363">Oracle purchased Sun Microsystems in 2009</a>
644-
there was a long lag time before Java was enhanced with new language features
645-
in Java 7. Oracle also
646-
<a href="http://www.engadget.com/2015/03/06/java-adware-mac/">bundles unwanted adware with the Java installation</a>,
647-
whereas the Python community would never put up with such a situation because
648-
the language is open source and does not have a single corporate controller.</p>
649-
<p>Other ecosystems, such as the .NET platform by Microsoft have fared much
650-
better. Microsoft continued to invest in moving the .NET platform along
651-
throughout the early part of the new millennium.</p>
652-
<p>However, Microsoft's enterprise products often have expensive licensing fees
653-
for their application servers and associated software. In addition, Microsoft
654-
is also a major backer of open source, <a href="http://www.hanselman.com/blog/OneOfMicrosoftsBestKeptSecretsPythonToolsForVisualStudioPTVS.aspx">especially Python</a>,
655-
and their
656-
<a href="https://www.visualstudio.com/en-us/features/python-vs.aspx">Python tools for Visual Studio</a>
657-
provide a top-notch <a href="/development-environments.html">development environment</a>.</p>
658-
<p>The end result is that enterprise software development has changed
659-
dramatically over the past couple of decades. CIOs and technical executives
660-
can no longer ignore the progress of Python and the great open source
661-
community in the enterprise software development landscape if they want to
662-
continue delivering business value to their business side customers.</p>
663-
<h2>Open source enterprise Python projects</h2>
664-
<ul>
665-
<li>
666-
<p><a href="https://github.com/cfpb/collab">Collab</a> by the
667-
U.S. government's
668-
<a href="http://www.consumerfinance.gov/">Consumer Financial Protection Bureau</a>
669-
(CFPB) agency is a corporate intranet and collaboration platform for large
670-
organizations. The project is currently running and in-use by thousands of
671-
CFPB employees.</p>
672-
</li>
673-
<li>
674-
<p><a href="https://github.com/twitter/pants">Pants</a> is a build system for software
675-
projects with many distinct parts and built with many different programming
676-
languages as is often the case in large organizations.</p>
677-
</li>
678-
</ul>
679-
<h2>Enterprise Python software development resources</h2>
680-
<ul>
681-
<li>
682-
<p>There are a couple of solid demystifying articles in CIO magazine including
683-
<a href="http://www.cio.com/article/2437137/developer/you-used-python-to-write-what-.html">this broad overview of Python in enterprises</a>
684-
and this article on
685-
<a href="http://www.cio.com/article/2431212/developer/dynamic-languages--not-just-for-scripting-any-more.html">why dynamic languages are gaining share for enterprise development</a>.</p>
686-
</li>
687-
<li>
688-
<p>JavaWorld wrote an interesting article about
689-
<a href="http://www.javaworld.com/article/2078655/scripting-jvm-languages/python-coming-to-the-enterprise--like-it-or-not.html">Python's inroads into enterprise software development</a>.</p>
690-
</li>
691-
<li>
692-
<p>I gave a talk at DjangoCon 2014 on
693-
<a href="https://www.youtube.com/watch?v=aMtiCX38w20">How to Solve the Top 5 Headaches with Django in the Enterprise</a>
694-
which covered both Python and Django in large organizations.</p>
695-
</li>
696-
<li>
697-
<p>This <a href="http://programmers.stackexchange.com/questions/141411/what-is-enterprise-software-exactly">StackExchange answer</a>
698-
contains a solid explanation what differentiates enterprise software
699-
from traditional software.</p>
700-
</li>
701701
</ul>
702702
<h1>Development Environments</h1>
703703
<p>A development environment is a combination of a text editor and the Python

api-creation.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,9 +296,9 @@ <h3 class="panel-head"><a href="/table-of-contents.html" style="color: #fff;">Ta
296296
<a href="/learning-programming.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Learning Programming</a>
297297
<a href="/why-use-python.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Why Use Python?</a>
298298
<a href="/python-2-or-3.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Python 2 or 3?</a>
299+
<a href="/enterprise-python.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Enterprise Python</a>
299300
<a href="/best-python-resources.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Best Python Resources</a>
300301
<a href="/best-python-videos.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Best Python Videos</a>
301-
<a href="/enterprise-python.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Enterprise Python</a>
302302
<a href="/development-environments.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Development Environments</a>
303303
<a href="/vim.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Vim</a>
304304
<a href="/emacs.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Emacs</a>

api-integration.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,9 @@ <h3 class="panel-head"><a href="/table-of-contents.html" style="color: #fff;">Ta
194194
<a href="/learning-programming.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Learning Programming</a>
195195
<a href="/why-use-python.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Why Use Python?</a>
196196
<a href="/python-2-or-3.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Python 2 or 3?</a>
197+
<a href="/enterprise-python.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Enterprise Python</a>
197198
<a href="/best-python-resources.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Best Python Resources</a>
198199
<a href="/best-python-videos.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Best Python Videos</a>
199-
<a href="/enterprise-python.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Enterprise Python</a>
200200
<a href="/development-environments.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Development Environments</a>
201201
<a href="/vim.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Vim</a>
202202
<a href="/emacs.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>Emacs</a>

0 commit comments

Comments
 (0)