Thursday, 4 April 2019

Python Programming Language


1.                   What is Python
2.                   Why the name Python?
3.                   Why Python has become so popular
4.                   Features of Python
5.                   What type of applications can be built using Python
6.                   Where is Python used mostly?
7.                   Python for Data Analytics and Machine Learning
8.                   Python for Big Data
9.                   Python for Robotics

What is Python

Python is a general-purpose interpreted, interactive, object-oriented, and very high-level programming language. It was created by Guido van Rossum during 1985- 1990. So first version appeared in 1990.

Guido van Rossum

Why the name Python?

No. It wasn't named after a dangerous snake. Rossum was fan of a comedy series from late seventies. The name "Python" was adopted from the same series "Monty Python's Flying Circus".

Why Python has become so popular

As compared to other languages, Python has soared in popularity, thanks to its ease of use and less time required.E.g.  when compared to other languages such as Java or C/C++, one has to write fewer lines of code in Python

If we look at the philosophy of the Python language, you can say that this language was built for its readability and less complexity. You can easily understand it and make someone understand very fast.

Did you know it’s now the most popular introductory teaching language in U.S. universities?

Features of Python

1.                   A simple language which is easier to learn
Python has a very simple and elegant syntax. It's much easier to read and write Python programs compared to other languages like: C++, Java, C#. Python makes programming fun and allows you to focus on the solution rather than syntax.
If you are a newbie, it's a great choice to start your journey with Python.

2.                   Free and open-source
You can freely use and distribute Python, even for commercial use. Not only can you use and distribute software written in it, you can even make changes to the Python's source code.
Python has a large community constantly improving it.

3.                   Platform Independent
When a python program is compiled using a Python compiler, it generates bytecode (like Java bytecode). Python’s bytecode can run on all Operating Systems and Hardware via PVM (Python Virtual Machine) like JVM for Java.

4.                   Portability
You can move Python programs source code from one platform to another, and run it without any changes.
It runs seamlessly on almost all platforms including Windows, Mac OS X, Solaris and Linux.

5.                   Extensible
Ex1: Jython is useful to integrate Java code into Python programs and run on JVM (Java Virtual Machine). Jython takes the Python programming language syntax and enables it to run on the Java platform.
Ex2: Iron Python is useful to integrate .NET programs into Python programs and run on CLR (Common Language Runtime)

6.                   Embeddable
Enrich your C/C++ application by embedding Python in it. Embedding provides your application with the ability to implement some of the functionality of your application in Python rather than C or C++. This can be used for many purposes; one example would be to allow users to tailor the application to their needs by writing some scripts in Python. You can also use it yourself if some of the functionality can be written in Python more easily.

7.                   A Very high-level, interpreted language
Unlike C/C++, you don't have to worry about daunting tasks like memory management.
Likewise, when you run Python code, it automatically converts your code to the language your computer understands. You don't need to worry about any lower-level operations.

8.                   Large standard libraries to solve common tasks
Python has a number of standard libraries which makes life of a programmer much easier since you don't have to write all the code yourself. Standard libraries in Python are well tested and used by hundreds of people. So you can be sure that it won't break your application.

9.                   Huge Libraries for various domains
Python has a rich set of modules for different programming domains – like PyMySQL  to access MySQL DB, pymongo to access MongoDB, Tkinter for GUI Programming, numpy for numerical processing, pandas for Data Analysis/querying, seaborn for Data Visualizations, scikit-learn for machine learning etc

10.               Object-oriented
Everything in Python is an object. Object oriented programming (OOP) helps you solve a complex problem intuitively.
With OOP, you are able to divide these complex problems into smaller sets by creating objects.

11.               Dynamically typed
In Python, we need not declare anything. An assignment statement binds a name to an object. Recollect that languages like C,C++ and Java are statically typed.

What type of applications can be built using Python

·         Data Analysis and Data Visualizations
·         Machine Learning
·         Big Data (pydoop, pyspark)
·         Robotics
·         Web Apps (YouTube, Quora, Instagram,NetFlix)
·         Desktop GUI Apps
·         Computer Graphics / Game Development
·         etc

Where is Python used mostly?

·         Data Analytics(Data Analysis, Data Visualizations)&Machine Learning
·         Robotics

Early on at Google, there was an engineering decision to use “Python where we can, C++ where we must.” Python was used for parts that required rapid delivery and maintenance. Then, they used C++ for the parts of the software stack where it was important to have very low latency and/or tight control of memory. 

Python for Data Analytics and Machine Learning

Packages, Packages everywhere !

Yes you guessed it right. It’s the collection and code stack of various open source repositories which is developed by people (still in process ) to continuously improve upon the existing methods.

·         Want to work with images — numpy, opencv, scikit
·         Want to work in text — nltk, numpy, scikit
·         Want to work in audio — librosa
·         Want to solve machine learning problem — pandas, scikit
·         Want to see the data clearly — matplotlib, seaborn, scikit
·         Want to use deep learning — tensorflow, pytorch
·         Want to do scientific computing — scipy
·         Want to integrate web applications — Django

Python for Big Data

Python provides a huge number of libraries to work on Big Data. You can also work – in terms of developing code – using Python for Big Data much faster than any other programming language. These two aspects are enabling developers worldwide to embrace Python as the language of choice for Big Data projects.

Hadoop is the most popular open-source big data platform and the inherent compatibility of Python is yet another reason to prefer it over other languages.

Python can be used to write Hadoop MapReduce programs and applications to access HDFS API for Hadoop using the Pydoop package

One of the biggest advantage of Pydoop is the HDFS API. This allows you to connect to an HDFS installation, read and write files, and get information on files, directories and global file system properties seamlessly.

The MapReduce API of Pydoop allows you to solve many complex problems with minimal programming efforts. Advance MapReduce concepts such as ‘Counters’ and ‘Record Readers’ can be implemented in Python using Pydoop.

Python for Robotics

There has been a huge resurgence of Python in recent years especially in robotics. One of the reasons for this is probably that Python (and C++) are the two main programming languages found in ROS.

Like Java, it is an interpretive language. Unlike Java, the prime focus of the language is ease of use. Many people agree that it achieves this very well. Python dispenses with a lot of the usual things which take up time in programming, such as defining and casting variable types.

There are a huge number of free libraries for it, which means you don't have to "reinvent the wheel" when you need to implement some basic functionality. And since it allows simple bindings with C/C++ code, this means that performance heavy parts of the code can be implemented in these languages to avoid performance loss. As more electronics start to support Python "out-of-the-box" (as with Raspberry Pi), we are likely to see a lot more Python in robotics.


CUSTOMER RELATIONSHIP MANAGEMENT This booklet is designed to help small and medium business owners understand the basic...