haskell業界では最近,cabalをそのままどうこうするんじゃなくて,stackなるツールを使うのが便利らしい.
試してみたらこれが本当にすげえ便利でびっくりした.そもそもhaskellコンパイラや基本ライブラリのインストールさえしなくていい(というかstackが必要に応じてホームディレクトリ下に入れてくれる).stackさえ入れておけば,あとは全てstackにお任せできるようだ.普通の人はhaskell-platformとかを使う必要すらないのか.
もちろんプロジェクト毎に必要なコンパイラやライブラリのバージョンを管理もしてくれるので,cabalのsandboxを明示的に操作する必要も別にない.どうも,「sandboxごとに同じライブラリがインストールされることが多くてなんか無駄だな〜」ということもないようだ(stackがバージョンとともに一元管理してくれてるみたい).
プロジェクトディレクトリを作るまでもないようなプログラムで,runghcで動かすような場合でも,必要なライブラリとかを書いておける拡張がされていて,同じように管理できる.これでちょっとした処理のスクリプトとかでもhaskellでやって問題ないな.
利用者の立場からは,バージョンアップが活発なhaskell業界でも依存関係地獄が起きないようにする,最終的な解決手段だと言い切ってもよさそうな雰囲気である.でも,stackが使ってるリポジトリ(各種ライブラリやツールの)をちゃんと管理する仕事は,どうも有志のひとたちが頑張ってやってるみたいだな.今後もちゃんと続けていける運営になるとよいのだが.
まあとりあえず,stackで始めれば今までより飛躍的に環境構築が楽なので,haskell始める人が増えるといいと思う.