Go 1.4 was released today and I thought I would write about where I would like to see Google’s Go team dedicate some resources. By writing this, it’s my hope that it somehow manages to make its way back to Google and hopefully they can get to work on implementing a solution.
Go needs an IDE
If you’ve written any go code then you know that there isn’t any standard or even predominantly used development environment or IDE. From what I’ve gathered by watching the go-nuts Google group and reading other blogs It seems that most people are using either Sublime or LiteIDE. I’ve tried both and can’t say that I’m a huge fan of either one.
I’m of the belief that a good IDE can simplify common tasks and dramatically improve a developers productivity. At the same time I think a good IDE could rapidly accelerate the adoption of Go which would then lead to further improvements in both the amount and quality of go code. If you take a look at two of Google’s other projects, Dart and Android you’ll notice that Google has created IDE’s for both, Dart Editor for Dart and Android Studio in the case of Android. In the case of Android Studio this seems to be a highly customized version of JetBrains InteliJ. While Dart Editor uses components from Eclipse. There is currently a plugin for InteliJ that adds some basic go support but I would love to have full-fledged IDE. I understand that not everyone sees the benefit of an IDE but there are many developers that do. For those that do appreciate the benefits of an IDE this would be seen as a wonderful step forward for Go.
Go needs a working debugger
If you’ve tried to use GDB you know exactly what I’m talking about. GDB doesn’t work with Go. Writing fmt.Printf everywhere is reminiscent of my early days working with PHP. I’m pretty sure I’m not the only one that would like to see a real working debugger for Go.
An IDE with a working integrated debugger would be a great addition to the Go community.
Florin Patan says
Hi Benjamin. I couldn’t agree more with you. That’s why I’ve started working on a proof of concept for implementing Delve into IntelliJ IDEA plugin. I’ve been out of business for a while now but you can track the issue here https://github.com/derekparker/delve/issues/22
Benjamin Knigge says
That’s awesome that you’ve started work on this. I read about Delve a couple of weeks ago on the go-nut group. What I would really like to see is Google get behind an InteliJ port in the same way as they have for Android and Dart. I’m not really keen on adding a bunch of interdependently developed plugins to InteliJ that are in various stages of completion. Maybe I’m lazy but I want something that just works out of the box. Google has the resources but apparently it hasn’t been a priority for them. Maybe if we collectively show enough interest Google can move a couple of the people that brought Android Studio to 1.0 over to work on a Go port of inteliJ.
Florin Patan says
Well the interface will definitely be IDE agnostic so that others can benefit from it as well, not just IntelliJ IDEA.
As for the support for the plugin itself, my biggest problem at the moment is that I don’t have enough time after I get home from work to meaningfully contribute to it in a fast way, hence the current state of things. Mihai, the author of the plugin, got some big rework into it recently and we’ll release something way better soon (I hope).
Google might not be that interested in the IDEs business itself as Android is a pretty special case as they provided the support for Eclipse in the beginning and then well, IntelliJ was more appealing (or whatever was their reason).
Also, many people in the Go community seem happy with vim or emacs or sublime so the “need” for an IDE is not that big. I’ve got people from some big companies asking for more support but, as previously said, time is a scarce resource.
We’ll see what the new year will bring in the IDE space for Go 😉
Benjamin Knigge says
I’ve had to endure Eclipse in the past and after a few days with it I can see the appeal of doing everything in Emacs. Google also put together and IDE based on InteliJ for Dart their replacement for go seems to the Exception for some reason. I think that they might be waiting until the language is a bit more mature before they release something.
Anonymous says
My opinion is they put together an IDE for Dart because of the audience they were targeting, for go they didn’t quite feel the need given that target population.
Anonymous says
Have you heard of emacs?
Benjamin Knigge says
Did emacs come out with a working debugger for go?
Anonymous says
Nope – I agree entirely that a debugger would be amazing. However, while I agree Sublime and LiteIDE are extraordinarily lacking in functionality, I have never found emacs to be lacking in support for the same functionality I would expect from say Eclipse for Java (except emacs doesn’t hog all my RAM, how saddening that is). Particularly since it is so unbelievably easy to integrate any new tools with emacs (as long as you’re willing to learn a little EmacsLisp).
Anonymous says
Apologies for my earlier sarcasm, I hadn’t had enough coffee yet 🙂
Florin Patan says
Yeah but I don’t get this one. When I can get laptops with 16Gb of RAM or more, is really 500Mb that IDEA uses such a big problem compared to all the functionality has + the fact that I don’t need to learn something new that’s useful at all outside emacs only?
And so you get to have a difference of opinion on this one. Some people like IDEs, some don’t. I have friends how like vim just as much as I like GUIs.
Having a debugger for everyone would definitely be nice.
Benjamin Knigge says
No worries. I’m just glad someone bothered to read what I’ve written. I just put this blog up yesterday. I’ve never gotten into using emacs, vi or vim for development. I’m fully aware that there are people of the opinion that all “real” programmers use one of the above mentioned text editors. Those kind of people share many similarities with other extremists.
Anonymous says
It really doesn’t take that much effort to get a big gain from using emacs or vim. I used to use Sublime primarily but it just didn’t support enough of the functionality that I wanted to use. I don’t see it as an issue of being extremist or any of those other ridiculous views, it’s simply a matter of being willing to put in the time. Also, to the reference of 500MB, Eclipse used to routinely chew up >2GB of RAM for me and when you’re developing multiple large scale services on the same machine (maybe not the best idea) 2GB is a fairly large amount of memory to steal for just an IDE to index code to work.
Benjamin Knigge says
I think we can all agree on our hatred of Eclipse.
Anonymous says
Without a doubt.
sbegaudeau says
“If you take a look at two of Google’s other projects, Dart and Android you’ll notice that Google has created IDE’s for both, Dart Editor for Dart and Android Studio in the case of Android. These both seem to be highly customized versions of JetBrains InteliJ.”
Speaking of hating Eclipse, Dart Editor is built on top of Eclipse, you can have a look at its source code here: https://code.google.com/p/dart/source/browse/#svn%2Ftrunk%2Fdart%2Feditor%2Ftools%2Fplugins%2Fcom.google.dart.eclipse.ui
Benjamin Knigge says
You’re right I don’t write Dart code. I must have been thinking of a plugin for inteliJ that I had seen for Dart. I’ll update the post.
Thank you