When to Use Go (Golang) and When to Avoid it: A Guide for Developers

Wisanu Choungsuwanish
Thanachartsec-dev
Published in
2 min readFeb 13, 2023

Go, also known as Golang, is a statically typed, compiled, and concurrent programming language created by Google. Since its release in 2009, Go has gained popularity among developers due to its simplicity, efficiency, and scalability. However, not every project is a good fit for Go. In this article, we will explore the projects that are best suited for Go, as well as the projects that should not use Go.

Projects that should use Go:

  1. Networking and Distributed Systems: Go was designed to handle networked systems and concurrency, making it a great choice for projects that require high performance and scalability. Applications like network servers, proxies, and routers can be built with Go.
  2. Cloud Computing: Go is known for its ability to run on multiple platforms and its lightweight nature. This makes it an excellent choice for cloud computing projects, such as building microservices, cloud-based APIs, and container orchestration systems.
  3. Command-line Tools: Go is often used to create command-line tools because it has a built-in package for parsing flags and arguments. Additionally, its concise syntax and fast execution make it a great choice for writing quick and efficient scripts.
  4. Web Applications: Go has a built-in HTTP package, making it simple to build web applications. It is also highly performant, making it a great choice for projects that require a high degree of concurrency.

Projects that should not use Go:

  1. GUI Applications: Go is not the best choice for building graphical user interface (GUI) applications. While it is possible to create GUI applications with Go, it requires a lot of extra work, as Go does not have native support for GUI development.
  2. Machine Learning: While Go has some packages for machine learning, it is not as comprehensive as other languages, such as Python. For complex machine learning projects, it may be better to use a more specialized language.
  3. Dynamic Web Applications: Go is not ideal for dynamic web applications that require a lot of runtime flexibility. It is designed to be a statically typed language, which means that changes to the code must be made before the application is compiled and run.

In conclusion, Go is a great choice for projects that require high performance, scalability, and concurrency. It is also an excellent choice for building networked systems, cloud computing projects, command-line tools, and web applications. However, it may not be the best choice for GUI applications, machine learning, or dynamic web applications. When deciding whether to use Go for a project, it is important to consider the specific requirements of the project and whether Go is the best fit for those requirements.

Test generated by using ChatGPT 2023.

--

--