Thank you for your time.

This article briefly discusses some of my thoughts on Go, non-technical.

The popularity of Go has created a certain sense of crisis for developers who use Python as their main language, like me. The last time I felt this sense of crisis was when I was working on Android development with Java. Google pushed Kotlin, which made me feel a strong sense of crisis. I joined many Android developer communication groups, and everyone said that it was difficult to find a job.

As far as I can see, the popularity of Python will not decline so fast. Many non-developers will learn Python as their first programming language. The simplicity of Python plays a huge advantage here, but the deeper you know, you will realize the weakness of Python in engineering. Despite the recent emergence of FastApi frameworks with 100% test coverage, the overall picture is still not encouraging.

The asynchrony mechanism of Python has always been criticized by people. I have heard many experienced Python developers make fun of the problems existing in Asyncio in Python. As far as I know, few companies will use asyncio in the generation environment, which is too confusing and limited. Things that have been around for years and don’t update very often are still preferred today, which also shows that Python is not very good at asynchrony.

There are many flaws in Python, and I won’t go into detail here, but the fact is that “every programming language can come up with a lot of flaws as it gets deeper.” What’s more pessimistic is the way the Python community operates, which is so loose that it makes it hard to implement important but difficult features. Of course, my personal ability is limited and I have nothing to contribute to the community, so I have nothing to say.

Despite the teasing, Python is a programming language worth learning, especially as a first language for non-technical people.

Back to the topic of this article.

  • 1. Why did Go have an impact on Python?
  • 2. Why are many companies starting to move from Python to Go?
  • 3. Why isn’t Java such a threat to Python?

To answer the third question first, although Java is much faster than Python, “in the era of multi-technology linkage, the impact of this gap is narrowing”, and Python is much more efficient than Java in development, which makes Python more popular.

Suppose Java is 10 times faster than Python, and it takes 1ms for Java to execute the same logic, while Python takes 10ms. That seems like a big difference, but a project usually doesn’t just use programming languages to do the logic. For example, if a database uses MySQL, the database operation may take 60ms. Java projects require 61ms, while Python projects require 70ms, a difference of 9ms. Note that the speed difference of 9ms is not a significant proportion of the overall project time. It can be said that the difference in the speed of a programming language can be reduced by the use of many different tools in a project.

The other reason is that Java is often chosen for large Web projects, with architectural, maintainable, and readable considerations, which are not the main battleground of Python Web development, but rather small and medium-sized Web projects.

To sum up, Java’s impact on Python has been modest.

Why did Go make such a big impact?

Go does run much faster than Python, but the core reason is that Go language is low difficulty to get started, high development efficiency, using Go to develop a Web system is fast, the language level support asynchronous, so that beginners do not need to know too many skills, follow the rules of development can get a good performance of the Web system.

In the early years, the surrounding tool chain of Go was not perfect, so the impact was not that great. However, after the development of this year, Go has caught up with the pace of Python in all aspects. From this point, it can be seen that an open source project has the benefit of a commercial company, which will have a strong impetus for the project.

In the Web world, Python has very little advantage over Go…

Why are companies switching from Python to Go?

Go’s many advantages are an obvious reason.

In addition, many corporate projects were developed using Python2.7 for historical reasons. In 2020, Python officially stopped supporting Python2.7, forcing many companies to consider upgrading to Python3. Embarrassingly, Python3 is not backward compatible with Python2. So there was a risk to upgrading, and at this point Go was in full swing, and features that were easy to use were gaining popularity, leading to the idea that upgrading Python3 was better than rewriting it with Go.

Note that this is all about the Web, and Python is still the best language in areas like data analysis and machine learning, which unfortunately rely less on Python’s diverse syntactic sugar and more on dome-specific knowledge like math, statistics, and so on.

At this point, the conclusion is obvious, and if you’re looking for a Web career, I suggest you learn Go.

These days, the company’s development task is heavy, in the process of development encountered some more costly bugs, at the same time to learn a lot of interesting knowledge, the following several articles will share Docker underlying principle and Kafka related content, cartoon version!

Finally, thanks for your attention and reading, we will see you in the next article.