Skip to content

Python history, characteristic and usage

Logo

What is it programming?

Computer programming it is a process of design, develop and, testing and source code maintenance of computer programs or micro processor device (micro-controllers).

Source code is written in programming language, with specific rules, it might be some modification of other program or totally new. Programming require a lot of knowledge and experience in many areas, like application design, algorithmics, data structure, program language and programming tools, compiler, or how computer device working.

Interpreter is a program, which analyse source code and execute successfully analysed parts. It's different than compilation process, which translate command to binary code, represented by 0 and 1 which are familiar for computer - before program is executed. Program code interpretation is slower instead of compiled code execution, because interpreter needs to analyze each command first and next relate specific actions. Compiled code only execute actions, because it was analyzed already during compilation, so there's no need to do it again.

Programming engineering (implementation) is one of program develop step.

Python language characteristic

  • Easy to use and learn - Python is focused to fast program development, as it's easy and developer-friendly, fast code writing.
  • White space sensitive - main Python feature, code is separated and aggregates into code block using white spaces (or tab).
  • hight-level - operate on domain problem definitions, which are currently resolve (i.e. for bank it will currency, loan, accounts, transfers), instead of bits and processor registers.
  • Interpreted - we don't need to compile program, Python has its own interpreter
  • Dynamic typed - you don't have to provide data type in variable declaration, and you can stor whatever you want.
  • Support many programming styles (paradigms):
    • object (classes, methods, inheritance)
    • function (lambda expressions)
    • imperative (loops)
    • reflection (view variables, modules, classes) during program execution.
  • Substantial standard library - Python provides a lot of ready code, which can be easy use for common functions instead of new code development.
  • Freeware

Python history

Guido van Rossum

  • Conceived by Guido van Rossuma.
  • Officially released in February 1991.
  • 26th January 1994 first final version released.
  • Python 3.0 released 8th December 2008.
  • Version 2.7 is not supported since 2020.
  • Python 3.0 currently it's the only updated and supported Python version.
  • Contrary to appearances, the name does not come from snake but from "Monty Python’s Flying Circus".
  • Created as script language for Amoeba operating system.

Based on Stack Overflow Developer Survey from 2019 (most common programmers opinion polls) Python is most popularity growing language (it's even more popular (https://insights.stackoverflow.com/survey/2019#technology) than Java!). Artificial intelligence (AI) dynamic development and web technologies, for which Python is mostly used, causing next growths.

For what Python is used?

  • Artificial intelligence and machine learning (Scikit-learn, Tensorflow)
    • recognize objects on photo (faces, vehicles, etc)
    • human language analyze, i.e. automatic text summary, chat bot
    • forecasting phenomenons
    • game playing learning (computer defeat chess master!)
  • Web sites development /web technologies
    • web applications (Django, Flask)
    • REST API - site engine (Django, Flask)
    • Internet indexing robots (requests, BeautifulSoup)
  • Data management and formating (pandas, numpy)
    • read cxv and xlsx files
    • fill missing data, data cleansing
    • data analyze and visualization (charts, histograms)
  • Testing (unittest, pytest)
    • Unit, component and integration tests
  • Task automation
    • creating bid automate for auction
    • automatic page searching for an item
    • network or computer group management
  • DevOps practice
    • improving the quality of software implementations
    • more frequent release of new code versions
    • better insight into processes and requirements