31Aug 2019

Why is Python One of the Most Popular Programming Languages in 2019?

According to surveys, python is the second most popular programming language of the year 2018 after javascript. What is actually python? What makes python this popular? Python is a high-level programming language created by Guido van Rossum and released in 1991. Rossum named it python because he used to enjoy British comedy group Monty Python. Python 2.0 was released in the year 2000 and its major revision, 3.0 was released in 2008. In this article, we will discuss python features and why it is so popular.

Features of Python

Syntax

The syntax of python is much simple when compared to other languages such as Java and C/C++. Python is an expressive language. It is very easy to read and understand. Let’s compare the hello world program of Python, Java, and C.

Hello World in C

#include <stdio.h>
int main() {
    printf("Hello World!\n");
}

Hello World in Java

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

Hello World in python

print('Hello World!')

We can clearly see that python’s syntax is much simpler than the other two. It is not even mandatory to use semicolons in python.

Interpreted Language

Python is an interpreted programming language. The code in python is executed line by line. This is very effective for debugging and testing.

Object-Oriented Programming

Python supports object-oriented programming. Even, it is found that using object-oriented concepts in python is much simpler when compared to other object-oriented languages such as Java and C/C++.

Standard Library

Python’s standard library is large, full of rich modules and functions. The standard library of python is very useful in rapid application development.

Open Source

Python is free to download and it is open-source as well.

GUI Support

Python can also be used for creating impressive graphical user interfaces. The modules such as PyQt5, wxPython, PyQt4 or Tk can be used for GUI programming. PyQt5 is the most popular GUI module when it comes to GUI programming in python.

Cross-Platform

Python is a cross-platform programming language. Python code can run on Windows, Linux, Unix, and mac without providing any specifications for a particular platform.

Dynamic Type Language

This is another awesome feature for developers. Python does not require to specify the data type of a variable in advance, instead, the type of a variable is decided at run-time only.

High Level

Python is a high-level programming language. This makes it more programmer-friendly. A programmer does not need to remember the architecture nor he needs to worry about memory management.

Extensible

Python is an extensible language as its code can also be written in other programming languages such as C++.

Web Development Using Python

Web Development Using Python

Python is quite popular in the web development world. There are many python frameworks that are used for full-stack as well as non-full-stack web development. A framework is nothing but a collection of modules and packages that allows a developer to build a web application without handling low-level activities such as process management or thread management, and protocols management, etc. Let’s discuss some of the most popular python web frameworks.

Full-Stack Web Frameworks

Django

Django is one of the most popular full-stack python web frameworks. It is a high-level, open-source framework that was created to ease the creation of web development. It is based on the model-template-view (MTV) architecture.

Features:

  • Full-loaded – Django handles common web development tasks such as content administration, user authentication, site maps, RSS feeds, etc. We don’t need to look for third-party modules because everything comes with Django.
  • Documentation – When using a full-stack web framework, documentation plays a very important part. Django’s documentation is well-maintained. It becomes easy for a beginner to start when documentation is properly maintained.
  • Rapid development – Django provides rapid development.

Web2py

Web2py is an open-source cross-platform python framework that is used for full-stack web development. It allows the developer to build web applications quickly. The development is simple in Web2py through SQL database, a web server, and a web-based interface. The application management is done through web browsers. It has many built-in components to manage cookies, reactions, HTTP requests, and sessions.

Features:

  • Cross-platform – Web2py is a cross-platform web framework that runs on Windows, Unix/Linux, Mac, Amazon EC2, Google App Engine, and almost any web hosting via Python 2.7/3.5/3.6/pypy.
  • Easy to set up – Setting up a framework is always a headache, especially for beginners. Web2py requires no configuration and no installation.
  • Connecting to database – Web2py can easily connected to almost every popular databases such as MySQL, MSSQL, SQLite, PostgreSQL, FireBird, IBM DB2, Sybase, Oracle, Informix, Ingres, Google App Engine and MongoDB.

Turbo Gears

Turbo Gears is another open-source python web framework that is very popular. Turbo Gears overcome many drawbacks of other popular web frameworks.

Features:

  • Easy integration – It can be easily integrated with the MochiKit Javascript library.
  • Database support – Turbo Gears supports many popular databases
  • Command-line tools – Many command-line tools are also available.

Non Full-Stack Frameworks

Flask

Flask is one of the most popular lightweight python web frameworks that is used for small and easy projects. It is based on Werkzeug, and Jinja 2.

Features:

  • Easy to use – Flask is very easy to use. A user with experience in python can easily build applications using the flask.
  • Compatible – Flask is compatible with the Google app engine.
  • It also provides built-in development debugger and server.

CherryPy

CherryPy is a Minimalist web framework that uses the concept of object-oriented programming to build web applications.

