Go is an open-source programming language (OS) developed at Google as a solution to the limitations the tech giant was facing in existing programming languages, particularly with regard to scalable network services, clusters and cloud computing. One of the problems it aims to solve is the inefficiency of the compiler in C and C++. Towards the end of the first decade of the 2000s, the tech giant's top software engineers were no longer satisfied with the programming languages they had to rely on.
Go was developed and pushed at the initiative of Google employees with the aim of improving programming productivity for new environments. The idea was to retain the positive features of the programming languages Google wanted to replace, such as the static typing and runtime efficiency of C, and the readability and usability of Python and JavaScript. However, more powerful network and multiprocessor features, as well as greater efficiency, were to be introduced to optimise the size of the code base and make Go a perfect solution for the new generation of software to be run in the cloud.
Since its release in spring 2012, no other programming language has been able to grow so strongly. There are numerous Google products in which Go has been used, such as Google Chrome, Google Earth, YouTube and Google App Engine. Other notable companies that have relied on Go to develop and improve core software products include Uber, Twitch, SoundCloud, Docker, SendGrid and Dropbox.
Go is also part of the DevInterface technology stack and today we dedicate a small interview to our CTO Stefano who will share some details about Go and why we use it for the best performing APIs.
Let's start by asking what Go is usually used for
Go can be used as a backend language for building applications of various kinds, but in our context it is used purely for API development.
In general, it is very popular for developing real-time applications, networks, cloud infrastructures and microservices.
Which projects did DevInterface work with in Go
So far, we have used Go to build high-performance and scalable APIs. Four of our customers' projects are based on APIs that have been written in Echo or in Fiber, both of which are fast and powerful web frameworks. APIs in Fiber in particular are also the basis for two of our in-house products:
-
EveryLog: notification app to better manage internal projects, designed for developers and ecommerce managers.
-
StarterSaaS: a boilerplate that helps save months of development for Saas projects.
Why do you develop APIs in Go and not in other technologies?
When the primary requirements are speed of response and reliability, writing APIs in Go is the optimal solution. The advantage of having a strongly typed language makes it possible to drastically reduce errors and bugs, and the fact that it is a functional, compiled language is the key to high performance. Finally, the use of goroutines ensures concurrency and the effective use of all the server's resources.
In your experience, what are the advantages of Go
In addition to the excellent performance, I find the simple syntax and the use of only 25 keywords a real blessing for any developer. Sometimes you feel like you have to reinvent the wheel every time, but the inherent simplicity of the language allows you to write clear and maintainable code.
Another aspect that should not be underestimated is that Go proves to be a language that is easy to understand even for a junior developer, allowing good results to be achieved in a relatively short period of time.
Why is Go fast compared to other programming languages?
Go runs directly on the underlying hardware and does not run on a virtual machine like Java for example, which means that the programme code is compiled directly into a binary file and is therefore faster. The exceptional performance and the simplicity of an ordered syntax are certainly great advantages.
What other programming languages do you use to develop APIs?
We alternate the development of APIs between Fiber (Go), Rails (Ruby), Django or Flask (Python) and Express or Fastify (Node) according to the customer's needs and depending on the project.
The fact that we are not tied to a single technology allows us to choose the best language and framework for each occasion, while also respecting future integrations.
Last question: DevInterface's technology stack is very large. Is there anything new on the horizon?
In 2022 there will be no new entries in terms of languages or frameworks, but only the consolidation of existing ones, such as Next.js for SPA and TypeScript.
However, we are looking at blockchain, nft and smart contracts with some interest.
With this last question we came to the end of the interview. Do you have a project in mind and would like to develop it using a specific programming language? Contact us and we will work out a winning proposal for you.