History or Philosophy of Python
Introduction
{tocify} $title= {Table
of Contents}
This
tutorial provides a comprehensive and in-depth introduction to the Python
language. Python version 3, which is the latest and the correct one! It differs
from other tutorials in that it provides many examples, exercises and many
easy-to-understand charts and graphs. The course is aimed at both beginners and
intermediate to experienced programmers or developers who are looking for
differences to other programming languages.
A
main focus in the creation of this tutorial is that the content is suitable for
self-study.
Yes,
Python is an easy to learn programming language, easier than many other
programming languages. Still, many need a little extra help and explanation. In
this introduction we offer this in a form that is both easy to understand, but
also never loses sight of the necessary technical depth. The depths that
especially experienced programmers are are looking for and are interested in.
For newbies, it is also important that they learn the interrelationships and
special features of Python right from the start.
History and Philosophy of Python
Easy as
ABC
What
do the alphabet and the programming language Python have in common? Right, both
start with ABC. If we are talking about ABC in the Python context, it's clear
that the programming language ABC is meant. ABC is a general-purpose
programming language and programming environment, which was developed in the
Netherlands, Amsterdam, at the CWI (Centrum Wiskunde & Informatica). The
greatest achievement of ABC was to influence the design of Python.
Python
was conceptualized in the late 1980s. Guido van Rossum worked that time in a
project at the CWI, called Amoeba, a distributed operating system. In an
interview with Bill Venners1, Guido van Rossum said: "In the early 1980s,
I worked as an implementer on a team building a language called ABC at Centrum
voor Wiskunde en Informatica (CWI). I don't know how well people know ABC's
influence on Python. I try to mention ABC's influence because I'm indebted to
everything I learned during that project and to the people who worked on
it."
Later
on in the same Interview, Guido van Rossum continued: "I remembered all my
experience and some of my frustration with ABC. I decided to try to design a
simple scripting language that possessed some of ABC's better properties, but
without its problems. So I started typing. I created a simple virtual machine,
a simple parser, and a simple runtime. I made my own version of the various ABC
parts that I liked. I created a basic syntax, used indentation for statement
grouping instead of curly braces or begin-end blocks, and developed a small
number of powerful data types: a hash table (or dictionary, as we call it), a
list, strings, and numbers."
Comedy, Snake or Programming Language
So, what about the name
"Python"? Most people think about snakes, and even the logo depicts
two snakes, but the origin of the name has its root in British humour. Guido
van Rossum, the creator of Python, wrote in 1996 about the origin of the name of
his programming language 1: "Over six years ago, in December 1989, I was
looking for a 'hobby' programming project that would keep me occupied during
the week around Christmas. My office ... would be closed, but I had a home
computer and not much else on my hands. I decided to write an interpreter for
the new scripting language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a working title for
the project, being in a slightly irreverent mood (and a big fan of Monty
Python's Flying Circus)."
Python
History and Versions
- Python laid its foundation in
the late 1980s.
- The implementation of Python
was started in December 1989 by Guido Van Rossum at CWI in
Netherland.
- In February 1991, Guido Van Rossum published
the code (labeled version 0.9.0) to alt.sources.
- In 1994, Python 1.0 was
released with new features like lambda, map, filter, and reduce.
- Python 2.0 added new features
such as list comprehensions, garbage collection systems.
- On December 3, 2008, Python
3.0 (also called "Py3K") was released. It was designed to
rectify the fundamental flaw of the language.
- ABC programming language is said to be the
predecessor of Python language, which was capable of Exception Handling
and interfacing with the Amoeba Operating System.
- The following programming
languages influence Python:
- ABC language.
- Modula-3
Why the Name Python?
There is a fact
behind choosing the name Python. Guido van Rossum was reading the
script of a popular BBC comedy series "Monty Python's Flying
Circus". It was late on-air 1970s.
Van Rossum wanted to
select a name which unique, sort, and little-bit mysterious. So he decided to
select naming Python after the "Monty Python's Flying Circus" for their newly
created programming language.
The comedy series was
creative and well random. It talks about everything. Thus it is slow and
unpredictable, which made it very interesting.
Python is also
versatile and widely used in every technical field, such as Machine Learning, Artificial Intelligence, Web
Development, Mobile
Application,
Desktop Application, Scientific Calculation, etc.
The Zen of Python
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to
break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the
temptation to guess.
There should be one -- and preferably
only one -- obvious way to do it.
Although that way may not be obvious
at first unless you're Dutch.
Now is better than never.
Although never is often better than
*right* now.
If the implementation is hard to
explain, it's a bad idea.
If the implementation is easy to
explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
Python history: A timeline of different versions release
The first ever version of Python (i.e. Python 1.0) was introduced in 1991. Since its inception and introduction of Version 1, the evolution of Python has reached up to Version 3.x (till 2017).
Here is the brief chart depicting the timeline of the release of different versions of Python programming language.
Development Steps of Python
Guido
Van Rossum published the first version of Python code (version 0.9.0) at
alt.sources in February 1991. This release included already exception handling,
functions, and the core data types of list, dict, str and others. It was also
object oriented and had a module system.
Python
version 1.0 was released in January 1994. The major new features included in
this release were the functional programming tools lambda, map, filter and
reduce, which Guido Van Rossum never liked.
Six
and a half years later in October 2000, Python 2.0 was introduced. This release
included list comprehensions, a full garbage collector and it was supporting
unicode.
Python
3.7.3 is the latest version.
The
two of the most used versions has to Python 2.x & 3.x. There is a lot of
competition between the two and both of them seem to have quite a number of
different fanbase.
For
various purposes such as developing, scripting, generation and software
testing, this language is utilized. Due to its elegance and simplicity, top
technology organizations like Dropbox, Google, Quora, Mozilla, Hewlett-Packard,
Qualcomm, IBM, and Cisco have implemented Python.
Python
has come a long way to become the most popular coding language in the world.
Python has just turned 30, but it still has that unknown charm & X factor
which can be clearly seen from the fact that Google users have consistently
searched for Python much more than they have searched for Kim Kardashian,
Donald Trump, Tom Cruise etc.
Python
has been an inspiration for many other coding languages such as Ruby, Cobra,
Boo, CoffeeScript ECMAScript, Groovy, Swift Go, OCaml, Julia etc.
Python flourished for another 8 years in the
versions 2.x before the next major release as Python 3.0 (also known as
"Python 3000" and "Py3K") was released. Python 3 is not
backwards compatible with Python 2.x. The emphasis in Python 3 had been on the
removal of duplicate programming constructs and modules, thus fulfilling or
coming close to fulfilling the 13th law of the Zen of Python: "There
should be one -- and preferably only one -- obvious way to do it."
Tips to Keep in Mind While Learning Python
The most common
question asked by the beginners - "What is the best way to learn Python"? It is the
initial and relevant question because first step in learning any programming
language is to know how to learn.
The proper way of
learning will help us to learn fast and become a good Python developer.
In this section, we
will discuss various tips that we should keep in mind while learning Python.
1. Make it Clear Why We Want to Learn
The goal should be
clear before learning the Python. Python is an easy, a vast language as well.
It includes numbers of libraries, modules, in-built functions and data
structures. If the goal is unclear then it will be a boring and monotonous
journey of learning Python. Without any clear goal, you perhaps won't make it
done.
So, first figure out
the motivation behind learning, which can anything be such as knowing something
new, develop projects using Python, switch to Python, etc. Below are the
general areas where Python is widely used. Pick any of them.
- Data Analysis and Processing
- Artificial Intelligence
- Games
- Hardware/Sensor/Robots
- Desktop Applications
Choose any one or two
areas according to your interest and start the journey towards learning Python.
2. Learn the Basic Syntax
It is the most
essential and basic step to learn the syntax of the Python programming
language. We have to learn the basic syntax before dive deeper into learning
it. As we have discussed in our earlier tutorial, Python is easy to learn and
has a simple syntax. It doesn't use semicolon and brackets. Its syntax is like
the English language.
So it will take
minimum amount of time to learning its syntax. Once we get its syntax properly,
further learning will be easier and quicker getting to work on projects.
Note - Learn Python 3,
not Python 2.7, because the industry no longer uses it. Our Python tutorial is
based on its latest version Python 3.
3. Write Code by Own
Writing the code is
the most effective and robust way to learn Python. First, try to write code on
paper and run in mind (Dry Run) then move to the system. Writing code on paper
will help us get familiar quickly with the syntax and the concept store in the
deep memory. While writing the code, try to use proper functions and suitable
variables names.
There are many
editors available for Python programming which highlights the syntax related
issue automatically. So we don't need to pay lot of attention of these
mistakes.
4. Keep Practicing
The next important
step is to do the practice. It needs to implementing the Python concepts
through the code. We should be consistence to our daily coding practice.
Consistency is the
key of success in any aspect of life not only in programming. Writing code
daily will help to develop muscle memory.
We can do the problem
exercise of related concepts or solve at least 2 or 3 problems of Python. It
may seem hard but muscle memory plays large part in programing. It will take us
ahead from those who believe only the reading concept of Python is sufficient.
5. Make Notes as Needed
Creating notes by own
is an excellent method to learn the concepts and syntax of Python. It will
establish stability and focus that helps you become a Python developer. Make
brief and concise notes with relevant information and include appropriate
examples of the subject concerned.
Maintain own notes
are also helped to learn fast. A study published in Psychological Science that
-
The students who were taking longhand notes in the studies were
forced to be more selective — because you can't write as fast as you can type.
6. Discuss Concepts with Other
Coding seems to be
solitary activity, but we can enhance our skills by interacting with the
others. We should discuss our doubts to the expert or friends who are learning
Python. This habit will help to get additional information, tips and tricks,
and solution of coding problems. One of the best advantages of Python, it has a
great community. Therefore, we can also learn from passionate Python
enthusiasts.
7. Do small Projects
After understanding
Python's basic concept, a beginner should try to work on small projects. It
will help to understand Python more deeply and become more component in it.
Theoretical knowledge is not enough to get command over the Python language.
These projects can be anything as long as they teach you something. You can
start with the small projects such as calculator app, a tic-toc-toe game, an
alarm clock app, a to-do list, student or customer management system, etc.
Once you get handy
with a small project, you can easily shift toward your interesting domain
(Machine Learning, Web Development, etc.).
8. Teach Others
There is a famous
saying that "If you want to learn something then you should teach
other". It is also true in case of learning Python. Share your
information to other students via creating blog posts, recording videos or
taking classes in local training center. It will help us to enhance the
understanding of Python and explore the unseen loopholes in your knowledge. If
you don't want to do all these, join the online forum and post your answers on
Python related questions.
9. Explore Libraries and Frameworks
Python consists of
vast libraries and various frameworks. After getting familiar with Python's
basic concepts, the next step is to explore the Python libraries. Libraries are
essential to work with the domain specific projects. In the following section,
we describe the brief introduction of the main libraries.
- TensorFlow - It is an artificial
intelligence library which allows us to create large scale AI based
projects.
- Django - It is an open source
framework that allows us to develop web applications. It is easy,
flexible, and simple to manage.
- Flask - It is also an open
source web framework. It is used to develop lightweight web applications.
- Pandas - It is a Python library
which is used to perform scientific computations.
- Keras - It is an open source
library, which is used to work around the neural network.
There are many
libraries in Python. Above, we have mentioned a few of them.
10. Contribute to Open Source
As we know, Python is
an open source language that means it is freely available for everyone. We can
also contribute to Python online community to enhance our knowledge.
Contributing to open source projects is the best way to explore own knowledge.
We also receive the feedback, comments or suggestions for work that we
submitted. The feedback will enable the best practices for Python programming and
help us to become a good Python developer.
Usage of Python
Python is a general
purpose, open source, high-level programming language and also provides number
of libraries and frameworks. Python has gained popularity because of its
simplicity, easy syntax and user-friendly environment. The usage of Python as
follows.
- Desktop Applications
- Web Applications
- Data Science
- Artificial Intelligence
- Machine
Learning
- Scientific Computing
- Robotics
- Internet of Things
(IoT)
- Gaming
- Mobile Apps
- Data Analysis and
Preprocessing
Some changes in Python 3.0:
Print is now a function .Views and iterators instead of lists
The
rules for ordering comparisons have been simplified. E.g. a heterogeneous list
cannot be sorted, because all the elements of a list must be comparable to each
other.
There
is only one integer type left, i.e. int. long is int as well.
The
division of two integers returns a float instead of an integer. "//"
can be used to have the "old" behaviour.
Text
Vs. Data Instead Of Unicode Vs. 8-bit