In my experience most Go developers seem to favor a terminal-heavy workflow, sometimes frequently shutting down and re-opening their editors in new paths and projects. The barebones simplicity of Go-the-language seems to be a nice match to this workflow. It's a different thing altogether to how large IDEs like IntelliJ expect you to work: opening up a project and staying in the IDE for a long period of time.
Both approaches are totally valid, of course, but I suspect Go developers are biased toward lighter-weight editors.
I concur. Go syntax is dead simple and even the most basic tools like https://play.golang.org/ can be used without hesitation for some quick and dirt POCs. In the discovery mode, when you're learning a new library, any tool that supports code completion and provides documentation links is nice to have.
Surprises me it doesn't have syntax highlighting.
Possibly because Rob Pike is not a fan of syntax highlighting, calling it juvenile.
https://groups.google.com/forum/#!msg/golang-nuts/hJHCAaiL0s...
Wow, his second response is really demeaning. Or maybe it's just a shock to me after hanging out in really friendly communities (Elixir etc.) for a while...
Re:Go best practices, six years in
by jasonwatkinspdx on Sunday May 01, 2016 @08:44PM
(#11608575)
On the whole I've found the golang community to be quite positive and enforcing good norms about crappy behavior. I wouldn't assume too much from a post Rob made 4 years ago.
Pike literally quoted a passage from the bible:
https://en.wikipedia.org/wiki/1_Corinthians_13
I won't argue that it was in good taste.
Re:Go best practices, six years in
by QuercusMax on Sunday May 01, 2016 @09:14PM
(#11608655)
If by "literally quoted", you mean paraphrased... Or is this just another case where literally doesn't mean literally?
No. Sorry. I should have linked to the NASB translation, which was the source of his (literal) quote.
https://www.biblegateway.com/passage/?search=1+Corinthians+1...
I feel bad for the person who wanted it on := lines because of sight issues.
Maybe it has to do something with the fact that Go's grammar is modest in size, being only 25 keywords. Compare that with C99 - 37, C++11 - 84, Rust 52 etc.
Re:Go best practices, six years in
by themartorana on Sunday May 01, 2016 @02:52PM
(#11607376)
Oh me too - my setup is usually split screen IntelliJ and iTerm2. But as projects grew larger, (and I wasn't a vim-er) a lot of the tools that come with a full fledged IDE became nice-to-haves (definition-on-hover as source code, click-to-definition, tree and object graph always open, and so on).
I know my setup isn't for everyone, but if you're looking for a good Go IDE experience, especially if your projects are of any size, don't pass over trying IntelliJ. I spend 95% of my time in Go now, and IntelliJ has been surprisingly good.
As a Java developer that uses Intellij exclusively this is great news. Maybe I'll check out Go more. I really hate using languages without good IDE integration.
I think you'll have a good experience with the integration. Go is the only language I know of where tooling is mostly painless. If you can manage to grok the notion of GOPATH, everything else pretty much just works--even in vim, all you have to do is install vim-go and you get code completion, automatic formatting, jump-to-definition, test execution, coverage reporting, compilation/compilation-error-reporting, etc etc all out of the box (vim-go just wrangles a bunch of programs that provide these facilities, which mean they can also be wrangled for other editors as well).
I second this. I've given Gosublime (and more recently VSCode) a solid try on several occassions. Neither hold a candle to the Intellij Go plugin. Being able to give solid rename refactor, and code navigation, even when your code is in a partial spaghetti, non-compiling-mid-development state is hard. And the Intellij plugin does a decent job at it. Not quite Java-level good. But pretty darn good.
The existing command line Go tooling (while great) just don't do a good job at providing that kind of support to your IDE.
go-plus for Atom is pretty good. I haven't used the IntelliJ plugin, so can't compare them.
It also covers "important-to-me" features the author mentions. I haven't tried VSCode yet, but have tried all the others listed. IntelliJ is fantastic for Go.