プログラマーとかSEが開発をするのにWindowsとMac OSXどっちがいいのかという問題を考えたいと思う。
経営/SIer?目線だと多分Windowsが割とデファクトになっていて、なぜかというと単純に
- 端末あたりの導入コストが少ない
- セキュリティ周りとかサポート周りをマイクロソフトがやってくれそう
- 必要なソフトウェアやミドルウェア、開発環境がもうすでにWindows仕様に集まっている
- そもそも使用するクライアントとか、商品を提供する側がWindows使っているから
それに比してMacは、
- Unix-like(Unix-y)である
- すなわちPOSIXスタンダードに則っている
- ユーザーの自由をある程度尊重してくれる
- ターミナル周りがMS-DOSに比べるとマシ
- ターミナルから道具とかをインストールできる(brewとか)
だと思う。
個人的に6年?ほど開発をしていて、Windows系の端末を使っていて思ったのは、
ターミナル周りがちょっと汚いかなと思う。重箱の隅を突くようなことだけど、
バックスラッシュ(¥
とか\
)がパスのセパレーターであること、
ドライブの定義はC:
、とかそういうのがまず使いづらい。
cygwin
を入れる方法もあるし専用のアプリもあるけど、
そういうのがネイティヴに備わっていないというところでテンションが下がる。
また、そのOSのあり方として、デスクトップありきだなというようにも感じる。
LinuxとかはデスクトップにおいてWindowsに負けたのかもしれないが、
そもそも開発者にデスクトップなんているのだろうか。
(画像、映像、音を扱う場合は別として)
デスクトップベースの開発だとそういうのを自動化したり短縮したりという習慣もつきづらい。
基本はターミナルから目が離れない、というのが開発としては一番スマートだと思うし、
Linus Torvaldsが(あの人はよくメディアに露出しているので)使っているデスクトップの使い方はそんな風だった。
そういった動機は、例えばemacsに顕著に表れているし、
vimもそのような考え方の延長上にある。どちらの操作を覚えることも、決して難しいことではない。
ここまでのことで何を言いたいかというと、WindowsとMacを比較すると、
どちらかというと後者の方がデスクトップ非依存で開発が可能である。
また、POSIXのスタンダードというのはとってもありがたい。
/usr
ディレクトリの配下とか Mac
と CentOS
と Debian
と FreeBSD
で、僕の記憶が間違っていなければ特に差分があるとは思えない。
(権限のつきかたとかは違うだろうけど)
自分の作ったスクリプトとかツールのインストールとかさせるとき.... 例えばUnix-yなOSなら
/usr/local/bin/moomin
/usr/local/lib/moomin/utility.rb
/usr/local/lib/moomin/dsl.rb
/usr/local/etc/moomin/config
こんな感じで、/usr/local
配下の bin
に実行ファイルを、
lib
に参照されるライブラリを、
etc
にライブラリではないもの(設定ファイルとか)を配置させる....
ということができる。
Windowsはこの辺りがごちゃっとしてて考えるのもめんどくさい。(個人的に)
そして、apt-get
とかと同様、 brew
みたいなのがあるのも非常に楽だと思う。
例えば、チーム全体で特定の環境開発の設定をしてみんな同じにしたい場合、
Windowsでよくある指示の仕方
1. エクセルの手順書を開く
2. エクセルの特定のタブに、画像付きで手順書があるのでそれを一個一個手動でやっていく
3. また別のエクセルの手順書を開く
4. エクセルの特定のタブの手順書を一個一個手動でやっていく
5. また何かあったら、対面できく
6. おしまい
みたいなことをやる。これがMacだったら(厳密にいったらUnix-yだったら)
1. スクリプト配る
2. みんなそいつを `./`で実行
3. おしまい
なので、普通に生産性に直結する問題かな、と感じる。
(そして、それはそうだと理想としていいよね、とかベターだよね、
じゃなくて、そうじゃないと「きつい」という問題として)
あと、Macの導入がどうしてもコスト的にきついんだったら ThinkPadとかで調達して中にLinuxぶっ込めばいいんじゃないかと。(下手したらそっちの方が一番安い)
などなど、まとまりのないことを書いてしまったけれど、今回はここまでで。
ありがとうございました。