StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Product

  • Stacks
  • Tools
  • Companies
  • Feed

Company

  • About
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2025 StackShare. All rights reserved.

API StatusChangelog
Golang
ByGolangGolang

Golang

#13in Languages
Stacks22.6kDiscussions111
Followers13.9k
OverviewDiscussions111

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 Pros & Cons

Pros of Golang

  • ✓High-performance
  • ✓Simple, minimal syntax
  • ✓Fun to write
  • ✓Easy concurrency support via goroutines
  • ✓Fast compilation times
  • ✓Goroutines
  • ✓Statically linked binaries that are simple to deploy
  • ✓Simple compile build/run procedures
  • ✓Backed by google
  • ✓Great community

Cons of Golang

  • ✗You waste time in plumbing code catching errors
  • ✗Verbose
  • ✗Packages and their path dependencies are braindead
  • ✗Google's documentations aren't beginer friendly
  • ✗Dependency management when working on multiple projects
  • ✗Automatic garbage collection overheads
  • ✗Uncommon syntax
  • ✗Type system is lacking (no generics, etc)
  • ✗Collection framework is lacking (list, set, map)
  • ✗Best programming language

Golang Alternatives & Comparisons

What are some alternatives to Golang?

JavaScript

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.

Python

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.

HTML5

HTML5

HTML5 is a core technology markup language of the Internet used for structuring and presenting content for the World Wide Web. As of October 2014 this is the final and complete fifth revision of the HTML standard of the World Wide Web Consortium (W3C). The previous version, HTML 4, was standardised in 1997.

PHP

PHP

Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.

Java

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!

TypeScript

TypeScript

TypeScript is a language for application-scale JavaScript development. It's a typed superset of JavaScript that compiles to plain JavaScript.

Golang Integrations

Revel, Martini, Flynn, GoConvey, gockerize and 7 more are some of the popular tools that integrate with Golang. Here's a list of all 12 tools that integrate with Golang.

Revel
Revel
Martini
Martini
Flynn
Flynn
GoConvey
GoConvey
gockerize
gockerize
Auth0
Auth0
Apex
Apex
Echo
Echo
Iris
Iris
Credo
Credo
goa
goa
Logmatic
Logmatic

Golang Discussions

Discover why developers choose Golang. Read real-world technical decisions and stack choices from the StackShare community.

Thierry Schellenbach
Thierry Schellenbach

CEO at Stream

Sep 13, 2018

Needs adviceonGolangGolangTravis CITravis CIGitHubGitHub

Releasing new versions of our services is done by Travis CI. Travis first runs our test suite. Once it passes, it publishes a new release binary to GitHub.

Common tasks such as installing dependencies for the Golang project, or building a binary are automated using plain old Makefiles. (We know, crazy old school, right?) Our binaries are compressed using UPX.

Travis has come a long way over the past years. I used to prefer Jenkins in some cases since it was easier to debug broken builds. With the addition of the aptly named “debug build” button, Travis is now the clear winner. It’s easy to use and free for open source, with no need to maintain anything.

#ContinuousIntegration #CodeCollaborationVersionControl

0 views0
Comments
Thierry Schellenbach
Thierry Schellenbach

CEO at Stream

Sep 13, 2018

Needs adviceonGolangGolangRedisRedisFayeFaye

Our real time infrastructure is based on Golang , Redis and the excellent gorilla websocket library. It implements the Bayeux protocol.

In terms of architecture it’s very similar to the node based Faye library. It was interesting to read the “Ditching Go for Node.js” post on Hacker News. The author moves from Go to Node to improve performance. We actually did the exact opposite and moved from Node to Go for our real time system. The new Go-based infrastructure handles 8x the traffic per node. #InMemoryDatabases #RealtimeBackendApi #ApplicationHosting #Languages #DataStores

0 views0
Comments
Thierry Schellenbach
Thierry Schellenbach

CEO at Stream

Sep 13, 2018

Needs adviceonGolangGolangPythonPythonCassandraCassandra

After years of optimizing our existing feed technology, we decided to make a larger leap with 2.0 of Stream. While the first iteration of Stream was powered by Python and Cassandra, for Stream 2.0 of our infrastructure we switched to Golang.

The main reason why we switched from Python to Go is performance. Certain features of Stream such as aggregation, ranking and serialization were very difficult to speed up using Python.

We’ve been using Go since March 2017 and it’s been a great experience so far. Go has greatly increased the productivity of our development team. Not only has it improved the speed at which we develop, it’s also 30x faster for many components of Stream. Initially we struggled a bit with package management for Go. However, using Dep together with the VG package contributed to creating a great workflow.

Go as a language is heavily focused on performance. The built-in PPROF tool is amazing for finding performance issues. Uber’s Go-Torch library is great for visualizing data from PPROF and will be bundled in PPROF in Go 1.10.

The performance of Go greatly influenced our architecture in a positive way. With Python we often found ourselves delegating logic to the database layer purely for performance reasons. The high performance of Go gave us more flexibility in terms of architecture. This led to a huge simplification of our infrastructure and a dramatic improvement of latency. For instance, we saw a 10 to 1 reduction in web-server count thanks to the lower memory and CPU usage for the same number of requests.

#DataStores #Databases

0 views0
Comments
Nick Parsons
Nick Parsons

Building cool things on the internet 🛠️ at Stream

Sep 13, 2018

Needs adviceonStreamStreamGolangGolangJavaScriptJavaScript

Winds 2.0 is an open source Podcast/RSS reader developed by Stream with a core goal to enable a wide range of developers to contribute.

We chose JavaScript because nearly every developer knows or can, at the very least, read JavaScript. With ES6 and Node.js v10.x.x, it’s become a very capable language. Async/Await is powerful and easy to use (Async/Await vs Promises). Babel allows us to experiment with next-generation JavaScript (features that are not in the official JavaScript spec yet). Yarn allows us to consistently install packages quickly (and is filled with tons of new tricks)

We’re using JavaScript for everything – both front and backend. Most of our team is experienced with Golang and Python, so Node was not an obvious choice for this app.

Sure... there will be haters who refuse to acknowledge that there is anything remotely positive about JavaScript (there are even rants on Hacker News about Node.js); however, without writing completely in JavaScript, we would not have seen the results we did.

#FrameworksFullStack #Languages

0 views0
Comments
Seth Ammons
Seth Ammons

Principal Software Developer at Twilio SendGrid

Sep 13, 2018

Needs adviceonGolangGolangDockerDockerPerlPerl

In addition to our fancy Docker setup, we have captured and sanitized production logs for the behavior of our legacy Perl MTA, and we can test that the log output from the new Golang version behaves the same way as the old version. These tests are set up to allow us to switch between the legacy and new version of the MTA and ensure that both systems behave in a legacy-compatible way. Not only can we ensure that we operate against a variety of issues we've seen over time from inboxes, but we know that the newest version of our MTA continues to cover all the same expected behaviors of the legacy version. #CodeCollaborationVersionControl #ContinuousIntegration

0 views0
Comments

Try It

Visit Website

Adoption

On StackShare

Companies
3.05k
ABBBCC+3041
Developers
12.6k
BIHKLK+12547