Although Golang may not be the most popular programming language, it is employed by many major companies, like Google, Uber, DropBox, DailyMotion, and many others. They pick Golang as their web development language for a variety of reasons, including its simplicity, low learning curves, speed, support, and the wide range of tools the platform offers. There are numerous IDEs and tools that can make developing Golang easier for you. Let's explore them in today's post.
1. Visual Studio Code (Recommended)
Visual Studio Code is free and built on open source which integrated Git, debugging and extensions. Microsoft released Visual Studio Code in 2015. It is the Windows, Linux, and macOS source code editor. Debugging, syntax highlighting, intelligent code completion, snippets, code refactoring, and embedded Git are just a few of the capabilities offered by Visual Studio Code. For installation, visit their official website to download the newest version.
Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages and runtimes (such as C++, C#, Java, Python, PHP, Go, .NET).
Go Programming in Visual Studio Code
You can use features like IntelliSense, code navigation, symbol search, testing, debugging, and many more with the Go extension for Visual Studio Code to assist you in Go development. You can install the Go extension from the VS Code Marketplace.
Features:
- Semantic syntax highlighting
- Auto completions
- Debugging
- Import packages
- Refactoring
- Test
- Formatting
- ....
Also Read Getting started with GOLANG | Write your first GO Code
2. LiteIDE X
LiteIDE is a simple, open-source, cross-platform Go IDE.
Features
- Core features
-
- System environment management
- MIME type management
- Configurable build commands
- Support files search replace and revert
- ...
-
Advanced code editor
- The code editor supports Golang, Markdown and Golang Present
- Rapid code navigation tools
- Syntax highlighting and color scheme
- Code completion
- ...
-
Golang support
- Support Go1.18 go.work
- Support Go1.11 Go modules
- Support Go1.5 Go vendor
- Support Go1 GOPATH
- ...
Supported Systems
- Windows x86 (32-bit or 64-bit)
- Linux x86 (32-bit or 64-bit)
- MacOS X10.6 or higher (64-bit)
- FreeBSD 9.2 or higher (32-bit or 64-bit)
- OpenBSD 5.6 or higher (64-bit)
3. Goland
Goland has the ability for on-the-fly error detection and suggestions for fixes, quick and safe refactorings with one-step undo, intelligent code completion, dead code detection, and documentation hints to help all Go developers, from newbies to experienced professionals, to create fast, efficient, and reliable code.
It has fantastic tool integration and code assistance. Goland assists with code creation, intelligent code completion, quick navigation, tabbed interfaces, and source code; it highlights function exit points; displays any type of expression; does inspections and provides quick fixes, and refactors code. Goland is a commercial IDE that offers developers a comfortable setting unlike any other. Due to the fact that a reputable firm constructed it, it boasts a vast ecosystem. This ecosystem provides additional tools if you need them.
Features
- Smart completion: The IDE helps you write new code by auto-completing statements for you.
- Inspections & quick-fixes: The IDE provides built-in inspections that check your code
- Refactorings: The available refactorings include Rename and Extract, allowing you quickly and safely change your code.
- Quick navigation: It only takes one click to switch to a super method, implementation, usages, declaration, and more.
- Code generation: In some cases the IDE can generate trivial code for you.
- Quick popups
- Detecting recursive calls
- Type Parameter
- ...
4. Vim with vim-go plugin
Vim is guaranteed to exist on all Unix systems (basically, it’s available on every major platform). It’s everywhere, and it’s the same on all platforms. Vim supports all file formats and programming languages, no need to download different IDEs for different programming languages. We can use vim with vim-go: Go development plugin for Vim. It has everything you need for Go development.
The full documentation can be found at doc/vim-go.txt. You can display it from within Vim with :help vim-go
. Depending on your installation method, you may have to generate the plugins help tags manually (e.g. :helptags ALL
).
Features
This plugin adds Go language support for Vim, with the following main features:
- Compile your package withÂ
:GoBuild
, install it withÂ:GoInstall
 or test it withÂ:GoTest
. Run a single test withÂ:GoTestFunc
). - Quickly execute your current file(s) withÂ
:GoRun
. - Improved syntax highlighting and folding.
- Debug programs with integratedÂ
delve
 support withÂ:GoDebugStart
