Gogland – Capable and Ergonomic Go IDE
jetbrains.com
jetbrains.com
Jetbrains has yet to let me down - They got me covered for Java, C++, PHP and JS/TS and now they have a golang IDE - I will definitely be learning go with a lot more enthusiasm.
If you are using VS Code for TS, and you think that's awesome...give Webstorm a try. It's a whole another level.
While it's a paid IDE and that might not go well with a lot of people...it's one of the best software I've paid for (and something I use daily).
Actually it isn't. Webstorm is a memory hog. While there is a notable latency with VSCode, it doesn't feel like my computer is crashing each time I use it. Jetbrains products are great for Java,Python and PHP dev. Just not for Javascript development. Furthermore, VSCode obvious advantage is that it is written in JS, making it easier to develop custom plugins without the need of for complex Java SDK.
Try turning off some of the inspections.
Also, Webstorm being a Java program, you can control its memory consumption in the startup flags file, vm.options IIRC. Try giving it less memory. Or, if the settings are apparently way lower that the specs of your machine, consider giving it more memory.
I'll wait for Gotlin :)
Just looking at Rubymine..
Completely bogus handling of global variables (reported 2 years ago)[1]
No native support for pry over irb (reported 5 years ago)[2]
Bogus warnings when loading up yaml files (reported 3 years ago)[3]
[1]:https://youtrack.jetbrains.com/issue/RUBY-15612
In short: If you run a Ruby program that sets up global variables, other ruby files required after that point can access those variables, even though Rubymine seems to think otherwise. This is documented in the program output linked to that bug report.
I suppose the developers mostly fix issues that affect many people, and affect reasonably written, idiomatic code. Name resolution in a highly dynamic language like Ruby is somehow tricky, and may be resource-hungry, especially in corner cases that you described.
..Whatever. I love how both of you focused on the one example and completely ignored the two others. Have another one - Mako syntax highlighting in Pycharm has been broken for over a year now. https://youtrack.jetbrains.com/issue/PY-17932
I LOVE the tooling in webstorm, but the it just eats up all my ram and pegs out the CPU on my 2011 MBP. And if it's trying to index a large project, I just take a break because it renders my machine almost unusable.
... One time I tried to do "setX(y);" in one of my programs, and it warned me that I probably didn't mean to do that. Amazing.
If you have less than 8GB of RAM though, you probably don't want to use it for large projects.
https://github.com/fatih/vim-go
https://github.com/dominikh/go-mode.el
It's not at all the case these days, especially in languages outside of java, that an "ide" is the better experience.
Is this filling a need that I'm just not aware of or is it a case of doing something just because they can?
Answering your question, well, that's what they do, they have a lot skin in the `editor` and `developer tool` game and also a lot of stuff to build on top, so it's not a surprise they want to 'serve' a lot of languages. I don't know about Go specifically but I'd guess even if not 'filling a need' I'd think possible that they are capable of discovering ways of smoothing out the experience or something, which is valuable.
But as you say maybe there is a demand for such product specially for people coming from Java background.
VSCode's debugger worked well in the early stages of Go which why my team and I switched to it and sticked with it. VSCode is pretty awesome and, we believe, better than Intellij's unofficial plugin.
I'm really excited by Gogland though
That's a very assertive statement to make about something that's completely preferential.
For what it's worth, I tried VSC but really didn't like it. Partly because the whole Electron thing made it run like crap on modest hardware with lots of other stuff running. And partly because I didn't much like the defaults (font sizes, layout, etc). The latter could all be "fixed" to my preferences but IntelliJ and Sublime Text - both with their respective Go plugins - were already better aligned to my workflow so I saw little point wasting time on yet another "text editor with knobs on".
Also Eclipse gets a lot of hate, but when I was in college it handled our AUV source code with Python, Java, and C++ all in one project so nicely. I don't really know another IDE can that can handle that situation as well.
Eclipse gets even more hate and some of it is deserved. They had a few bad releases. But the newest neon release has addressed most of the mistakes they made. Eclipse has wonderful code completion for C++ even gcc on windows with custom libraries. And there are language plugins for Go, Python, Lua and many others that work quite well.
What does Gogland mean? This is a codename and not the final product name. Our inspiration was the name of an island in the Gulf of Finland, not very far from Kotlin.
idea .
mine .
gland .
I did a bit of Go with the plugin and it was already pleasant. I guess one feature I'd like in dev mode would be transparent management of unused variables that the compiler don't like. As a web developer I may be accustomed to quick "code & try".
A bit off-topic but Jetbrains seems to be in a design-spree those days, with new flat & grey UI elements, which is not really a positive change.
But the Go experience inside Atom is already exceptional. Navigate to definition, auto formatting, auto manage imports, debugging and breakpoints, automatic running of tests, and near-PERFECT code completion.
If Gogland offers anything over that, it'd have to be pretty awesome for me to switch, because JetBrains tools tend to be heavy.
Right now, I'm using Webstorm with the Golang plugin on a 2012 13" MacBook Pro with 16GB RAM. What's so heavy about Jetbrains tools? For me, it's quite a bit more responsive than VisualStudio 2015 on a 2016 Dell Laptop with 16GB RAM and a much newer processor. (Both laptops have SATA3 SSDs.)
Looks like it still isn't fixed either. https://github.com/atom/atom/issues/8864
https://github.com/go-lang-plugin-org/go-lang-idea-plugin/is...
* goimports integration? I would have a hard time going back to writing Go code without goimports
* on-the-fly code checking (like Emacs flycheck)? This is what makes working in a statically typed language so much more pleasant than (say) Python.
The documentation stuff looks pretty, but I just use Dash for that.
- navigating around the code: jump to interface, jump to implementations, jump to definition, etc. This sucks in Emacs even using etags.
- refactoring: highlight code, press a hotkey, now it's a function or a variable and all repeats have been replaced with references to it
Seeing a choice between Emacs and IntelliJ for Go, the decision comes down to how likely am I to use those two features. I don't do much Go, but the appeal of having that functionality is pretty significant. I would definitely try Gogland based on my experience with Java et al.
Emacs doesn't implement navigating and refactoring go code in elisp, as it does for other languages. For go, there are editor-independent tools, like go-guru, which are used not only by Emacs, but also for vi, vscode and multitude of others. Or just from command line. I would consider golang to be the last language, that needs an Idea-based IDE.
Being able to navigate the code (and refactor it, really) in the same place you are viewing it is a big win for me. At least in the other languages I care about.
Yes (or at least, go-mode in total does): C-c C-j to go to a definition (annoyingly, not the stand M-. every single other language mode uses, why go-mode why), M-, to return up &c. Also, with projectile, searching an entire project (not just source) for strings & regexps is incredibly easy.
I'm not 100% certain, but there's a strong possibility that emacs invented code navigation.
This shows you how: https://docs.google.com/document/d/1_Y9xCEMj5S-7rv2ooHpZNH15...
https://docs.google.com/document/d/1_Y9xCEMj5S-7rv2ooHpZNH15...
UPD: Now, if only there was something similar (in Emacs) for Java, Ruby and JS...
not a trivial thing to implement for Go though. Last time I checked the Go plugin for Intellij was missing this functionality
I'm gonna sound snarky, but not everyone wants to use an ancient editor. I could just as well make a case for vim. I use vim over emacs, but I'd choose a nice IDE over either. Beyond that, if you're well versed in the JetBrains ecosystem, it makes perfect sense to keep on using it.
But I'm really just wondering how good this IDE's tooling is, comparatively.
Back in the day (late 80's in my case) I started using emacs because it was faster to figure out using it as a basic editor than vi. (Built in docs.)
http://osxdaily.com/2012/05/23/see-all-keyboard-shortcuts-ap...
But you're peddling the pretense of using Vim because you DON'T want to memorize keyboard shortcuts?!? Just stop.
Of course, for anyone who hasn't sunk years of their life into learning Emacs, this looks like a fantastic IDE.
Gobland is just a commercialized version of IntelliJ for Go. I guess the next move is IntelliJ will remove Go plugin to force users using commercialized version.
All their plugins are available for IDEA Ultimate and other IDEs, what are you talking about?
How so?
When you don't rely on an IDE, you tend to think about your code's organization more, since you have to work with that organization every day. When your IDE hides that organization from you, people's laziness kicks in, and you end up with code whose maintainability suffers outside of the IDE.
I believe Visual Studio suffers from the same issues as JetBrains' IDEs do, and also encourages similar poor programming practices. No argument from me in that regard.
Here are some of JetBrain's takes on the subject: https://www.jetbrains.com/help/idea/2016.3/requirements-for-...
https://youtrack.jetbrains.com/issue/IDEA-157837
https://intellij-support.jetbrains.com/hc/en-us/community/po...
There are plenty more examples on JetBrains' support website regarding the bloated molasses issues, in case you still have doubts.
Edit: I guess not very wide reaching connotations then!
"What does Gogland mean?
This is a codename and not the final product name. Our inspiration was the name of an island in the Gulf of Finland, not very far from Kotlin. Send us your name ideas and suggestions!"
So a.) it's not final and b.) it has nothing to do with racism, there are lots of words that sound offensive, funny etc. in many languages, please don't think the whole word needs to be vary of our customs, it's at best elitist and at worst the "PC police".
If you feel so strongly about it, you can suggest a new name, but I am saying that they shouldn't have to change it. BTW everybody's fine with 'git' as well, why not this?
It's also a very anglo-centric viewpoint, why shouldn't the inhabitants of Gogland[0] have some software named after their homeland?
As a matter of fact, I don't even know what you're referencing: 'wog'?
Not to sound negative or anything.
Did you ever use a JetBrains product? No? I thought so.
I still think Go is far more keyboard/CLI oriented as compared to Java. From their description it looks like they are shoving some Go stuff on to a Java IDE. It is still good for people craving a Go IDE in Java mold.