Go 언어, 가장 적절한 IDE는? Go 언어

IDE(Integrated Development Environment)란 번역하자면 통합 개발환경이다. 
일반적으로 C/C++, Java, Python, Ruby, JavaScript등등 프로그래밍언어들을 이용해 개발하기 쉽도록 통합된 개발환경을 제공하는 툴을 말한다.
물론 메모장만으로도 개발은 할 수 있지만 GUI를 갖춘 텍스트 에디터, Syntax Highlight, 오류검출, 디버깅환경, 프로파일링, 유닛테스트, 패키지시스템등이 갖춰진 통합개발환경이 있다면 개발시간을 엄청나게 단축시켜줄 수 가 있기 때문에 좋은 IDE의 선택은 굉장히 중요하다.

최근 Go언어를 공부하기 시작했는데 역시나 가장먼저 한일은 좋은 IDE찾기였다.
여태까지 이런저런 IDE들을 다뤄보면서 느낀점 한가지는 그언어에 특화된 IDE가 있고 전반적으로 두루두루 좋은 기능은 갖춘 IDE가 있다는 것이다.

Go언어에 특화된 IDE : liteide
여러가지 IDE를 테스트 해봤지만 liteide의 경우 Go언어에 특화된 ide여서 그런지 Ubuntu, Windows 모두에서 가장 안정적으로 돌아가는 IDE였다. 다만 한가지 아쉬운점은 Jump to declaration 기능이 열려있는 문서가 아니면 동작하지 않는다. 이래서는 어느 패키지에 해당 선언이 있는지 알수 없기때문에 조금 불편하긴 하지만 아직 초기단계이기 때문에 버전업이 되면 개선이 이루어 질거라고 본다. 그것만 빼면 제목처럼 굉장히 가벼우면서도 깔끔하고 go언어에 최적화 되어있어 상당히 좋다.


두루두루 좋은 기능을 갖춘 적당한 IDE : Eclipse, IntelliJ
Eclipse.org logo
IntelliJ : https://www.jetbrains.com/idea/

두루두루 좋은 기능을 갖추었다라는 측면에서 볼때 Eclipse, IntelliJ 만한 IDE가 없다. 어떠한 언어를 개발하던 Eclipse, IntelliJ는 완성도 높은 개발환경을 제공해주는 플러그인이 있다. 그래서 내가 사용중인 Eclipse에는 C/C++, D언어, Common Lisp, Scheme, Java, Python, Julia, Haskell, Clojure, Go언어등 수많은 언어개발환경이 설치되어 있기 때문에 어떠한 언어를 개발하던 Eclipse라는 툴 한가지만 사용하므로 새로운 툴을 배워야한다는 부담감이 일단 없다는것이 큰 장점이다. 기능적으로 볼때에도 패키지시스템, 디버깅 환경, 유닛테스트등 가장 완벽한 IDE라고 생각하지만 아무래도 여러가지 언어를 지원하는 범용툴이다 보니 퍼포먼스적인 면에서 조금 무거운감이 있고 잡다한 기능이 많은것도 사실이다. 그래서 사용자중에는 해당언어마다 Eclipse를 따로 설치해서 사용하는 경우도 있다. Go언어 역시 지원하는 플러그인이 있다.


기타등등 : SublimeText, Vim, Emacs
위에 언급한 ide외에도 전통적으로 역사가 깊은 vim, emacs등이 있지만 GUI, 패키지시스템, 접근성등의 측면에서 부족한점이 있다고 느껴진다. 사실 emacs, vim에 최적화된 개발자는 언어가 기본적으로 제공하는 능력을 최대한 활용할 줄 알아야 하기 때문에 숙련만된다면 emacs, vim을 이용하는 편이 가장 좋다고 생각한다. sublimetext는 좋은 GUI환경, 쉬운 인터페이스를 갖추었지만 IDE라고 하기에는 디버깅, 패키지시스템등 부족한면이 없잖아 있다.


아래는 Go 위키에 기술된 IDE관련 자료이다.

[원문] https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins

