Python was created by Guido van Rossum during Christmas in 1989. as a programming language to kill time during the dull holiday.
Today, there are roughly over 600 programming languages worldwide, but only about 20 of them are popular. If you’ve heard of the TIOBE Index, you’ll have a general idea of the popularity ranking of programming languages. Here is a trend chart showing the changes of the 10 most commonly used programming languages over the recent decades.

In general, each of these programming languages has its own strengths. C is a hardware-closer language capable of writing operating systems, so it’s ideal for developing programs that pursue high execution speed and fully maximize hardware performance. Python, on the other hand, is a high-level programming language designed for building applications.
When you start genuine software development with a programming language, besides writing code yourself, you also need a wealth of pre-built basic tools to accelerate your development progress. For instance, if you want to develop an email client and start by writing low-level code related to network protocols from scratch, it will probably take you a year or so to finish. High-level programming languages usually come with a fairly comprehensive standard library for direct use — such as the SMTP library for email protocols and the GUI library for desktop environments. Based on these existing libraries, you can develop an email client in just a few days.
Python provides us with an extremely robust standard library covering networking, file handling, GUI, databases, text processing and more, vividly known as the “batteries included” concept. With Python development, you don’t have to build many functions from scratch; you can directly use ready-made components.
In addition to the built-in library, Python also boasts a vast collection of third-party libraries — tools developed by other developers for your direct use. Of course, if your self-developed code is well-packaged, it can also be shared as a third-party library for others to utilize.
Many well-known large websites are built with Python, such as YouTube, Instagram and China’s Douban. Numerous big companies including Google, Yahoo and even NASA all use Python extensively.
Uncle Guido positioned Python with three core values: elegance, clarity and simplicity. That’s why Python programs always look concise and easy to understand. For beginners, learning Python is not only easy to get started with, but also allows you to develop extremely complex programs as you advance further in the future.
In short, Python’s philosophy is simplicity and elegance — try to write code that’s easy to read, and use as few lines of code as possible. If a senior programmer shows off their obscure, overly complicated code that runs into tens of thousands of lines, feel free to laugh at them.
So what types of applications is Python suitable for developing?First and foremost, web applications, including websites and backend services.Second, various small daily tools, including scripting tasks required by system administrators.Third, wrapping programs developed in other languages to make them more user-friendly.
Last but not least, let’s talk about Python’s drawbacks.Every programming language has its flaws, and Python is no exception. Now that we’ve covered its strengths, what are its weaknesses?
The first drawback is slow execution speed — it’s much slower compared with C programs. This is because Python is an interpreted language; your code will be translated line by line into machine code understandable by the CPU during execution, and this translation process is quite time-consuming, hence the slowness. In contrast, C programs are directly compiled into CPU-executable machine code before running, so they are much faster.
However, most applications don’t require such high execution speed, as users won’t even notice the difference. For example, a web application for downloading MP3 files may take 0.001 seconds to run in C, but 0.1 seconds in Python — a 100-fold slowdown. But since the network is even slower, requiring a 1-second wait, do you think users can tell the difference between 1.001 seconds and 1.1 seconds? It’s similar to an F1 car and a regular taxi driving on Beijing’s 3rd Ring Road. Although an F1 car has a theoretical top speed of 400 kilometers per hour, traffic jams limit the actual speed to only 20 km/h. Therefore, as a passenger, you’ll only ever feel the 20 km/h speed.

The second drawback is that code cannot be encrypted. Distributing your Python program essentially means distributing the source code. This is different from C, where you don’t need to release the source code — you only need to distribute the compiled machine code (i.e., the xxx.exe files you often see on Windows). It’s nearly impossible to reverse-engineer C source code from machine code. Thus, all compiled languages are free from this issue, while interpreted languages have to release their source code.
This drawback only matters when you need to sell your software for profit. The good news is that in today’s internet era, the business model of selling software licenses is declining, while the service-based model via websites and mobile apps is growing. The latter does not require sharing the source code with others.
Besides, the booming open-source movement aligns with the spirit of freedom and openness of the internet. There are countless excellent open-source projects like Linux online. We should never overestimate the actual commercial value of our own code. A more important reason why big companies are reluctant to open up their code is that their code is poorly written — once open-sourced, no one would dare to use their products anymore.
Of course, Python has a few other minor drawbacks. You can simply ignore them, so we won’t list them one by one here.