General – (BOP)

What the is Python?

Python is a high-level multi-paradigm programming language. It supports all the Object-Oriented features we expect to find in an Object-Oriented language, but it also supports other programming paradigms like functional programming.
Python is also both a dynamically typed language and a strongly typed language. This differentiates it from the classical “strict” languages like Java or C# which are strongly and statically typed or the weakly, dynamically typed approach of JavaScript. Python checks types ‘dynamically’ at runtime, but does ‘strongly’ type the variables at that point, limiting the operations you can do on that variable.
Another feature of Python is that it both works in the classical “compile to machine readable bytecode, then execute” fashion, as well as in a Just-In-Time fashion. It is described as being an interpreted language, but can really be seen as both, as it depends on the tooling you use and what your use-case is.
If you are confused about some of these terms and explanations, don’t fret. We will cover these topics during the tutorial.

Python History

The Python programming language was conceived in the late 1980s and was named after the BBC TV show Monty Python’s Flying Circus. Guido van Rossum started implementing Python at CWI in the Netherlands in December of 1989. This was a successor to the ABC programming language which was capable of exception handling and interfacing with the Amoeba operating system.

Python 2.0 was released On October 16 of 2000,  and it had many major new features including cycle-detecting garbage collector for memory management and support for Unicode.

Python 3.0 was released on 3 December 2008. It was a major revision of the language that is not completely backwards-compatible.


Why is Python so popular?

Taking a look at some of the main features of Python can shed some light on this.

Main Features of Python

  • Free and open source
  • Can run cross platforms (Linux, Mac, Windows, FreeBSD, Embedded etc.)
  • Vast amount of pre-existing packages and libraries
  • Built to support a variety of programming paradigms, including OOP
  • Good community support
  • Wide applicable area from web development, automation, data science, machine learning, and software testing.
  • Relatively easy learning curve

And we may extend this list with many more features. Being a ‘living’ language with good community support makes it a solid option to be used in a project.