Python is a highly popular programming language, adored by developers worldwide. There are numerous features and benefits attached to this wonderful language, reason enough to justify its popularity big time. But at the same time, there are certain negatives that are attached to Python, reasons enough why some people dislike it.

What is good in Python?

Much can be said and written about the niceties of Python, below is just a glimpse of what it showcases:

  1. A vast ecosystem of excellent third-party libraries
  2. Leveraged by many applications domains
  3. Object-oriented and procedure-oriented
  4. Easy to code and read
  5. Multiple inheritance
  6. Interpreted and expressive language
  7. Extensible, cross-platform, portable, integrated, open-source, free
  8. Dynamic memory allocation

What is being disliked in Python?

  1. Reliance on Indentation for Creation of Blocks of Code

There has been a resentment that Python depends totally on indentation for creating blocks of code, instead of curly braces. It is difficult to find out where the function completes. If it is a small function, it is fine but if the function is large, it does create a problem.

Due to this, the code is not very clear and understandable. Especially when developers are using conditions, the indentation creates a great deal of confusion. Some like this forced indentation because it brings along consistency, but most do not approve of it since it gets along with the wrong kind of consistency.

  1. Parallel Existence to Various Versions of Python

For Python, it has been synonymous to have multiple versions of Python working in parallel. They may even be used alongside each other, leading to confusion. At some time, certain components work fine in one release whereas the others work fine in the other release.

Python 2 and Python 3 existed together and hence certain programs that work perfectly well on your device may not work on other devices if the version of Python differs. This is now reducing but there are many who are troubled with this issue.

  1. Slow Performance as Compared to Peers

Python is known for its clean code and coherence. It has never boasted about speed. It was never meant to be very fast in performance. There are many who are complaining about Python being slow, without looking at their own coding styles. Multi-threaded concurrency is a weak spot of Python for CPU-based activities.

When there is a computational activity or I/O-related task, its speed may not match the goodness of other languages. It has a high function invocation overhead. Developers must take up caching, bloom filters, appropriate data structures, etc. for getting the best speed from Python applications.

  1. Python May Not Fit Large Scale Applications

Many feel that Python is not suitable for large-scale projects since it is a scripting language and hence does not scale appropriately. This may prove true in some cases but not in all. There have been instances when large applications have worked well with Python.

 Even if there are troubles in executing large applications with Python, there are remedies like using modules, segregating the project into multiple packages, and supporting object-oriented programming that can bring out good results.

  1. Python Has Inbuilt Global Functions

Python showcases some inbuilt global functions like print () or len (). They are called the Python globals (). Object-oriented languages do not have any global functions. Many feel that functions like length must be a part of the object and not a global function.

In languages like Java, length is obtained by evoking a method on the object. There is sort of a subjective allocation of some operations to global functions which may not be liked by all developers.

  1. Python is a Typeless Scripting Language

Python has been a popular scripting language with great features and fast scripting. It offers dynamic typing and is strongly typed. That means the type of an object cannot be changed once it is built. If it is tried, there will be an error raised.

It is considered weakly typed by many. Whenever there are large programs, Type safety must be ensured for having a consistent and trustworthy application. Developers must understand this.

  1. Implementation of Global Interpreter Lock (GIL)

All programming languages of today support multi-threading and have their own concurrency basics. The Python interpreter can execute only one thread simultaneously even though it has a threading module.

The reason is the presence of the Global Interpreter Lock. The GIL has been responsible for creating a controversial scenario since all devices do have multiple processors now. This leads to a restriction on applications that are heavy on the computing side and are simultaneous.

  1. Creating Documentation is Tiresome

There are documentation websites that do the documentation for Python, but they are not generated from Python. Building documentation for Python is tiring, especially when it is tried within the language itself. It is better done from outside the language.

If developers find it difficult to get relevant documentation, they go ahead with packages with no web documentation at all. In such cases, it becomes very tough for them to use it effectively, especially for novices.

  1. Utilization of Whitespace as Syntax

Python makes use of whitespace as syntax. This makes the code clumsy, less friendly, and hence not developer friendly. Whenever whitespace is used as a syntax, it makes different components like loops, classes, conditional statements, etc. hard to understand. There has been an uneven usage of tabs and spaces felt by many programmers.

  1. Chaotic Build Approach

Many think that creating a Python project with project dependencies being imported is quite a jumbled task. Using different libraries for various tasks takes its own toll. It is said not to utilize the system installed in Python whenever any type of development is being done.

Winding up

The above points that are disliked by Python developers, the world over are important to know but that does not harm or disturb the supremacy that Python rules, in the world of programming languages. Python has established itself as a powerful language amidst the community of programmers and researchers.

This analysis is mainly for newbies to be aware of what is not in store for them. Nevertheless, there is no looking back for Python and it holds a bright future!