⇦ Ramen Development_

Python is so oversimplified that hides/create problems

Cover Image for Python is so oversimplified that hides/create problems

Disclaimer: This post is based on my experiences from scholar projects using Python 3.7 and VScode for IDE. Remember that this is a personal opinion.

Python, The programming language where the “You forgot the ;” meme doesn’t apply, where the tabulation and a colon replace the brackets. Those are some of the things that python offers. After all, Python is a high-level interpreted language. It's very easy to learn and use, it can help you to do/automatize tasks with very few code lines and do it in so little time, but also, it can cause you so many headaches.

First argument - Declarations of variables

Let’s start with a simple one. You need to assign something every time you declare a variable, everything is fine with primitive data types, but when it comes to creating a class, you can’t have multiple copy constructors, so if you need multiple ways to create a class and declare their attributes, you would insert NULL or invalid data, and it becomes a hell when you have too many parameters. Also, in my IDE, that is Vscode, and due to python is interpreted, when a class variable isn’t explicitly defined in the same file.

Example:

myChildClass = parentClass.getChildClass()
myChildClass.executeSomething()

This will not show you the functions or parameters that the class has, and you will be programming blindly, and you will have to pray that your syntax is correct, and you will wait until you run the script.

Second argument - Dynamic memory

Recently, I had an algorithm where you needed to have an auxiliary copy of a list, something easy to do in other languages cause it creates another new class, but python, along with his peculiar way to declare things, makes things like:

aux=var
print(var)
print(aux)

For python, this is just the same thing, because it just creates the same another variable with the same position, and the way to solve it is when you know how the constructor is:

aux=Class(var.part1(),var.part2())

This is just a minimal thing, but when it becomes to create an auxiliary list from another is IMPOSSIBLE (at least in these ways).

#First Way
list1 = list2

#Second way
for i in list2:
  list1.append(i)

#Third way
list3=list2
list2=[]
list1=list3

In these three ways, list1 and list2 are just going to be the same for the entire program, if you modify one, it modifies the other one.

Third argument - Everything is an object

With this one, i'm just going to go straight into an example

Example:

class(i.getX,i.getY)

You probably noticed that maybe I would refer to calling a function, and not just a ‘parameter’ because there’s no ‘( )’. Well, python checks that, except for no, it doesn’t, it takes it as an object, and it saves a position instead of warning me I could forget the ‘( )’ thing that took me hours to notice and fix, just because python wanted to help where I didn’t need help.

Extra: Not having a compiler to help me notice syntax errors, unless I use a terminal that doesn’t close when the script crashes is also a pain.

My thoughts

I like python, you can do so many things with very few lines of code, but when it becomes to doing complicated things, it can be hell. It makes you rest from other languages' problems but it creates its own, so it would depend on what you are gonna do and your expertise to use python to do the job.

Cover Photo by programarya.com on ProgramarYa

More entries

Cover Image for How I translated my portfolio with JavaScript and JSON

How I translated my portfolio with JavaScript and JSON

I didn't want to get into any extra trouble on my personal portfolio to have it ready a bit faster and try something new. So, I came up with a straightforward solution using only JavaScript. Let's get into it.

Ivan Orozco
Ivan Orozco
Cover Image for Flags to represent languages?

Flags to represent languages?

Should I use the flags of the countries with the most population speaking that language? what’s the best way to design the options for language switching?

Ivan Orozco
Ivan Orozco
Cover Image for Coding with emojis?

Coding with emojis?

Emojis are truly useful in some cases, they can add emotions to our messages so their true meaning doesn't fly over our recipient's head, but should we use them for coding?

Ivan Orozco
Ivan Orozco
Cover Image for Easy Simple Job backstory

Easy Simple Job backstory

The story behind our game isn´t complicated, inspired by a video narrating a story on Reddit that tells about a guy that gets a simple but suspicious job in an office, and certain scary things happen.

Ramen Development Team
Ramen Development Team
Cover Image for Dear LinkedIn recruiters...

Dear LinkedIn recruiters...

It is important for recruiters to take the time to review a candidate's profile before sending a job offer.

Ivan Orozco
Ivan Orozco
Cover Image for Lexical analyzer automaton

Lexical analyzer automaton

In this article you will understand how to code your own lexical analyzer.

Gustavo Padilla
Gustavo Padilla