Python and Go (also known as Golang) are two different programming languages, each with their own unique features and applications. If you've encountered developers migrating from the former to the latter in the course of your work and are thinking about making the transition, this article is for you. Here are some key differences between the languages:
1. Creation and development
Python was created in the 1980s as an interpreted language where the code is read not by the machine itself, but by a special preparatory program - an interpreter. Go, on the other hand, was created at Google in 2007. It is a compiled language, aiming to be faster than Python. In the second case, the machine "translates" the code itself, which adds speed.
2. Performance
According to the doit.software article, Go is 30 times faster. The familiar line-by-line processing of records - cutting substrings, removing markup, etc. - often "hang" a Python laptop for the whole two hours, while the conditional Colab keeps the session open. Golang will give a nice boost here. In my case, instead of 40 minutes, 27 minutes were spent on data prep. The investment of creators' time pays off a hundredfold in the users' time.
3. Parallelism
Go has built-in support for concurrency and parallelism using goroutines (lightweight threads), making it a great choice for developing multi-threaded applications. Python can also support parallelism, but this is usually more difficult to implement and is often subject to "Global Interpreter Lock" (GIL), i.e. the notorious single thread lock.
4. Syntax and Usability
Python is known for its simple and straightforward syntax, which makes it particularly useful for those new to programming. Go also strives for simplicity and predictability, but its syntax may be less intuitive for beginners. Compare how many lines it took to output the sum of two variables in the case of Python and Go in the image above. Still, the code's easy readability is sacrificed so that the user gets to interact with a product tied to big data.
5. Community and ecosystem
Python has one of the largest and most active communities of programmers with a huge number of third-party libraries and frameworks. Go also has an active community, but it is smaller than Python's.
In comparison, Python has over 8.2 million active users (source: zdnet.com), Go has 1.1 million (jetbrains.com).
6. Applications
Python is widely used in scientific computing, data analysis, machine learning, and web development. If a company is deploying cloud services, Golang will be more preferred.
Conclusion
In my opinion, this very interesting battle of the giant languages is just beginning to unfold in front of us. In another decade or two, we are likely to see both technologies flourish even more in different areas.
In the case of my company, switching to Golang doesn't make sense yet: we don't work with big data yet. With our datasets of text up to 3 gigabytes each Python copes quite quickly. For example, in the conditions of the test of the fifth ML-model, which classifies users' calls "without a teacher", it is much easier and faster to cut a small slice than to run the whole dataset through some slow function for each row at the hundredth run.
In general, when choosing a language, take into account the amount of data you work with, whether this code "touches" the end user directly or remains within the framework of, say, an analytical project. It is also important that you and your team are willing to master a new field - such upgrades require a lot of time.
No comments yet