Python History and Versions
History of Python starts from the late 1980s when Creator of the Python (Guido van Rossum) was working on a project “Amoeba”.
Amoeba was a micro-kernel-based distributed system built at CWI (Centrum Wiskunde & Informatica), an Amsterdam based Research Institute situated in Netherlands.
The reason behind to create python is mentioned by its creator in a blog. The below line is a precise note of that blog.
My original motivation for creating Python was the perceived need for a higher level language in the Amoeba project.
Python is well known for its simplicity and code readability. Python implementation starts in December 1989, and internally released at CWI in 1990. the initial release was capable of exception handling and had many other programmin features as well.
Python is available in two major versions 2.x and 3.x in the market. The version 2.0 was released in October 2000 and 3.0 in December 2008 respectively.
Python 2.7 was the last version of Python 2.x series and In November 2014, it was announced that Python 2.7 would be supported until 2020, but users were encouraged to move to Python 3 as soon as possible.
It is recommended to use Python3.x because Python 2.x series is no longer supported.
Here, we are listing Python versions and their features included in each version.
Python Version 0.9.0 Launched in Feb, 1991
- Classes, Inheritance, Exception Handling
- Core datatypes : List, dict, str
- Python module concept
Python Version 1.0 Launched in January, 1994
- Functional programming
- Functions : reduce(), map(), filter(), lambda()
Python Version 1.5 Launched in December, 1997
- Assert statement included
- Allowed to import hierarchical modules.
- "re" module included for regex
- Standard Exception classes included
- Dictionary methods included : clear(), copy(), update(), get()
- Interpreter was improved
Python Version 1.6 Launched in September, 2000
- New formatting options included for string
- New modules included : distutils, robotparser, linuxaudiodev, mmap, sre, zipfile etc.
Python Version 2.0 Launched in October, 2000
- List comprehensions
- Garbage collection system
- Augmented assignment operators
- New String methods
- Includes SAX2 interface support
Python Version 2.1 Launched in April, 2001
- Nested Scope included
- _future_ Directive
- Comparison methods included
- Function attributes
- Interactive Display Hook
- New Coercion Model
- Improvement in existing modules
Python Version 2.2 Launched in December, 2001
- Modify Type and classes
- Multiple Inheritance : diamond rule
- Included iterator interface
- Generator functions
- Unifying long integer and integer
- Unicode support enhanced
- New modules included : smtplib, imaplib, hmac etc.
Python Version 2.3 Launched in July, 2003
- New set module included
- Source code encoding
- Importing modules from zip archives
- Universal newline supports
- New function enumerate() included.
- Logging package added
- Boolean Type included
- datetime module included
Python Version 2.4 Launched in November, 2004
- Generator expressions
- Built-In set objects included
- String substitutions
- Reverse Iteration
- New Subprocess module
- Decimal datatype
- Multiline imports
Python Version 2.5 Launched in September, 2006
- Conditional expressions included
- Partial Function application
- Absolute and relative imports
- Unified try/except/finally
- ‘with’ statement included
- _index_ method included
Python Version 2.6 Launched in October, 2008
- Explicit Relative Imports From a Main Module
- Per-user site-packages Directory
- The multiprocessing Package
- Advanced String Formatting
- print As a Function
- Byte Literals
- New I/O Library
- Abstract Base Classes
- Integer Literal Support and Syntax
Python Version 3.0 Launched in December, 2008
In this version, Python was released with different style syntax. Major functions, classes and APIs were changed to new version.
- Introduced new syntax
- New approach for string formation
- print is a function now.
Python Version 3.1 Launched in June, 2009
- Ordered dictionaries
- Included Format specifiers for separators
- Added new modules : tkinter.ttk
- I/O library improved
Python Version 2.7 Launched in July, 2010
- Added ordered dictionary to collections
- Added Dictionary views
- Added memoryview Object
- Added new modules : importlib, sysconfig etc
Python Version 3.2 Launched in February, 2011
- Stable Application Binary Interface (ABI)
- Included argparse module
- Dictionary based configuration for logging
- Added concurrent.futures module
- Python web server gateway interface
- Modules improved : email, mailbox, nntplib etc.
- Math module updated
Python Version 3.3 Launched in September, 2012
- New modules : faulthandler, ipaddress, lzma, unittest etc.
- I/O exception hierarchy improved
- Security improvements
- Implicit Namespace Packages
- Flexible String Representation
- Python launcher for Windows
- Key-Sharing Dictionary
Python Version 3.4 Launched in March, 2014
- New modules added : asyncio, ensurepip, enum, statistics etc
- Modules improved : email, inspect, ipaddress etc.
- Security improvements
Python Version 3.5 Launched in September, 2015
- Added new modules : typing and zipapp
- Added formatting to bytes and bytearray
- New methods included : bytes.hex(), bytearray.hex(), memoryview.hex() etc
- Standard library improved
- Security improved
Python Version 3.6 Launched in December, 2016
- New Syntax added to the language
- Added new module : secrets
- Improved module : asyncio, datetime, typing, tracemalloc etc
- Security improved, new module added
- Improved support for Windows
- Underscore in numeric literals
Python Version 3.7 Launched in June, 2018
- Added new modules : contextvars, dataclasses, importlib.resources etc
- Improved Python data model
- New functions added to time module
- A function can have more than 255 parameters.
Python Version 3.8 Launched in October, 2019
- Assignment Expression
- Positional-only parameters
- Parallel filesystem cache for compiled bytecode files
Python Version 3.9 Launched in October, 2020 - Latest Version
- Dictionary Merge & Update Operators
- New removeprefix() and removesuffix() string methods
- Builtin Generic Types