Go IDE. What is an IDE, and Which One Should I Use?
I know, I know, you want to get back to writing some code. I understand, trust me. I debated quite a bit about whether or not to include this post yet or dive back into talking code. Ultimately though knowing what an IDE is and picking a Go IDE is going to make your life learning Go so much more efficient I felt I had to bring it up now.
So, first of all, what is an IDE? An Integrated Development Environment on its surface looks an awful lot like just another text editor with some extra stuff around it. That extra stuff can seriously make the process of writing code easier, faster, and more efficient. As opposed to a simple text editor an IDE has built-in tools for compiling your code, testing, troubleshoot, and run your code. That’s the whole integrated part of Integrated Development Environment. Many IDEs also include code color coding to make it easier to see the different parts of the code and syntax checking, which is like spell/grammar check for your code. Often these IDEs also include code suggestions/autocomplete as you’re typing to help you write code faster.
So, should you use an IDE? Well, you certainly don’t have to use a Go IDE. For years I actually didn’t use an IDE myself, I just wrote my code in Vim and compiled it from the command line. For certain languages, I actually still work this way. I write a lot of Perl to automate various tasks and since I tend to do this directly on my Linux servers I write Perl exclusively using Vim. When it comes to writing Go, however, it’s just too convenient for me to not use a Go IDE.
So, what Go IDE options are out there for you to choose from?
GoLand from JetBrains
Goland is actually the only dedicated Go IDE that I’m including in this list. JetBrains is a software development tools company that makes several IDEs for a variety of languages. They’ve been in business for over fifteen years so the core technology behind their IDEs is very stable and mature. Between the core features and community provided plugins, GoLand has virtually every feature you could ask for.
GoLand is actually the Go IDE that I use both personally and professionally. I’ve purchased my own personal license for GoLand and my company has licenses for the entire JetBrains portfolio of IDEs. We use several programming languages at my company and it’s a big benefit to have custom tailored IDEs for those languages that still provide the same exact user experience between them. Now, the downside of Goland is that like I’ve alluded to, it’s commercial software and must be purchased. At $89 for the first year, GoLand is obtainable, but when you’re first learning to code probably hard to justify.
Visual Studio Code (VS Code) from Microsoft
VS Code isn’t strictly speaking a Go IDE. VS Code is a generic IDE from Microsoft. VS Code is designed to be extensible and has extensions available for a large number of languages including Go.
VS Code supports syntax highlighting and autocomplete, debugging (troubleshooting tools), and has built-in version control for your code. Not only does VS Code have the development and support of Microsoft behind it but it’s incredibly popular in the open source community. Between official extensions and community created extensions VS Code is a high quality and importantly free Go IDE option.
Atom from GitHub
Atom is also a generic IDE as opposed to a dedicated Go IDE. Atom was developed by GitHub (which is now actually owned by Microsoft) with the UI developed by Facebook. Atom is also very popular amongst the open source community and Atom itself is actually open source, released under the MIT license.
So, which Go IDE should you use? Ultimately what IDE you use (or using a Go IDE at all) is a personal preference. My recommendation though is that when first learning to program it will make your task much easier to use an IDE. When you’re first learning the syntax and packages of a language having your text editor providing a guiding hand will save you tons of time and frustration.
As I mentioned, I use Goland for my work and personal projects. However, as I don’t expect most readers of this blog to go buy a nearly $100 program when they don’t know how to code I’m going to use VS Code for this blog so that you can follow along exactly. Now, you don’t have to use VS Code, you could use Atom, Goland, or another IDE (or none at all) and still be able to follow along. All of the posts themselves will teach you to code with Go no matter what you’re writing your code in, I will at times though offer tips that will be specific to VS Code.