Golang logo

Golang

An open source programming language that makes it easy to build simple, reliable, and efficient software
14.5K
12.5K
+ 1
3.2K

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 100.9K GitHub stars and 15K GitHub forks. Here’s a link to Golang's open source repository on GitHub

Who uses Golang?

Companies
2684 companies reportedly use Golang in their tech stacks, including Uber, Google, and Shopify.

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

Golang Integrations

Sentry, Datadog, Auth0, Rollbar, and Hugo are some of the popular tools that integrate with Golang. Here's a list of all 215 tools that integrate with Golang.
Pros of Golang
530
High-performance
387
Simple, minimal syntax
354
Fun to write
295
Easy concurrency support via goroutines
267
Fast compilation times
189
Goroutines
177
Statically linked binaries that are simple to deploy
148
Simple compile build/run procedures
134
Backed by google
131
Great community
50
Garbage collection built-in
42
Built-in Testing
41
Excellent tools - gofmt, godoc etc
38
Elegant and concise like Python, fast like C
34
Awesome to Develop
25
Used for Docker
24
Flexible interface system
22
Great concurrency pattern
22
Deploy as executable
19
Open-source Integration
16
Fun to write and so many feature out of the box
15
Easy to read
14
Its Simple and Heavy duty
14
Go is God
13
Powerful and simple
13
Easy to deploy
11
Concurrency
11
Best language for concurrency
10
Safe GOTOs
10
Rich standard library
9
Clean code, high performance
9
Easy setup
8
Simplicity, Concurrency, Performance
8
High performance
8
Hassle free deployment
7
Used by Giants of the industry
7
Single binary avoids library dependency issues
6
Cross compiling
6
Simple, powerful, and great performance
5
Excellent tooling
5
Very sophisticated syntax
5
Gofmt
5
WYSIWYG
5
Garbage Collection
4
Widely used
4
Kubernetes written on Go
3
Keep it simple and stupid
2
No generics
1
Operator goto
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 · | 12 upvotes · 287.4K views
  • 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 · 50.3K views
Shared insights
on
GolangGolang

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
Shared insights
on
Node.jsNode.jsnpmnpmGolangGolang
at

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 · 180.9K views
Shared insights
on
GogsGogsGitHubGitHubGolangGolangGitLabGitLab

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 · 39.6K views
Shared insights
on
GolangGolang
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 · 320.3K 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
2088
Nov 20 2019 at 3:38AM

OneSignal

PostgreSQLRedisRuby+8
8
4150
Oct 3 2019 at 7:13PM

Ably Realtime

JavaScriptPythonNode.js+8
4
3372
Jun 26 2018 at 3:26AM

Twilio SendGrid

GitHubDockerKafka+10
11
9504

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
12467 developers follow Golang to keep up with related blogs and decisions.