Golang logo

Golang

An open source programming language that makes it easy to build simple, reliable, and efficient software
22.4K
13.7K
+ 1
3.3K

What is Golang?

Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
Golang is a tool in the Languages category of a tech stack.
Golang is an open source tool with 122.2K GitHub stars and 17.5K GitHub forks. Here’s a link to Golang's open source repository on GitHub

Who uses Golang?

Companies
2880 companies reportedly use Golang in their tech stacks, including Uber, Pinterest, and Google.

Developers
12048 developers on StackShare have stated that they use Golang.

Golang Integrations

Sentry, Datadog, Auth0, Testify, and Rollbar are some of the popular tools that integrate with Golang. Here's a list of all 293 tools that integrate with Golang.
Pros of Golang
548
High-performance
395
Simple, minimal syntax
363
Fun to write
301
Easy concurrency support via goroutines
273
Fast compilation times
193
Goroutines
180
Statically linked binaries that are simple to deploy
150
Simple compile build/run procedures
136
Backed by google
136
Great community
53
Garbage collection built-in
45
Built-in Testing
44
Excellent tools - gofmt, godoc etc
39
Elegant and concise like Python, fast like C
37
Awesome to Develop
26
Used for Docker
25
Flexible interface system
24
Deploy as executable
24
Great concurrency pattern
20
Open-source Integration
18
Easy to read
17
Fun to write and so many feature out of the box
16
Go is God
14
Easy to deploy
14
Powerful and simple
14
Its Simple and Heavy duty
13
Best language for concurrency
13
Concurrency
11
Rich standard library
11
Safe GOTOs
10
Clean code, high performance
10
Easy setup
9
High performance
9
Simplicity, Concurrency, Performance
8
Hassle free deployment
8
Single binary avoids library dependency issues
7
Gofmt
7
Cross compiling
7
Simple, powerful, and great performance
7
Used by Giants of the industry
6
Garbage Collection
5
Very sophisticated syntax
5
Excellent tooling
5
WYSIWYG
4
Keep it simple and stupid
4
Widely used
4
Kubernetes written on Go
2
No generics
1
Operator goto
1
Looks not fancy, but promoting pragmatic idioms
Decisions about Golang

Here are some stack decisions, common use cases and reviews by companies and developers who chose Golang in their tech stack.

Denys
Software engineer at Typeform · | 13 upvotes · 1.9M views
Shared insights
at
  • Go because it's easy and simple, facilitates collaboration , and also it's fast, scalable, powerful.
  • Visual Studio Code because it has one of the most sophisticated Go language support plugins.
  • Vim because it's Vim
  • Git because it's Git
  • Docker and Docker Compose because it's quick and easy to have reproducible builds/tests with them
  • Arch Linux because Docker for Mac/Win is a disaster for the human nervous system, and Arch is the coolest Linux distro so far
  • Stack Overflow because of Copy-Paste Driven Development
  • JavaScript and Python when a something needs to be coded for yesterday
  • PhpStorm because it saves me like 300 "Ctrl+F" key strokes a minute
  • cURL because terminal all the way
See more
Russtopia Labs
Sr. Doodad Imagineer at Russtopia Labs · | 4 upvotes · 114.9K views
Shared insights

Got frustrated with the complexities of heavyweight build automation/continuous integration tools like Jenkins, Concourse or Buildbot so I built my own in Go . https://gogs.blitter.com/Russtopia/bacillus. Well under 1K SLOC, no JVM or containers required. Config nearly 100% in the launch script itself.

Go is a lean, powerful language that takes a lot of cognitive load off of the developer with rich data manipulation functions and easy to use HTTP/net libs and concurrency. Combined with gopherjs this old-timey embedded programmer finally found a sensible language for both front- and back-end web development.

See more
Eugene Cheah

Our CLI was originally written Node.js with npm , 2 years ago. We have now migrated to Go !

It was something we quickly hacked together at the early beginnings of Uilicious when our focus was to move fast and iterate the product quickly. We wanted to roll out the CLI ASAP, so that users with a CI/CD can hook up their tests to their front-end deployment pipeline.

However after 2 years, with NPM dependency hell pains - We decided to migrate our CLI toolchain to Go for

  • Zero deployment dependencies
  • Single file distribution (and backwards compatible with NPM)

Happy with how it is : article covers the decision in much deeper details

https://dev.to/uilicious/why-we-migrated-our-cli-from-nodejs-to-golang-1ol8

See more
Russtopia Labs
Sr. Doodad Imagineer at Russtopia Labs · | 5 upvotes · 408.3K views
Shared insights

I installed Gogs after a few repos I planned to use on GitHub disappeared without explanation, and after Microsoft's acquisition of same, it made me think about the over-centralization of community-developed software. A self-hosted solution that enables easy point-and-click mirroring of important repositories for my projects, both in-house and 3rd-party, ensures I won't be bitten by upstream catastrophes. (So far, Microsoft's stewardship has been fine, but always be prepared). It's also a very nice way to host one's own private repos before they're ready for prime-time on github.

Gogs is written in Go and is easy to install and configure, IMHO much more so than GitLab, though it's of course less feature-rich; the only major feature I wish Gogs had is an integrated code review tool, but the web plugin hypothes.is https://stackshare.io/hypothes-is/hypothes-is is quite suitable as a code review tool. Set up a group for each code review, and just highlight lines to add comments in pull request pages of Gogs.

See more
Ben Katz
Software Engineer at DoorDash · | 4 upvotes · 104.2K views
Shared insights
at

When I was building ATGATT as a solo founder, I was primarily concerned about the cost required to deploy the app to production, along with speed of development. Given this requirement, I landed on Go because of its minimal memory usage, allowing me to run the entire site on the cheapest possible EC2 VM (free tier!). Even with 1000 concurrent users active at the same time, I never see more than 20% memory usage or 10% CPU usage in production. Go is also an extremely simple language to work with in terms of features and syntax, while still maintaining type safety, an important characteristic when the codebase grows in size.

See more
Jakub Olan
Node.js Software Engineer · | 17 upvotes · 773.9K views

In our company we have think a lot about languages that we're willing to use, there we have considering Java, Python and C++ . All of there languages are old and well developed at fact but that's not ideology of araclx. We've choose a edge technologies such as Node.js , Rust , Kotlin and Go as our programming languages which is some kind of fun. Node.js is one of biggest trends of 2019, same for Go. We want to grow in our company with growth of languages we have choose, and probably when we would choose Java that would be almost impossible because larger languages move on today's market slower, and cannot have big changes.

See more

Blog Posts

Dec 8 2020 at 5:50PM

DigitalOcean

GitHubMySQLPostgreSQL+11
2
2409
Nov 20 2019 at 3:38AM

OneSignal

PostgreSQLRedisRuby+8
9
4685
Oct 3 2019 at 7:13PM

Ably Realtime

JavaScriptPythonNode.js+8
5
3859
Jun 26 2018 at 3:26AM

Twilio SendGrid

GitHubDockerKafka+10
11
10001

Golang Alternatives & Comparisons

What are some alternatives to Golang?
Python
Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
Rust
Rust is a systems programming language that combines strong compile-time correctness guarantees with fast performance. It improves upon the ideas of other systems languages like C++ by providing guaranteed memory safety (no crashes, no data races) and complete control over the lifecycle of memory.
Java
Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!
Node.js
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
JavaScript
JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
See all alternatives

Golang's Followers
13745 developers follow Golang to keep up with related blogs and decisions.