Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 517
hawkeye Avatar asked Jul 12 '10 10:07

hawkeye


2 Answers

  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.
like image 52
Ned Batchelder Avatar answered Nov 15 '22 04:11

Ned Batchelder


  • enables rapid systems application prototyping using of c++ libraries using swig wrappers

... What?

Most people doing Python programming aren't doing C++ programming, they're doing Python programming. And they're doing it fast, because they don't need to worry about things like memory management, or templates, or... the sort of namespace support C++ uses.

like image 21
Ignacio Vazquez-Abrams Avatar answered Nov 15 '22 05:11

Ignacio Vazquez-Abrams