Directory Image
This website uses cookies to improve user experience. By using our website you consent to all cookies in accordance with our Privacy Policy.

What Are Some Faults In Python’s Language Design?

Author: Rebecca Spears
by Rebecca Spears
Posted: Apr 07, 2016

None of the language / software / framework is 100% efficient. It indicates that the features are prone to changes to carry improvement over the existing one. As like any other languages, Python has some of the faulty language designs which are being checked and improved under shadow of python development Services.

Some faults in Python language design
  1. Lambda functions take expressions only, which strictly limit their efficacy. It is not possible to print without writing a packaging for print. It is also not possible to use an if-statement if you must be a ternary conditional operator. This makes more advanced uses of lambda difficult or impossible.
  2. The GIL (or Global Interpreter Lock) is a nasty design issue which forces Python byte encryption execution to go through an explicit interpreter lock while executing on simultaneous kernel-level threads. The origination of GIL is because Python’s memory allocation was not thread-safe, but they slowly grew into a larger problem as add-on to python began to rely on the GIL’s behavior.
  3. In python, arguments are initialized when function is defined not during each execution leading to issue in case argument is mutable. For example, dictionary or lists; in which case it behaves like a static variable existing over all call to that function.
  4. Python generally distinguishes between expressions and statements. In Ruby or JavaScript, almost every statement is an expression. In python some things that don’t have a value are, functions definitions and the related assignments. Thus Python lack real lambdas and there is probably no possible way to override the assignment "operator".
  5. Python lack the tail recursion, which makes the practitioners of functional programming frown. "Batteries" included in Python seems like a terrible idea in an era when it is so easy to install third-party modules. The standard library is full of crufty, poorly designed and cobbled together APIs. Many still prefer a "Batteries not included" python.

Some prominent faults include: Unicode handling, threading, and inconsistencies within the language, Pthreads with a GIL, lack of tail call recursion, urllib, circular imports and reference counting. In python, *args and **kwargs are often abused. It is also said to contain half-baked language features.

About the Author

Rebecca Spears is an expert developer at Laitkor Software Development Company and spends most of her time in researching about the best strategies for developing the effective tools to optimize the performance of online websites. She keeps eye on the

Rate this Article
Leave a Comment
Author Thumbnail
I Agree:
Comment 
Pictures
Author: Rebecca Spears

Rebecca Spears

Member since: Feb 08, 2016
Published articles: 3

Related Articles