“Go” or “GoLang” is a programming language developed by Google in 2007. Go language is a complete and a challenging programming language. Go is among the top 20 programming languages. It’s rank is something between 15-17. A considerable amount of open source applications use Go language. Some of them are as follows;
- Docker, a set of tools for deploying Linux containers
- Doozer, a lock service by managed hosting provider Heroku
- Flynn, a PaaS powered by Docker
- Gogs (Go Git Service), a self-hosted Git service
- Juju, a service orchestration tool by Canonical, packagers of Ubuntu Linux
- nsq, a message queue by bit.ly
- Syncthing, an open-source file synchronization client/server application
- Packer, a tool for creating identical machine images for multiple platforms from a single source configuration
- Other companies and sites using Go (generally together with other languages, not exclusively)
- Google, for many projects, notably including download server dl.google.com
- Dropbox, migrated some of their critical components from Python to Go
- CloudFlare, for their delta-coding proxy Railgun, their distributed DNS service, as well as tools for cryptography, logging, stream processing, and accessing SPDY sites.
- SoundCloud, for “dozens of systems”
- The BBC, in some games and internal projects
- Novartis, for an internal inventory system
- Splice, for the entire backend (API and parsers) of their online music collaboration platform.
- Cloud Foundry, a platform as a service
- CoreOS, a Linux-based operating system that utilizes Docker containers
- MongoDB, tools for administrating MongoDB instances
- Zerodha, for realtime peering and streaming of market data
- Chango, a programmatic advertising company uses Go in its real-time bidding systems.
- SendGrid, a Boulder, Colorado-based transactional email delivery and management service.
- Plug.dj, an interactive online social music streaming website.
So this proves Go language is becoming a popular language. According to the Product Manager of Go Language, Jason Burberel said that they hope to develop Go language to overtake the other big programming languages like Java within the next five years. The main target of Google is to make the language simpler and quicker to learn. Actually the language is already have that feature. An experienced programmer can learn the language within 2 hours!
“Meanwhile, Go takes a strong position on features that can lead to confusion and bugs. It omits OOP idioms such as inheritance and polymorphism, in favor of composition and simple interfaces. It downplays exception handling in favour of explicit errors in return values. There is exactly one correct way to lay out Go code, enforced by the gofmt tool. And so on.
Go is also a great language for writing concurrent programs: programs with many independently running parts. An obvious example is a webserver: Every request runs separately, but requests often need to share resources such as sessions, caches, or notification queues. This means skilled Go programmers need to deal with concurrent access to those resources.” Brendon Hogger says in a article posted on Toptal.com (I recommend to read the full article here.) This shows how Go is powerful and how useful Go language is.