Guido van Rossum began working on Python in the late 1980s as a successor to the ABC programming language and first released it in 1991 as Python 0.9.0. Python 2.0 was released in 2000.
If someone asks you what is Python programming then you can simply use these 5 terms to define Python:
1. General Purpose
2. Interpreted
3. Dynamically Typed
4. High Level
5. Multi-Paradigm
6. Open Source
General Purpose
Python could be used for Web development, Software development, Testing, Game development, Machine Learning, along with all cutting edge technology not just in Software Industry but also Medical Science, Automation, Robotics etc.
Interpreted
Each programming comes with a compiler and an interpreter. While working with Python we don’t have to worry about compilation of the program. Python take care of compilation by itself. We just have to interpret the program line by line. It makes easier for developers to execute only that part of code which they wants to execute. Otherwise in C, C++ or Java we first compile the whole code and then interpret that line by line.
Dynamically Typed
Programming could be statically typed or dynamically typed
In any of the programming if we define variables with a data type like int x = 10 then it makes variable x having a fixed size of memory. In this case it takes 4 bytes of memory because of int data type, so if memory is fixed then range of the variable would be fixed as well. Now you cannot exceed the range of int or you cannot put values of some other data types like String or Float. Programming like C, C++ and Java are statically typed. They have fixed memory size of variables depends on data type. On run time we cannot change there range or values to some other data type.
But in Dynamically Typed programming like Python we don’t have to define any data type. We initialize variables without any data type like x = 10, Python would take care of data type by itself. Memory will be decided during the execution of the program. We can put data without any range limitation and also we change value of x from int to string without type casting or anything.
High Level
High-level languages are designed to be used by the human operator or the programmer. They are referred to as "closer to humans." In other words, their programming style and context is easier to learn and implement than low-level languages, and the entire code generally focuses on the specific program to be created.
Multi-Paradigm
There are different kind of programming like Procedural, Object Oriented and Functional. Python supports all of them.
Open Source
One of the reason Python used a lot is because of Open Source. Python is free to use. All modern versions of Python are copyrighted under a GPL-compatible license certified by the Open Source Initiative.
The Python community
Perhaps most importantly, Python has an enormous user community. Python's popularity is both a cause and an effect of its community.
It was the #1 programming language in 2018, according to the IEEE Spectrum ranking, #2 "Most Loved" language, according to StackOverflow's 2019 Developer Survey.
Ultimate Support of Libraries
Python has a vast collection of libraries. For almost every task Python has some library. Few popular libraries are:
1. Bs4 – Beautiful Soup for web scraping
2. PyQT – For Desktop Application GUI
3. PyGame – For Game Development
4. Numpy – Numerical Python for N-Dimensional Array and Mathematical Computations
5. Pandas – Highly recommended for Data Analysis enthusiast
6. Matplotlib – For Plotting data on graphs like bar plot, histogram, pie charts
7. Plotly – One of the best library for Data Visualization with dynamic features
8. Streamlit – Convert any Python program into Web Application
9. Django – Most secured Web Development Framework
10. Sklearn – Scikit-Learn for Machine Learning
Why Choose Python?
1. Easy to use and learn
2. Hundreds of Libraries
3. No programming background required
4. Most used language in AI, which is the future.
5. Used by biggest tech giants like Google, Facebook, Netflix, Quora etc.
6. Line of code is too short to build any application