> The mental image of a huge ram sucking IDE with code completion for frameworks is simply incompatible with
> what I would consider the ideal creative process for me as programmer.
Java has long been my primary professional language, and over the past few years Go has taken on a strong secondary niche at my job. I'm big fan of both, and tend to play Switzerland in arguments between them.
That being said, the best Go IDE out there right now is the official Go plugin for IntelliJ... which again, happens to be the best Java IDE out there. If you are doing modern software development in ANY language, then you are probably traveling one of three paths:
(1) Using an IDE based on JetBrains or Eclipse.
(2) Using a variant of Microsoft Visual Studio, which is about an order of magnitude more bloated than #1.
(3) Using a plain text editor, which for a typesafe language is a bit daft.
What does the Go plugin for IntelliJ offer that Go plugins for Emacs don't? My setup right now has live error checking (highlights errors as they occur), gofmt on save, safe refactoring via gorename, jump-to-definition, proper autocomplete, and Go Oracle integration, for e.g. finding all callers of a method. Due to being Emacs it also has much better support for Vim keybindings via Evil mode.
Debugging, cross-platform, integration with a lot of other languages, and databases, local history, out of the box configuration for everything you've just mention (including the Vim key working mode, via a plugin) so that people don't spend time in doing all of that and so much more :)
> (3) Using a plain text editor, which for a typesafe language is a bit daft.
What's wrong with using Vim, Emacs, or Sublime? There are plugins out there which get you a lot of the IDE magic (including jump to definition, autocomplete, autofmt, and there probably is something for inline errors)
That may be stated too strongly, but the argument is in a statically typed language you go to all the trouble to provide the compiler with sufficient amounts of information, but then don't leverage that in your editor.
E.g. if you call a statically resolved function, your IDE should be able to take you to the function's definition.
Because if it's a text editor it doesn't have all the info and functionality you have available in an IDE. Run tests for your current function, navigate to definition, manage large projects, configure builds, see test coverage, step with interactive debuggers, REPLs, vcs integration, symbolic refactorings, autocomplete, etc.
Most of this can be added to emacs too. Then it's an IDE.
> what I would consider the ideal creative process for me as programmer.
Java has long been my primary professional language, and over the past few years Go has taken on a strong secondary niche at my job. I'm big fan of both, and tend to play Switzerland in arguments between them.
That being said, the best Go IDE out there right now is the official Go plugin for IntelliJ... which again, happens to be the best Java IDE out there. If you are doing modern software development in ANY language, then you are probably traveling one of three paths:
(1) Using an IDE based on JetBrains or Eclipse.
(2) Using a variant of Microsoft Visual Studio, which is about an order of magnitude more bloated than #1.
(3) Using a plain text editor, which for a typesafe language is a bit daft.