Features:

  • Built-in tools – CherryPy has Built-in tools for sessions, caching, encoding, static content, authentication, and many more.
  • CherryPy at one time can run on multiple HTTP servers.

Object-Oriented Programming in Python

One of the main features of python is its support for object-oriented programming. Here we will discuss a simple example of using object-oriented programming concepts in python.

class Dog:

    def __init__(self, dogName, dogBreed, dogAge):
        self.dogName = dogName
        self.dogBreed = dogBreed
        self.dogAge = dogAge

    def getValues(self):
        print("name: ", self.dogName)
        print("breed: ", self.dogBreed)
        print("age: ", self.dogAge)

Rambo = Dog("Rambo", "Pitbull", 5)

Max = Dog("Max", "Labrador", 2)


Rambo.getValues()

Max.getValues()

Observe the above python code. This code contains one class and two instances of it. Let’s discuss this code step by step.

First, we declared a class, Dog using the class keyword.

class Dog:

Then we created the constructor of the Dog class using the __init__ method.

def __init__(self, dogName, dogBreed, dogAge):
        self.dogName = dogName
        self.dogBreed = dogBreed
        self.dogAge = dogAge

The constructor will invoke every time when the object of the Dog class will be created. There can be two types of constructors in python – default and parameterized. The default constructor does not have any parameters while parameterized has. In our code, we have a parameterized constructor as we are passing three values to it: dogName, dogBreed, dogAge. The constructor is assigning values that are passed to it.

Note: Self is always the first parameter of constructor and methods of a class. The self keyword is used to access the attributes of the class.

Then we have a method – getValues. This method will print the data stored in the object.

def getValues(self):
        print("name: ", self.dogName)
        print("breed: ", self.dogBreed)
        print("age: ", self.dogAge)

Now we have created a class, its constructor and one method. How can we access them? We have to create an instance or object of the Dog class. In the code, we created two objects of the Dog class – Rambo and Max.

Rambo = Dog("Rambo", "Pitbull", 5)

Max = Dog("Max", "Labrador", 2)

We can see that three values are passed to the constructor. These values can be accessed using the getValues method we created earlier. Let’s see how can we invoke this method using the objects.

Rambo.getValues()
Max.getValues()

This is how to invoke methods of a class using an object. Let’s see the output.

Difference Between Python 2.x and 3.x

Difference Between Python 2.x and 3.x

Python 3 is actually the revised version of python 2. There are many differences between the versions. Let’s discuss some of the important differences.

Print Functions

The most important difference in both version – print function.

print 'Hello World!' #python 2.x

print('Hello World!) #python 3.x

xrange Function

The xrange() does not exist in python 3.x. It is replaced by the range().

for i in range(0,5): #correct way in python 3.x
	print(x)
	
for i in xrange(0,5): #This will throw NameError
	print(x)

Error Handling

Error Handling

Error handling is slightly different, since ‘as’ keyword is used in Python 3.x

try: 
    trying_to_check_error 
except NameError, err: 
    print err, 'Error Caused'   # Python 2.x
	
try: 
     trying_to_check_error 
except NameError as err: # 'as' is required in Python 3.x 
     print (err, 'Error Caused')

Divison Operator

The result of the division operation in both versions is different.

print 7 / 5
print -7 / 5    
  
'''
Python 2.x :
1 
-2 
Python 3.x : 
1.4 
-1.4 
'''

Disadvantages of Python

  • Python is slower when compared to C/C++.
  • Python is not a good programming language for mobile application development.
  • Because python is a dynamically typed language, it is not good for memory-intensive tasks.
  • There are limitations when it comes to database accesses.
  • Errors are only displayed on runtime.

Conclusion

Python is one of the most popular and widely used programming languages. There are reasons for it. It is programmer-friendly. Python is for beginners. When compared to programming languages such as Java, C/C++, it is quite easy to learn and understand. Moreover, Python is perfect for web development. There are many full-stack and non full-stack web frameworks that use python. Overall, Python is one of the best choices when it comes it programmer-friendly programming language.

Acodez is a leading website design and web development company in India. We offer all kinds of web design and web development services to our clients using the latest technologies. We are also a leading digital marketing company providing SEO, SMM, SEM, Inbound marketing services, etc at affordable prices. For further information, please contact us.

Looking for a good team
for your next project?

Contact us and we'll give you a preliminary free consultation
on the web & mobile strategy that'd suit your needs best.

Contact Us Now!
Jamsheer K

Jamsheer K

Jamsheer K, is the Tech Lead at Acodez. With his rich and hands-on experience in various technologies, his writing normally comes from his research and experience in mobile & web application development niche.

Get a free quote!

Brief us your requirements & let's connect

Leave a Comment

Your email address will not be published. Required fields are marked *