7月2009

Macを選んだ理由

Macを選ぶ理由で、いろいろなことをあげていきましたが、結局のところ、私が3年前に WindowsノートPCを買わず、iBook を選んでしまった理由はこうです。

Objective-Cでプログラミングをしてみたかった。そのためには、Objective-CがあたりまえのMacが適していた。

試運転してみます

結構前から、dev.activebasic.com のサーバーが頻繁に落ちるので、今春に立てた自宅サーバーでブログの試運転をしてみることにしました。

しばらく問題がなければ、こちらに移転しようかと思います。

Macを選ぶ理由

ここ最近、「どうしてMacを使ってるの?」といったような質問をよくされるので、ここにまとめておこうと思います。

1. 開発環境が付属している
Mac OS X のインストールディスクには、開発ツールが付属しており、gcc をはじめとする、さまざまな開発ツールをインストールすることができます。Windows では、gccをインストールするのですら面倒なので、これはありがたいです。

2. ターミナルがある
Mac OS X は、UNIXベースのOSであるので、ターミナル(端末)があります。UNIXサーバーにSSH接続するときには、これがないと話になりません。Windowsでもいくつかのクライアントがあるようですが、日本語文字コードまで満足に扱えるものを見たことがありません。ちなみに、OS Xのターミナルは、設定によって文字コードを簡単に切り替えることができます。

3. さまざまなファイルを開ける
Mac OS X や、そのアプリケーションは、多様なファイルフォーマットに対応していることが多いです。特に、文字コードに関しては、様々な文字コードを扱うことを前提に作られたアプリケーションが多いので、文字コードで困ることはあまりありません。psdがプレビューできるのは、ありがたかったです。

4. ネットワークの設定が楽
基本的に、ネットワークがあれば勝手につなごうとするので、自分から設定しなくても楽にネットワークに繋がることが多いです。それに加えて、例えば、無線LANに接続するネットワークによっては、特殊な設定が必要、といった場合に、あらかじめ設定を作成しておけば、メニューバーから簡単に設定を切り替えることが出きるので、楽にネットワークに接続できます。

5. Portsが使える
UNIX系でお馴染みのパッケージマネージャであるPortsが使えます。ということは、UNIX系のパッケージもインストールして使えるというわけです。

6. 変な日本語をあまり見かけない
Windowsでは、頻繁に変なエラーや、変な日本語を見かけますが、Macではそれほど見かけません。Microsoftの翻訳センスには、いつも驚かされます。

7. Exposé,Spacesが便利
ウインドウをサッと片付けたり、一面に並べたりするExposé、デスクトップを何枚も使用できるようにするSpaces。どちらも大変便利な機能です。これがないだけで、他のOSを使ったときのイライラの原因になったりします。Windows 7 では、Exposéより便利かもしれないというタスクバーがあるらしいので、それに期待をしてみましょう。

あと、「隠す」を使うとデスクトップがすっきりするので、これも好きです。

8. iPhone と連携できる
Mac上のアプリケーションとデータを同期できるので、いろいろと楽です。iPodの音楽データはもちろん、カレンダー,写真,ブックマーク、などなど

9. 画面が綺麗
フォントや画像がギザギザしないことが多いので、全体的に画面が綺麗に見えます。フォントは好みにもよるので、ぼやけて見えて嫌な人も結構いるようです。ウインドウが固まって真っ白になる、なんてこともありません。アニメーションが滑らかです。

10. トラックパッドが使いやすい
ノートブックの話になりますが、トラックパッドが非常に操作しやすいです。マウスなしでもいけます。

よくある誤解

1. Mac はクリエーター系に向いている
昔はクリエーター向けのアプリケーションが充実していたのかもしれませんが、今は Windows のほうがアプリケーションが豊富です。自分の分野のアプリケーションが、どれくらい揃っているか確認してみましょう。今は、ペンタブで描くならSAIがいいですし、DTMもWindowsの方が格段に安く済むらしいです。


2. インターフェースが良い
たしかに、Macのインターフェースの方が、Windows よりも優れているかもしれませんが、些細な違いでしかないでしょう。


3. 操作が簡単
Windows よりもシンプルにまとまっているかもしれませんが、しょせんはパソコンのOSのひとつ。はじめてパソコン触る人にとっては、WindowsでもMacでもそう変わらないと思います。

4. 右クリックがない
普通にあります。

5. 高い
最近は、そこまで高くないと思います。

イテレート中の要素削除

STLの話です。リストの要素をイテレートしながら要素を削除したいときがありますが、そういう場合はこういう風に書きたいわけです。

for ( list<GEAnimation *>::iterator it = m_Animations.begin(); it != m_Animations.end(); it++ ) {
	if ( (*it)->step( this ) ) {
		delete *it;
		m_Animations.remove( *it );
	}
}

gccでは動くのですが、MSのSTLでは動いてくれないので、こういう風に書く必要があります。

list<GEAnimation *>::iterator it = m_Animations.begin();
while ( it !=  m_Animations.end() ) {
	if ( (*it)->step( this ) ) {
		delete *it;
		it = m_Animations.erase( it );
	} else {
		it++;
	}
}

forを使った書き方をよく使うので、そっちで動くように融通がきいてくれればありがたいんですけどね。。。どんな風に書くのがいいんでしょうね。