Go

Go is a small programming language from Google, built so that one service can answer very many requests at the same time without falling over.

Also known as Golang Go language Google Go

Definition

Go is a programming language made at Google, and it is small on purpose. Its designers started from what actually goes wrong inside very large systems, so they kept the parts that help and threw the rest away. A working developer learns most of Go in about a week, and that plainness leaves room for the one job the language was really built to do.

That job is doing many things at once, and you see it best on a ticket site the morning seats go on sale. Ten thousand people press buy in the same minute, and every one of them expects an answer straight away. Most languages need an extra add-on to cope with a crowd like that, so somebody has to bolt it on and then tune it. In Go that ability is part of the language itself, so serving a crowd is ordinary work rather than something clever.

The second thing teams like arrives at the end, because a finished Go program turns into one single file. You copy that file onto a server and run it, with nothing else to install beside it. That means no runtime to keep in step and no list of small parts that all have to match. Anyone who has watched a program work on one machine and refuse to start on the next one knows exactly why that matters.

Go asks for something back. It speaks plainly, so you write more repetitive lines than you would in other languages, and some developers find it dull. It is also the wrong tool for ordinary business screens, such as an invoice list, a stock page or a booking form. That kind of work finishes sooner and costs less in a mainstream web application language. So when Linkysoft reaches for Go, it is for one hard-working piece inside a bigger system, never for the whole thing.

That piece is nearly always the same kind of thing: the part that takes in messages from phones, pushes notifications out, or answers the search box a thousand times a minute. It usually sits behind a mobile app that has to feel instant, which is where a slow answer gets noticed first. So here is a question worth asking any supplier who proposes Go: what breaks first when your traffic doubles? If the answer is the database rather than the code, they have understood the real problem, and that is where Linkysoft would rather spend your money.

Questions about Go

Is Go the same as Golang?
Yes. Golang is only a nickname. It comes from the old website address, because a two-letter word like Go is almost impossible to search for.
Is Go faster than PHP or Python?
Usually yes, for the same work on the same machine. But most slow websites are slow because of the database or the network, not because of the language.
Should my whole business system be written in Go?
Rarely. Everyday screens are quicker to build in other languages. Go pays off for the one or two parts that carry heavy traffic.
Is it hard to find developers who know Go?
There are fewer of them than PHP or Java people, but the language is small enough that a good developer picks it up in weeks. Ask who will maintain it after launch.

Still not sure how this applies to your project?

Tell us what you are building and we will answer in plain language.