Python is NOT the Best Tool to Start with and Here is Why

There are about 700 programming languages that are used today, excluding the markup languages and dialects of BASIC. The first question of a wannabe developer is always about which programming language they should learn to start coding. It gets quite difficult for a beginner to choose and begin coding between many different types and tools. And we're here to explain why Python is not a good choice.

Python is a popular programming language that can be used to build software, collet data with analysis, artificial intelligence (AI), and more. It is closer to written English in many ways, which is why new programmers choose to use this programming language since it is somewhat beginner-friendly with its sentence-like syntax. A person can almost read everything that is written down and make out the meaning as if reading a real sentence. Since it is easy to understand, it is easy to learn and start working with. 

It is an all-purpose cross-platform programming language that can be used for different types of operating systems and devices. Even though we find native tools to be more efficient, it is preferred by many programmers for this specific function as well.

Computer with dark scene

The Problem with Python

Even though it is considered to be a great start for many people, there might be problems around starting coding with Python, too. 

Inflexibility

In order to understand how Python fails to be definite, we have to understand the difference between object-oriented programming and functional programming.

Object-oriented programming (OOP) is a model of programming that relies on the objects and the classes of objects. It means when we write a line of code, we have to specify what we want as an output as we go. For example, if we want to talk about a black car, we’ll have to create a class of “car” and give it attributes and explain how it is black. 

Functional programming, however, is a model of programming that gives direct results from the inputs and turns these inputs into clear outputs without any side effects or shared states. In contrast to OOP, functional coding changes the output from within the function rather than interacting with the object from attributing functions from outside. So, to give the same example, we would be explaining that if there is a car, then it is black. Therefore it gives a more precise output.

Nowadays, programmers usually like to code with a functional program and find it to be more clear as it gives certain outputs. Python might look like an easy option to start with but when the programmer chooses to switch to a functional tool, the whole understanding of the programming language will change and it will limit the flexibility of the programmer.

For example, it is easier for someone to switch from Javascript to C#, than swift from Python to C#, since Javascript is more flexible. It is not the language itself that brings the problem about, but the concepts that take a bit longer than usual if you haven’t used them before - which brings us to our next point.

Python does what you should

The fact that you don’t have to learn all the concepts until you absolutely need them, which you won’t if you are a perfect beginner, will limit what you were capable of learning. Python is easy because it mostly reads like a communication language that we use daily in real life. 

When you’re learning a new programming language besides Python, you’ll have to learn all of those functions that Python does doing for you. It is similar to learning how to drive an automatic car before learning to drive a manual car. It does not bother some people but since it is harder to learn how to drive a manual car, it feels like learning how to drive all over again. 

Basically, if you start with Python, you become a Python person rather than a programmer who understands concepts and functions.

Error codes on screen

The off-side rule

One of the biggest problems with Python is the syntax and the white-space based formatting. The off-side rule makes the code look prettier but it really shouldn’t create errors for aesthetics. 

Copying and pasting a code within the codebase is a real pain with Python because the concept takes a lot of time since each needs to be structured and organised again and the programmer has to work with the whitespaces and reformat them with every copy of code.

Not only it slows down the coding process, but it also makes Python boring and unmotivating for a beginner.

What we suggest

Even though Javascript is not a functional programming language at its core with the lack of “pure functions”, it can still be used with functions. Python, to some level, can do the same but it slows down the readability and the code overall. 

Javascript has many functional options such as first-class functions, closures and lambdas, which gives a flexible usage for a technically object-oriented programming language. Whereas Python’s lambdas restrict you to a single expression and as you may have guessed, we like flexibility when coding.

Conclusion

We have listed a few reasons why it might not be the greatest idea to start your coding adventure with Python but many swear by how far they’ve gotten with it, too. Even though we, as a team, don’t find it to be the best programming language out there, hats off to those that took the time or are about to learn it.