. - Completion and many other features support viaÂ
gopls
. - formatting on save keeps the cursor position and undo history.
- Go to symbol/declaration withÂ
:GoDef
. - Look up documentation withÂ
:GoDoc
 orÂ:GoDocBrowser
. - ....
5. Eclipse with GoClipseÂ
GoClipse is an Eclipse IDE for the Go programming language.
Features
- Go source code editor, with:
-
- Syntax highlighting (configurable).
- Automatic indent/de-indent and brace completion on certain keypresses (Enter, Backspace).
- Go Project wizard and project builder.
- With in-editor build errors reporting.
- Editor outline and Quick-Outline (
Ctrl+O
). - Open Definition (and "Ctrl-click") viaÂ
guru
 orÂgodef
. - Content Assist (auto-complete) viaÂ
gocode
. - Content Assist code snippets (configurable).
- Debugging functionality: Fully featured GDB debugger support (reusing Eclipse CDT's GDB integration)
6. Sublime Text with GoSublime
Sublime Text is a sophisticated text editor for code, markup, and prose. GoSublime is an IDE-like plugin for Sublime Text 3 mainly, but not limited to, providing integration for most of your Go/Golang development tools. See https://margo.sh/b/hello-margo/ for a brief introduction to margo, the engine behind GoSublime.
Features
- Code completion from Gocode (fork);
- Context aware snippets via the code-completion popup;
- Sublime build system(ctrl+b) integrating with GoSublime 9o command prompt with live command output;
- lint/syntax check as you type or on save;
- Quickly jump to any linter error reported in any open file or package;
- Quickly fmt your source or automatically on save to conform with your coding standards;
- Easily create a new go file and run it without needing to save it first (9o
replay
); - Share your snippets (anything in the loaded file) on play.golang.org;
- List declarations in the current file or package;
- Automatically add/remove package imports;
- Quickly jump your import section(automatically goes to the last import) where you can easily edit the pkg alias and return to where you were before;
- Go to definition of a package function or constant, etc.;
- Create your own margo extensions in Go to e.g. add context-aware commands to the command palette
7. Komodo
Komodo is a full-featured Go IDE that supports other major backend technologies such as Node.js, Python, Perl, and more. Enjoy greater productivity with this Go IDE.
Features
- Write quality code
- Integrated database support
- Write user scripts against the Komodo APIs
- Leverage version control and run unit tests
- Syntax Checking
- Customize your environment
- Go Code Intelligence: code browsing, code hinting
- Install on Windows, Mac, Linux with just one license
8. Atom with Go-plus Plugin
atom: A hackable text editor for the 21st Century. Go-plus is An Improved Go Experience For The Atom Editor.Â
Features
- Display information about your current go installation, by runningÂ
go version
 andÂgo env
- Autocomplete usingÂ
gocode
- Format your code withÂ
gofmt
,Âgoimports
, orÂgoreturns
; optionally run one of these tools on save of anyÂ.go
 file - RunÂ
go install .
 andÂgo test -c -o {tempdir} .
 to verify your code compiles and to keepÂgocode
 suggestions up to date - Run a variety of linters (e.g.Â
golint
,Âvet
, etc.) against your code usingÂgometalinter
,Ârevive
 orÂgolangci-lint
- Run tests, display test output, and display test coverage usingÂ
go test -coverprofile
- Display documentation for identifiers in source code usingÂ
gogetdoc
- Rename the symbol under your cursor usingÂ
gorename
- Go to definition usingÂ
guru
 orÂgodef
- Highlight occurrences of an identifier usingÂ
guru
- Find usages of an identifier usingÂ
guru
Summary
Golang has advanced significantly since its early days. It now has a strong ecosystem with a variety of options for the development environment. The best 8 IDEs for Golang programming have been covered, but there are still more. A more comprehensive community-maintained list of IDEs and text editor plugins is available at the Wiki.
References
https://en.wikipedia.org/wiki/Integrated_development_environment
Editor plugins and IDEs - The Go Programming Language