There are many problems with computer programming languages.  This is one reason why there are always more languages coming out.  Among these problems is the garbage collecting in Java, the use of parenthesis in LISP, and the difficulty to do normal functions in prolog.  A major flaw with Python is the fact you have to type self in every class you create instead of it being assumed that it exists.

‘Self’ is needed currently to know you are talking about a class specific variable, function, or object.  Without the ‘self’ you would not be able to create as intricate of GUI’s or use logical variable names.  In C++ or Java ‘self’ is automatically known as ‘this’, and you don’t have to type it or call it every time you try to do something in a class.  The use of ‘this’ would save tremendous amounts of time in intricate programs and would make it easier to see when you call an object, variable, or function from a different class.

 

Currently you type:

 

class Main_Window:  

def __init__(self, parent):

#add the canvas for the graph

self.pop_canvas = Canvas(parent, width = 200, height = 200, background = "red")

self.pop_canvas.pack(anchor = N, side = LEFT)

#make the canvas for graph of work on garden

self.garden_canvas = Canvas(parent, width = 200, height = 200, background = "green")

self.garden_canvas.pack(anchor = N, side = RIGHT)

 

Instead you would type:

 

class Main_Window:       

        def __init__(parent):

        #add the canvas for the graph

        pop_canvas = Canvas(parent, width = 200, height = 200, background = "red")

        pop_canvas.pack(anchor = N, side = LEFT)

       #make the canvas for graph of work on garden

        garden_canvas = Canvas(parent, width = 200, height = 200, background = "green")

        garden_canvas.pack(anchor = N, side = RIGHT)

 

            One drawback to adding this feature would confusion between global and class object, variables, and functions, since Python doesn’t declare things in the same manner as C++ or Java.  But if there was a way to improve the way those were declared it would make declarations of variables more uniform across another language and make it easier for programmers to pick up a new language without having as many syntax errors for simple concepts.