![見出し画像](https://assets.st-note.com/production/uploads/images/86054086/rectangle_large_type_2_1e1815fdb3e90d4b50420b429d58bc02.jpeg?width=1200)
[#44] Xcodeをネタに考えてみよう : 開発環境とプログラマの指向性 その3
初出: MacPower 2004年 3月号
さて、前回はEclipseというJava用の開発環境を説明した。あれだけ褒めていたわりには、実はオレ自身はEclipseを使っていない。その理由とは簡単で、Macのアプリとしての出来が悪いから。それにつきる。たくさんの魅力的な機能を備えてはいるが、使い勝手の悪いツールを日常的に使うということは、開発者にとって、とてもストレスになってしまう。
EclipseはJavaで書かれている。だからWindows Linux, Mac OS Xじようにちゃんと動く。だから、多少の使い勝手の悪さは仕方ないのでは?と思うかもしれない。しかし、それは違う。Eclipseのサイトを見ると自らがそれを否定していることがわかる。EclipseはJavaで標準的なSwing [*1]というユーザーインターフエース用のクラスを使っていない、という事実があるのだ。その理由を調べてみると、Swingではプロが使うクオリティーのアプリを作るのは難しいと考えているかららしい。まったく賛成だ。そのとおりだと思う。実際にWindows環境でのEclipseは、ネイティブアプリと遜色のない仕上がりになっている。この方向性自体はとても正しいことだと思う。
しかし、Mac OS X 版ではその出来があまり良くない。起動時間の遅さや細かいインターフェースの挙動、テキストを編集するときの反応性の悪さなど。とてもではないがJavaで書かれているから仕方ない、といって納得するのは無理なレベルだ。Javaを提供しているアップルが悪いのかもしれない。EclipseのMacの開発者の数が足りないのかもしれない。理由はわからないが、今のままではプロのプログラマが使うことはちょっと厳しい。機能が魅力的なだけにとても残念なのだ。
まぁ、オレがJavaをメインの仕事として扱っていないというのも理由の1つかもしれない。Javaでサーバー系のソフトを書かなければいけない状況になれば、Eclipseしか実質的に選択肢はなくなると思う。そんな日が来ちゃっても困らないように、本当にもっと使えるUIになってくれないかと期待する。時間さえ許せば、せっかくオープンソースのプロジェクトなのだから、Macプログラマとして参加してみたい気もする。……あくまでも時間が許せばだ(笑)。
では、プロが使う開発環境としてみた場合に Xcodeはどうだろうか?もちろん、Mac OS Xのネイティブアプリだし、実行速一度は速いしUIなども標準にのっとっている。しかし実際に使ってみると、正直なところまだまだ使いにくい開発環境だと思う。なによりバグが多い。クラッシュすることも多い。急に動作が遅くなったりもする。現時点でツールとして評価すると、点数はかなり低いと思う。しかし、それでもXcodeを評価してしまうのは、ユーザーインターフェースがとてもMacのアプリらしいからだ [*2]。検索ボックス / スマートグループ / Rendezvousのサポートなど、アップルが思うMacのソフトとはこうあるべき、という要素がたくさん詰まっている。これがとても大事なことだと思うのだ。
開発者こそ常に最高のユーザーインターフエースに触れて作業をすべきだと思う。なぜなら、彼らが作るソフトのインターフェースには、そんな毎日の体験から生み出されるテイストが出るものだからだ。だから常に使うツールこそ、最高のお手本であるべきなのだ。例えば、新たにUNIXの世界からMac OS Xに移行しようとした開発者にとって最初に使うアプリが開発ツールということは往々にしてある。そんな彼らがXcodeと出会い、これがMac OS Xのソフトとしてあるべき姿なんだって思わせること、これは大事なことではないだろうか。そういう意味では、XcodeではなくProject Builderを提供していた以前の状況というのは、とても残念なことだったと言うしかない。
今後のXcodeの方向性はどうか。まぁ、まずは安定して走るようになってほしいのであるが、それがすんだ後は、できたらEclipseのような開発者サポート機能を提供する方向に進んでほしい。現時点のXcodeには、テスト環境もリファクタリングについてのサポートも用意されていない。
アップルの対応を待たずとも、自分でビルドの途中に好きな工程を定義することは可能なので、テストコードを追加して実行するようにはできる。テスト結果の表示に関しては、HTMLに書き出してブラウザーで表示させるといった工夫で対処できそうだ。またプラグインの機構を備えているので、これを使えばいろんな追加機能を提供できそうな気もする。リファクタリングに関しても、そうした工夫で対応する道が見つかるかもしれない。期待が持てるかもしれない。
またEclipseの話になるが、これは1つのアプリにみえるが、実は巨大なプラグインの固まりで構成されているのだ。アドビの「InDesign」と同じような仕組みだ。そんな中で開発者が自らほしい機能を加えていったから、使いやすい環境になったのだろう。Xcodeも同じなのかもしれない。アップルに期待するよりは自分らで工夫して積み上げていく方向が、結果的には役立つものができる可能性は高い。すでにクリッピングメニューを追加するものなどが発表されている。今後も期待していきたい。自分でも作るぞ。
というわけで、さっきと逆になるけど、アップルに期待するのはXcodeをシンプルに保つことかなと思い直した。オレなんかが想像できる部分はきっと誰かが実現してくれるだろう。そんなことよりも、操作感とかの細かい部分をブラッシュアップしていってほしい。使えるツールの条件である最高の操作感を目指してほしい。そんでさらにわがままなことに、アップルにしかできない別の何かを期待したい(笑)。オレらじゃ考えつかないクールな新機能を、Mac OS Xのユーザーだけではなく、オレら開発者にも見せ続けてほしいと思う。
バスケ(シエスタウェア社長)http://saryo.org/basuke/
前に関心空間を作るのに使ったPHPという言語のためのライブラリ集をオープンソースとして公開しました。baslibという名前です。テストしてくれる人やドキュメントを手伝ってくれる人を募集しています。興味がある方はぜひ参加してみてください。参加方法はホームページに書いてあります。よろしくー。
[*1] Swing - すべてのプラットフォームで共通な見た目になるよう用意されたUI用のパーツ集と考えればいいかな。
[*2] Macのアプリらしいからだ - オレが期待する「Macらしいアプリ」というわけではない(笑)。
この記事が気に入ったらサポートをしてみませんか?