Python Overview
Python is a general-purpose high-level programming language. It is an open source language, released under a GPL-compatible license. Python Software Foundation (PSF), a non-profit organization, holds the copyright of Python.
Guido Van Rossum conceived Python in the late 1980s. It was released in 1991 at Centrum Wiskunde & Informatica (CWI) in the Netherlands as a successor to the ABC language. He named this language after a popular comedy show called ‘Monty Python’s Flying Circus’ (and not after Python-the snake).
In the last few years, its popularity has increased immensely. According to stackoverflow.com’s recent survey, Python is in the top ten Most Popular Technologies in 2018.
Python Version History:
Currently, PSF supports two versions, Python 2.x & Python 3.x. Python 2.0 was released in October 2000 and includes a large number of features. PSF continues to support version Python 2 because a large body of existing code could not be forward ported to Python 3. So, they will support Python 2 until 2020.
Python 3.0 was released on December 3rd, 2008. It was designed to rectify certain flaws in earlier version. This version is not completely backward-compatible with previous versions. However, many of its major features have since been back-ported to the Python 2.6.x and 2.7.x version series. Releases of Python 3 include 2 to 3 utilities to facilitate the automation of translation of Python 2 code to Python 3.
All the tutorials and examples in this website use Python 3.7.0
The following table lists all the important versions history of Python:
Version | Release Date | Important Features |
Python 0.9.0 | February 1991 | – Classes with inheritance exception handling – Functions – Modules |
Python 1.0 | January 1994 | – Functional programming tools (lambda, map, filter and reduce). – Support for complex numbers. – Functions with keyword arguments |
Python 2.0 Python 2.7.0 – Current version Python 2.7.15 – Current sub-version | October 2000 July 2010 May 2018 | – List comprehension. – Cycle-detecting garbage collector. – Support for Unicode. – Unification of data types and classes |
Python 3 Python 3.6 Python 3.6.5 | December 2008 December 2016 March 2018 | – Backward incompatible. – print keyword changed to print() function – raw_input() function depreciate – Unified str/Unicode types. – Utilities for automatic conversion of Pytthon 2.x code |
Python 3.7.0 – Current Version | May 2018 | – New C API for thread-local storage – Built-in breakpoint() – Data classes – Context variables |
Python Features:
- Python is an interpreter-based language, which allows execution of one instruction at a time.
- Extensive basic data types are supported e.g. numbers (floating point, complex, and unlimited-length long integers), strings (both ASCII and Unicode), lists, and dictionaries.
- Variables can be strongly typed as well as dynamic typed.
- Supports object-oriented programming concepts such as class, inheritance, objects, module, namespace etc.
- Cleaner exception handling support.
- Supports automatic memory management.
Python Advantages
- Python provides enhanced readability. For that purpose, uniform indents are used to delimit blocks of statements instead of curly brackets, like in many languages such as C, C++ and Java.
- Python is free and distributed as open-source software. A large programming community is actively involved in the development and support of Python libraries for various applications such as web frameworks, mathematical computing and data science.
- Python is a cross-platform language. It works equally on different OS platforms like Windows, Linux, Mac OSX etc. Hence Python applications can be easily ported across OS platforms.
- Python supports multiple programming paradigms including imperative, procedural, object-oriented and functional programming styles.
- Python is an extensible language. Additional functionality (other than what is provided in the core language) can be made available through modules and packages written in other languages (C, C++, Java etc)
- A standard DB-API for database connectivity has been defined in Python. It can be enabled using any data source (Oracle, MySQL, SQLite etc.) as a backend to the Python program for storage, retrieval and processing of data.
- Standard distribution of Python contains the Tkinter GUI toolkit, which is the implementation of popular GUI library called Tcl/Tk. An attractive GUI can be constructed using Tkinter. Many other GUI libraries like Qt, GTK, WxWidgets etc. are also ported to Python.
- Python can be integrated with other popular programming technologies like C, C++, Java, ActiveX and CORBA.
Python Application Types
Even though Python started as a general-purpose programming language with no particular application as its focus, over last few years it has emerged as the language of choice for developers in some application areas. Some important applications of Python are summarized below:
Data Science
Python experienced a recent emergence in popularity charts mainly because of its Data science libraries. Huge amount of data is being generated today by web applications, mobile applications and other devices. Companies need business insights from this data.
Today Python has become the language of choice for data scientists. Python libraries like NumPy, Pandas and Matplotlib are extensively used in the process of data analysis, including the collection, processing and cleansing of data sets, applying mathematical algorithms and generating visualizations for the benefit of users. Commercial and community Python distributions by third-parties such as Anaconda and ActiveState provide all the essential libraries required for data science.
Machine Learning
This is another key application area of Python. Python libraries such as Scikit-learn, Tensorflow and NLTK are widely used for the prediction of trends like customer satisfaction, projected values of stocks etc. Some of the real-world applications of machine learning include medical diagnosis, statistical arbitrage, basket analysis, sales prediction etc.
Web Development
This is another application area in which Python is becoming popular. Web application framework libraries like django, Pyramid, Flask etc. make it very easy to develop and deploy simple as well as complex web applications. These frameworks are used extensively by various IT companies. Dropbox for example uses django as a backend to store and, synchronize local folders.
Most of the web servers today are compatible with WSGI (Web Server Gateway Interface) – a specification for the universal interface between Python web frameworks and web servers. All leading web servers such as Apache, IIS, Nginxetc can now host Python web applications. Google’s App Engine hosts web applications built with almost all Python web frameworks.
Image Processing
The OpenCV library is commonly used for face detection and gesture recognition. OpenCV is a C++ library, but has been ported to Python. Because of the rapid development of this feature, Python is a very popular choice from image processing.
Game Development
Python is a popular choice for game developers. The PyGame library is extensively used for building games for desktop as well as for mobile platforms. PyGame applications can be installed on Android too.
Embedded Systems and IoT
Another important area of Python application is in embedded systems. Raspberry Pi is a very popular yet a low-cost single-board computer. It is being extensively used in automation products, robotics, IoT, and kiosk applications. Popular microcontrollers like Arduino are used in many IoT products and are being programmed with Python. A lightweight version of Python called Micropython has been developed especially for microcontrollers. A special Micropython-compatible controller called PyBoard has also been developed.
Android Apps
Although Android apps are predominantly developed using Android SDK, which is similar to Java, Python can also be used to develop Android apps. Python’s Kivy library has all the functionalities required for a mobile application.
Automated Jobs
Python is extremely useful and widely used for automating CRON (Command Run ON) jobs. Certain tasks like backups, defined in Python scripts can be scheduled to be invoked automatically by the operating system scheduler to be executed at predefined times.
Python is embedded as a scripting language in many popular software products. This is similar to VBA used for writing macros in Excel, PowerPoint, etc. Python API is integrated with Maya, PaintShop Pro, etc.
Rapid Development Tool
Standard distribution of Python as developed by Rossum and maintained by Python Software Foundation is called CPython which is a reference implementation. Its alternative implementations – Jython the JRE implementation of Python and IronPython – the .NET implementation, interact seamlessly with Java and C#, respectively. For example Jython can use all Java libraries such as Swing etc. So the development time can be minimized by using simpler Python syntaxes and Java libraries for prototyping the software product.