HaskellDevEnv: IDE for Haskell Programming
Haskell IDE - Visual Studio Code + Haskelly plugin
컴퓨터 관련 학과 전공자가 아니라서 프로그래밍 언어를 배우는데 많은 어려움을 겪었다. 속도도 매우 더디다. 배울 수 있는 길도 모르기도 했고 포기도 여러 번 했다. 그래도 다행이다. 요즘에는 MOOC라는 것이 있어 2014년도부터 COURSERA나 EdX 등에 접속만 하면 양질의 강의와 자료를 접할 수 있게 된 거다. 그런데 MOOC이 있더라도 어려운 것은 변하지 않는다. 한 언어에서만 몇 번을 포기하기도 했는데, Haskell이 그렇다. 몇 번을 그러니 뭔가 원인이 있으리란 생각이 들기도 한다. 이런 것들.
1. 설치가 어렵다.
Python처럼 쉽게 설치되고 더 쉽게 실행되지 않는다. 설치 단계부터 벽에 부딛치는 것이다. Linux가 아니라 Windows10이라 더욱 어려워진다. 이제는 안다. (1) Haskell Platform, 혹은 (2) 64bit stack installer를 이용하는 것이다.
2. 용량과 설치되는 폴더가 산만하다.
Haskell Platform으로 설치하던, stack으로 설치하던 용량이 꽤 크다. 그리고 설치되는 폴더와 파일의 위치가 꽤나 산만하다. 뭐가 어디에 어떻게 설치된 것인지, 정말 신경이 많~이 쓰인다. Windows system이 더럽혀지는 것처럼 생각되어 벌써부터 PC 포맷할 생각이 들기도 한다. 맛만 보려고 Haskell Hugs라는 것을 다운로드받아서 해보기도 했는데 한계가 있다.
3. 적절한 IDE를 찾기 어렵다.
사실 이게 제일 크다. 뭘 해볼 수가 있어야 맛을 보지. 뭘 배우기 위해 연습이란 것을 해야 하는데 그게 어려운 거다. Sublime Text3 (+ REPL, Load file to REPL), Vim, Intellij 모두 실패했다. 된다고, 좋다고 하는데 안 되고 시간 꽤나 버렸다. Emacs는 Intero라는 것을 설치하면 되긴 됩니다만, Emacs 자체가 Haskell보다 더 어려운 것 같다. 그래도 되긴 한다. ConEmu란 것을 설치하고 창을 나누어 script, ghci REPL, cmd로 고정시킨 환경을 만들어 보기도 했다. 그러나 그건 정말 도스창이란 command prompt에서 매번 명령어를 입력하고 엔터를 치고... 단축키도 없다. 결론은 두 가지 방법이 제일 좋다.
(1) Emacs + Intero
(2) Visual Studio Code + Haskelly(plugin)
* 2019.3.16 수정
Emacs가 이렇게 괜찮은지 처음 알게 되었다. Haskell (intero), Clojure (cider), Lisp (sly)는 vscode보다 낫다. 익숙하게 되는데 오래 걸리지도 않는 것 같다. 먹고 사느라 또 한참 그만두고 다 잊어버려 처음 시작할 때 고민하지 말고 Emacs 깔고 시작할 것!
* 2020.3.5 수정
Emacs + Intero가 안 된다. 왜 안 되지? (미해결)
4. File I/O, GUI 는 어떻게 하는지 초보자로서는 알기 힘들다.
뭘 출력하는 것이 이렇게 어렵단 말인가? 뭘 화면에 프린트하기 위해 이다지도 어려운 개념이 필요한가? Monad?
5. Syntax, Grammar, Algorithm, Data structure
설치, 연습 환경, file 읽고 쓰기도 어려운데 그 내용도 참 어렵다. 특히 "M" 나오면 아! 내가 또 괜한 시간 낭비를 했구나! 하고 포기를 한다. 몇 달 지나고 다시 다 잊은 상태로 또 한 번 시작해볼까? 하면서 새로 시작하곤 한다. 빙어?
결론!
* Haskell stack으로 Haskell을 설치하고, 그 다음 Visual Studio Code (+Haskelly plugin)을 사용하자.
* Emacs에 익숙하거나 막연한 선망이 있다면? Intero 패키지 깔아서 써도 된다. C-c C-l 명령으로 load to REPL 할 수 있다.
* Stack으로 Haskell을 설치한다. Haskell Platform보다 stack으로 설치하라는데, 정확한 이유? TODO: 찾아볼 것.
* Stack으로 설치하더라도 Global보다는 Project를 생성하고 local 하게 설치하자. 먼저 global로 설치하면 나중에 project를 생성할 때 다른 version의 GHC가 여러 개 깔리면서 C 혹은 D 드라이브 용량을 거의 6기가까지 잡아먹을 수 있다.
* 시간을 두고 천천히. 포기하지 말고. 다들 어려워한다. 나만 그런 것이 아니다. 그런데 남들은 그 아까운 시간에 다른 가치있는 것을 하겠지만.