Michael Safyan

Python programming

Python programming language

High level, interpreted, object-oriented

Python is a high-level, powerful, industrial-grade, object-oriented, and popular programming language that excels at rapid prototyping, integration between systems, and at embedding within larger, more rigid systems to provide a mechanism by which rapid iteration, prototyping, or modifications may be applied to those systems. Python is notable for its unique use of whitespace, for its use of dynamic typing, and for the elegant consistency of its type system in treating functions, types, and simple integers and floats the same as any other instance of a user-defined type.

  • Commonly used for
    • rapid prototyping
    • web applications (server-side logic)
    • commandline applications
    • data analysis
    • data cleanup
    • scientific computing
    • data processing pipelines
    • research applications
    • web crawling
    • "glue" code to connect separate subsystems
    • dynamic configuration of larger systems
    • video game application logic
    • others
  • Rarely used for
    • web app UIs (possible with skulpt or brython, but not particularly common or recommended)
    • Android apps (possible with Python for Android, but less common than using Java for Android)
    • iOS apps (theoretically possible with PyObjC, but not particularly easy / well-supported)
    • OS kernels (infeasible)
    • drivers
    • other systems software
  • Execution and distribution
    • interpreted; the original, untranslated code is distributed directly to the machines on which it will be run, and then a program called an "interpreter" that is installed on the target machine reads and executes this distributed code, acting as an intermediary between the code and the CPU; the interpreter may optimize all or some of the code by just-in-time (JIT) compiling it, translating it to native code for the target CPU, thereby allowing the JIT compiled code to be executed directly by the CPU and not merely executed indirectly via the interpreter
  • Memory management
    • automatic (reference counted)
Resources

More

Disclaimer

My statements are my own and do not necessarily reflect the opinions of Google Inc.