珍しく cygwin ネタがホッテントリに入ってたので補足とかしてみる。
1.7 は新しい
ざっくりブクマを見てると、1.3 や 1.5 の頃の影響か「使えないイメージ」が残ってる人がけっこういるみたいでしたが、実は 1.7 になってそこそこ使えるようにはなってきてますよ。
Linux のコマンドがほぼ使える
POSIX API の充実にともない GLib や Qt のような主要ライブラリも移植されたため、かなりのコマンドの移植が楽になっているという背景があるのではないかと思う。
また、本家にない場合は Cygwin Ports を探すという手もある。
apt-cyg
残念なことに完全な setup.exe の代替にはなれない。使ったことがないけど、おそらく起動中の *.exe/*.dll にはロックがかかることで apt-cyg からは cygwin1.dll や bash.exe は更新できないはずである。
制限付きのパッケージマネージャという位置づけで使えるかもしれない。
java
こちらも残念なことに移植されている gcj や classpath は本当に授業の課題程度しか使えないです。
java アプリケーションを起動するという点だと、今はおそらく cygwin からシームレスにシステムネイティブの java を呼び出すのが主流。
例えば scala では bin/scala (シェルスクリプト) の中でシステムネイティブの java への引数を cygpath で cygwin→windows へパスの変換をしてから渡すようになっていた。
Samba
IP アドレスもいいけどネットワークドライブと組み合わせるのもアリです。
% cd /cygdrive/z/
コンパイル
たしかに遅い。けど、マシンスペックに依存するのも事実。自分の環境では MacBook Air の VirtualBox に Windows7 をインストールして、そこで cygwin の make を実行したりしているが、昔に比べるとだいぶ速くなってきている。