Search code examples
pythonprogramming-languagesprototype

What is the dominant reason for Python's popularity as a systems and application programming language?


Coming from an enterprise systems background (think Java and Windows) - I'm surprised at the popularity of python as a prototyping language and am trying to put my finger on the precise reason for this. Examples include being listed as one of the four languages Google uses. Possible reasons include:

  • enables rapid systems application prototyping using of c++ libraries using swig wrappers
  • built to a well defined language specification
  • innovative features at the syntax level enabling high level of expressiveness
  • highly flexible web frameworks built long before other languages (django)

The questions is what makes it so popular/highly regarded, but to give some balance I'm going to give some reasons it might not be popular:

  • less tool support
  • less enterprise support (ie a vendor helpdesk)
  • lower performance
  • BDFL not caring about backward compatibility in version upgrades

Or was it just the best at a particular point in time (about 8 years ago) and other languages and frameworks have since caught up?


Solution

    1. Highly expressive language. People often say, "Python works the way my brain does".
    2. Dynamic typing means you spend zero time appeasing the compiler.
    3. A large standard library means you often have the tools you need at your fingertips.
    4. An even larger stable of third-party packages (PIL, Numpy, NLTK, Django) mean that large problem domains are often well-supported.
    5. Open-source implementation means you don't have to grovel at the vendor helpdesk, you can find answers yourself, and get solutions from a large community of users.