Discovering which organizations use Python
Python really is quite good at the tasks that it was designed to perform. In fact, that’s why a lot of large organizations use Python to perform at least some application-creation (development) tasks. You want a programming language that has good support from these large organizations because these organizations tend to spend money to make the language better. Here’s a list of the large organizations that use Python the most:
- Alice Educational Software – Carnegie Mellon University (http:// cmu.edu/corporate/news/2007/features/alice.shtml): Educational applications
- Fermilab (https://www.fnal.gov/): Scientific applications
- com (http://go.com/): Browser-based applications
- Google (https://www.google.com/): Search engine
- Industrial Light & Magic (http://www.ilm.com/): Just about every programming need
- Lawrence Livermore National Library (https://www.llnl.gov/): Scientific applications
- National Space and Aeronautics Administration (NASA) (http://www. gov/): Scientific applications
- New York Stock Exchange (https://nyse.nyx.com/): Browser-based applications
- ObjectDomain (http://case-tools.org/tools/objectdomain. html): Computer Aided Software Engineering (CASE) tools
- Redhat (http://www.redhat.com/): Linux installation tools
- Yahoo! (https://www.yahoo.com/): Parts of Yahoo! mail
- YouTube (http://www.youtube.com/): Graphics engine
- Zope – Digital Creations (http://www.zope.com/): Publishing application
These are just a few of the many organizations that use Python extensively. You can find a more complete list of organizations at http://www.python. org/about/success/. The number of success stories has become so large that even this list probably isn’t complete and the people supporting it have had to create categories to better organize it.
Finding useful Python applications
You might have an application written in Python sitting on your machine right now and not even know it. Python is used in a vast array of applica- tions on the market today. The applications range from utilities that run at the console to full-fledged CAD/CAM suites. Some applications run on mobile devices, while others run on the large services employed by enterprises. In short, there is no limit to what you can do with Python, but it really does help to see what others have done. You can find a number of places online that list applications written in Python, but the best place to look is https://wiki. python.org/moin/Applications.
As a Python programmer, you’ll also want to know that Python development tools are available to make your life easier. A development tool provides some level of automation in writing the procedures needed to tell the computer what to do. Having more development tools means that you have to perform less work in order to obtain a working application. Developers love to share their lists of favorite tools, but you can find a great list of tools broken into categories at http://www.python.org/about/apps/.
Of course, this chapter describes a number of tools as well, such as NumPy and SciPy (two scientific libraries). The remainder of the book lists a few other tools; make sure that you copy down your favorite tools for later.
Comparing Python to other languages
Comparing one language to another is somewhat dangerous because the selection of a language is just as much a matter of taste and personal prefer- ence as it is any sort of quantifiable scientific fact. So before I’m attacked
by the rabid protectors of the languages that follow, it’s important to realize
that I also use a number of languages and find at least some level of overlap among them all. There is no best language in the world, simply the language that works best for a particular application. With this idea in mind, the follow- ing sections provide an overview comparison of Python to other languages. (You can find comparisons to other languages at https://wiki.python. org/moin/LanguageComparisons.)
C#
A lot of people claim that Microsoft simply copied Java to create C#. That said, C# does have some advantages (and disadvantages) when compared to Java. The main (undisputed) intent behind C# is to create a better kind of C/C++ language — one that is easier to learn and use. However, we’re here to talk about C# and Python. When compared to C#, Python has these advantages:
- Significantly easier to learn
- Smaller (more concise) code
- Supported fully as open source
- Better multiplatform support
- Easily allows use of multiple development environments
- Easier to extend using Java and C/C++
- Enhanced scientific and engineering support
Java
For years, programmers looked for a language that they could use to write an application just once and have it run anywhere. Java is designed to work well on any platform. It relies on some tricks that you’ll discover later in the book to accomplish this magic. For now, all you really need to know is that Java was so successful at running well everywhere that other languages have sought to emulate it (with varying levels of success). Even so, Python has some important advantages over Java, as shown in the following list:
- Significantly easier to learn
- Smaller (more concise) code
- Enhanced variables (storage boxes in computer memory) that can hold different kinds of data based on the application’s needs while running (dynamic typing)
- Faster development times
Perl
PERL was originally an acronym for Practical Extraction and Report Language. Today, people simply call it Perl and let it go at that. However, Perl still shows its roots in that it excels at obtaining data from a database and presenting
it in report format. Of course, Perl has been extended to do a lot more than that — you can use it to write all sorts of applications. (I’ve even used it for a Web service application.) In a comparison with Python, you’ll find that Python has these advantages over Perl:
- Simpler to learn
- Easier to read
- Enhanced protection for data
- Better Java integration
- Fewer platform-specific biases