Nadeal

您现在的位置是:首页>所属分类

所属分类

几款Golang IDE对比

Nadeal2022年2月9日 11:50个人博客260
工欲善其事必先利其器。一个好的工具、好的集成环境能够解决大部分前期的疑问和烦恼。我个人比较推荐Goland。
Go语言目前已经在开发者中越发的流行,自然很多人都在寻找合适的IDE来实现代码语法高亮、自动补全以及其他编辑特性。
 
墙裂推荐:

Goland

Goland,商业公司jetbrains 近两年推出的 Go 集成开发环境,它真的是无比强大。

我相信很多程序都用过他们家的IDE,比如Java的 Intellj IDEA、PHP的PHPStorm、Python的PyCharm、C++的CLion、前端的WebStorm等。使用JetBrains的IDE,我们可以享受到它优秀的开箱即用的体验和 jetbrains 积累十几年的插件体系。

前些年,也就是Goland发布之前,如果我们希望用jetbrain的IDE进行GO的开发,需要通过它提供的插件支持。Goland发布后,这些插件似乎已经下架了。

不得不承认,Goland的功能层面做的确实非常完美。不过有几点我想吐槽一下,首先必须要提的是,Jetbrians的IDE基本都存在着卡顿的毛病,资源消耗比较严重。虽然一些大牛提供了优化方案,但体验下来,和其他IDE依然没有相比。

Goland的开箱即用,使它的问题很少,确实没有多少可介绍的,装起来基本就可以开干!它很好用,只是作为商业工具,对于学习golang的爱好者来说,总希望能够免费试用。这时候可能需要一些方法协助了。

 
下面就几种常用的IDE进行对比介绍:
1. Sublime text
这个文本编辑器在开发者中较为普及,应该说sublime并非一个完全成熟的IDE,但是它具备很多语言的扩展插件,比如python、lua等,其中有一个插件GoSublime专门针对go语言,GoSublime提供了语法高亮、自动补全等功能,这些功能使得Sublime Text成为一很实用的Go IDE。
 
2. IntelliJ
IntelliJ IDE由Jetbrains提供,在java开发者中非常流行,其自带的Go插件支持语法高亮显示、代码补全、自动编译以及子库支持。这就使得你可以很方便地将项目拆分成多个包的同时,你可以一个单独的IDE中浏览它们。
它有一个非常好用的功能,插件使用了突出显示来显示未使用的变量或包(如下图示中的hdea变量目前是未使用的变量)。
 
3. LiteIDE
LiteIDE目前也是一个专门针对Golang的IDE了,我也在使用它,功能很全面,具备语法高亮、自动补全、自动编译、调试、包浏览及管理。
调试器在后台使用的gdb,这样你可以方便地打印变量值、查看当前堆栈信息。
 
4. Intype
Intype是仅windows下支持的文本编辑器,具备有限的语法高亮支持和特定的高亮显示设置。
 
5. Netbeans
Netbeans内建支持了大量的语言,同时具备Go插件从而可以同创建正常项目一样,创建go源文件,除了语法高亮以外,其Go插件并不支持其他特殊功能,如何使用IDE编译Go文件还不得知。
6. Eclipse
Eclipse可能是这里列出的最受欢迎的IDE。GoClipse插件在Eclipse中添加了IDE功能来支持Go。GoClipse提供了可配置的语法高亮显示、自动文档补全、自动编译以及最重要的实验调试支持。
7. TextMate
TextMate是一个Mac OS下的文本编辑器,可扩展它以突出显示Go代码,并提供源代码片段。
8. Komodo Edit
Komodo编辑器(或IDE)是来自ActiveState的开源代码编辑器。它基于Monzilla 7.0并且支持跨平台,支持多种语言,但是免费版的Komodo功能有限,它的golang插件komodo-go提供了基本的语法高亮、代码补全功能。
9. Zeus
Zeus是一个Windows下的编辑器,它直接支持Go语言,它使用ctags实现代码补全,但是可配置成使用Go语言,zeus支持代码折叠、自动缩进、代码导航、GDB调试。
总结:
下面两个表对上面讨论的几个IDE作了总结,这个表说明了插件或者包的许可情况、运行平台:
如下表说明了在不同的IDE中可用的功能项:
现在,Eclipse和IntelliJ插件都非常成熟,并且有丰富的功能来开发Go应用程序。更轻量级的选择如Sublime Text2、TextMate和LiteIDE,对语法高亮显示、预定义代码片段、代码自动补全和自动格式化(使用gofmt)都提供了很好的支持,Netbeans和Intype非常有限,它们只提供语法高亮显示。
这里没有讨论像vim和emacs,因为重点在于图形编辑器。如果您不喜欢本文中的解决方案,更倾向于使用基于文本的编辑器,那么我建议您查看一下Go如何集成vim和emacs。