Golang Guide: A List of Top Golang Frameworks, IDEs & Tools

Quintin G.
Aug 14, 2017 · 12 min read
Image for post
Image for post

Since its introduction, Google’s Go Programming Language (Golang) has been experiencing an increasing popularity among mainstream users. In a December 2016 survey, 89% of the 3,595 respondents claimed that they program in Go at work or outside of work.

Additionally, Go ranks highest among the programming languages in terms of expertise and preference. This July 2017, Go ranks 10th in Tiobe’s Programming Language of the Year, jumping from its 55th ranking last year.

Clearly, Go is attracting many programmers from various disciplines and software development outsourcing professionals. And it’s safe to say that this is due to the ease of using Go.

As a compiled, open-source programming language, Go makes it easy for developers to build simple, reliable, and efficient software. It is the product of the innovation and evolution of the more conservative languages such as C and C++.

With Go, the amount of code typing is reduced and writing robust APIs without sacrificing its performance has become easier. Designed for scalability and concurrency, Go makes optimizations possible. A compiler can perform all the code inspection work before runtime.

We’ve compiled a list of the top frameworks, IDEs, and tools for Golang for your quick reference. Bookmark it on your browser so that you can come back whenever you’re working with Go!

Frameworks for Golang

Here are 9 frameworks you can use to help you build projects using the Go Language.

1. Revel

Image for post
Image for post

As a high productivity framework for Go, Revel includes a Hot Code Reload tool that lets you rebuild your project on every file change. It also includes a wide variety of comprehensive and high-performance features, so you don’t need to find external libraries to integrate into the framework.

2. Beego

Beego will save you a lot of hours, especially in the beginning of a project when you’re figuring out the logging framework or application structure.

Image for post
Image for post

3. Martini

It features a non-intrusive design that’s quick and easy to use and includes a wide range of handlers and middleware. It’s capable of performing basic routing, exception handling, and default document serving for AngularJS apps in HTML5 mode.

Image for post
Image for post

Martini’s best feature is its use of reflection, which lets developers dynamically insert data into the handler functions and add new services. Martini is also fully compatible with the http.HandlerFunc interface. The downside, though, is that the Martini framework is no longer maintained.

Image for post
Image for post

4. Gin Gonic

Gin Gonic is a minimalistic framework that includes only the most essential libraries and features. This makes it perfect for developing high-performance REST APIs. Plus, it’s 40 times faster than Martini.

You can add middleware, nested groups, JSON validation, and rendering, but it still maintains its optimum performance. Gin Gonic uses httprouter, the fastest HTTP router for Go.

Image for post
Image for post

5. Buffalo

It features Hot Reloading, which means that dev command will watch your .go and .html files automatically. It will then rebuild and restart your binary for you. Just run the dev command, and you’ll see the changes go live right before your eyes!

Buffalo is more than just a framework — it’s a holistic web development eco-system that lets you get straight to building your application.

Image for post
Image for post

6. Goji

Additional features include URL patterns, re-configurable middleware stack, graceful shutdown, and more. Goji can be used in production and has served billions of requests across several organizations.

Image for post
Image for post

7. Tiger Tonic

The downside to Tiger Tonic is its inadequacy when it comes to building large, back-end applications.

Image for post
Image for post

8. Gocraft

Gocraft is a Go mux and middleware package that features casting and reflection capabilities so that you can type your code statically. You can also add an optional functionality with the built-in middleware or write your own.

Since performance is always one of the top concerns for developers, Gocraft is a great choice for developers. It’s very easy to write backend web applications using the Gocraft framework.

Image for post
Image for post

9. Mango

Mango lets you build reusable modules of HTTP functionality as quickly and easily as possible. It compiles a list of middleware and application into a single http server object to keep your code self-contained.

Image for post
Image for post

Integrated Development Environment (IDEs) for Golang

If you’re working on a large-scale project with an extensive codebase, an IDE can help you organize your code and navigate it with ease. Furthermore, IDEs can help you test your code and edit them accordingly.

Here are the top IDEs that work great with Golang.

1. Gogland

Because an established company created Gogland, it has an extensive IntelliJ plugin ecosystem where you can get additional tools should you need more.

Image for post
Image for post

2. Visual Studio Code

As another popular IDE, Visual Studio Code has a supportive community of Go developers that regularly contribute. With Visual Studio Code, you can extend functionalities with the array of available plugins.

Image for post
Image for post

3. LiteIDE

Image for post
Image for post

4. Wide

Because Wide is created and maintained by a Chinese developer, most of its documentation and support are in Chinese.

Image for post
Image for post

5. Atom with go-plus plugin

Image for post
Image for post

The go-plus package offers almost all Golang support in Atom. It can also be used for tools, build flows, linters, vet and coverage tools.

Go-plus also includes various code snippets and features such as autocomplete with gocode, code formatting with gofmt, goreturns, or goimports, and more.

Image for post
Image for post

6. Eclipse with GoClipse

GoClipse also serves as a project wizard and builder that reports syntax and build errors instantly. Additional features of GoClipse include debugging functionality and code assist.

Image for post
Image for post

7. Sublime Text with GoSublime

GoSublime is a Golang plugin for Sublime Text 3 that offers code completion from Gocode, lint/syntax check while you’re wiring code, automatic addition and removal of package imports, and more.

Image for post
Image for post

8. Vim with vim-go plugin

Vim-go is a powerful plugin suite for writing and developing Go. Its features include advanced source code analysis, adding and removing import paths, multiple 3rd liner support, goto definition, quick file executions, and much more.

Vim-go is highly customizable, with individual features that can be enabled or disabled according to your need.

Image for post
Image for post

9. Komodo

The great thing about Komodo is that it works great for team collaboration since multiple developers can edit a document simultaneously. Komodo can be installed on Mac, Windows, or Linux with just one license.

Image for post
Image for post

10. IntelliJ IDEA with Go Language (golang.org) Support Plugin

Image for post
Image for post

Tools for Golang

Here’s a list of the top Golang tools for your reference.

1. Apicompat

With Apicompat, you can avoid false positives. However, not every backwards incompatible change can be detected by Apicompat. Swapping argument parameters and other changes still need to be considered by the library author.

Image for post
Image for post

2. Checkstyle

Image for post
Image for post

3. Depth

Image for post
Image for post

4. Go-Swagger

With Go-Swagger, you can swagger spec document, validate against jsonschema, and other extra rules. Other features include code generation, API generation based on swagger specs, spec document generation based on the code, extended string formats, and more.

Image for post
Image for post

5. Go Meta Linter

Image for post
Image for post

6. Go-callvis

With go-callvis, developers can focus specific package within a program; group functions according to package and methods according to type; and limit packages to custom path prefixes, and ignore those that contain them.

Image for post
Image for post

7. Gonative

Gonative downloads the binary distributions for each platform and copies their libraries into its proper places. At the same time, Gonative sets the correct mod time to avoid unnecessary rebuilds.

Unfortunately, Gonative remains untested on Windows. Additionally, there’s no Linux/arm support provided.

Image for post
Image for post

8. Grapes

Grapes will soon support full host key validation, so that’s something developers should watch out for.

Image for post
Image for post

9. Gosimple

If there’s a new Go release, gosimple will suggest the easiest and simplest methods to avoid complicated constructs.

Image for post
Image for post

10. Go Vendor

Image for post
Image for post

Wrapping It Up


Originally published at blog.intelligentbee.com on August 14, 2017.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store