IDEs and Plugins for Go

  • Atom: javascript-based editor from GitHub. Go support at go-plus
  • BBedit: commercial text editor for OS X.
  • Brackets: A modern, open source text editor that understands web design.

    • go-ide Go support with autocompletion through gocode.
  • Codebox IDE: open source cross-platform IDE, runs on desktop (Linux or OS X] and in the cloud with Go support

  • CodeEnv: A cloud-based IDE now includes full Go support.
  • Eclipse IDE: Very popular open source cross-platform IDE. GoClipse plugin enables Go support.
  • Emacs: Extensible and customizable text editor.
  • Gedit: Official text editor for the GNOME Desktop. Plugin for Auto-Completion and Code-Formatting available.
  • Geany: Geany is a text editor using the GTK2 toolkit with basic features of an integrated development environment. Supports Go syntax highlighting out of the box.
  • Gocode: An autocompletion daemon that includes support for emacs and vim.
  • godef: Prints the source location of definitions in Go programs. Integrates with acme and emacs.
  • Gotags: Generates ctags-compatible tag files
  • GoWorksNetBeans based open source Go IDE.
  • IntelliJ IDEA: Commercial cross-platform IDE, free Community Edition availablePlugin for Go support available.
  • jEdit: Open source cross-platform text editor. Syntax-highlighting file available.
  • joe: JOE is a full featured terminal-based screen editor which is distributed under the GNU General Public License (GPL). Supports Go syntax highlighting out of the box.
  • Komodo IDE Powerful cross-platform IDE with built-in Go support
  • Komodo Edit Powerful cross-platform text editor, Go-lang support available via plugin
  • Lime Text: Developed in Go, aims to be a Free and open-source software alternative to Sublime Text. Not quite ready yet but welcoming contributions to the progress.https://github.com/limetext/lime
  • LiteIDE: A simple, open source and cross-platform Go IDE
  • Notepad++: Free source code editor for Windows.
    • notepadplus-go Syntax highlighting, functions list panel (for code browsing), code completion for keywords & builtins.
    • The GOnpp plugin (available via Notepad++'s built-in Plugin Manager) provides code completion (requires gocode), function calltips, goimports integration, and keyboard shortcuts for common go commands. [sourcesbinaries].
    • GoAutocomplete is another code completion plugin.
  • Sublime Text: Commercial text editor. Plugin collection with IDE-like features available.
  • Textadept: Textadept is a fast, minimalist, and remarkably extensible cross-platform text editor. Supports Go syntax highlighting out of the box.
  • TextMate: Commercial text editor for OS X. Source code available under the GPLv3. Bundle for Go available.
  • TextWrangler: free little brother of BBedit. Both the Go module and Go.bbpackage for BBedit work for TextWrangler as well.
  • Vim: Vi Improved. There are a number of plugins available that make editing Go code easier.
    • The vim-go plugin includes misc/vim and has many other new improvements.
    • The Syntastic plugin gives instant feedback on compile errors
    • The tagbar plugin uses Gotags, above, to show an outline of the current file
    • vim compiler plugin for syntax checking
    • vim-godef plugin integrates with the 'godef' tool, above
    • vim-go-extra is vim plugin based on misc/vim in go repository. This works fine on windows too!
  • Visual Studio: Commercial IDE by Microsoft for Windows. A Go Language Support extension is available for Visual Studio 2010, 2012 and 2013 Pro, Enterprise, and Community.
  • Visual Studio Code: Recently launched in Preview, Visual Studio Code supports Go syntax highlighting out of the box.
  • GNU Nano: a simple .nanorc for GNU Nano ("pico").
  • Zeus: Commercial IDE for Go (Windows or Linux with Wine).
  • Wide: A Web-based IDE for Teams using Go programming language/Golang.

Other environments such as Xcode and Kate also had minor support checked in to the Go tree up until Go 1.3. If you want these, search the standard repository's history. Here is a link:https://code.google.com/p/go/source/browse/misc/?name=release-branch.go1.3


덧글

댓글 입력 영역