Here are some stack decisions, common use cases and reviews by companies and developers who chose Golang in their tech stack.
- 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
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.
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
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.
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.
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.