文字っぽいの。

文字を書いています。写真も混ざります。

どっち側の人間なんだ。

※そのうち書き足すかもしれない。

はじめに

 まず初めに、この記事はプログラムをかいてたり、ものづくりが好きなタイプの人間が書いています。そうじゃない人には「は?」って内容だと思うので、見るのをやめたほうがいいと思う。

僕らはユーザになっちゃダメなんだ

 さて、僕らものづくり人間(以下デベロッパ)はユーザになっちゃダメなんですよ。っていうと「ユーザ目線で設計をしないと〜」という話が出ると思うけど、ユーザになることとユーザ目線で何かを作ることは別物です。

 例を挙げると、新しいパソコンを買う時にWin/Mac/Linuxで悩んだとする。ここで「最近みんなMac使ってるし、ゲームできるからWindowsにしよう。」とか「個性を出したいからLinuxだ!」という思考方法がユーザ。デベロッパなら「自分の関わってるプロジェクト・サービスには、このOSが適切だな。」って考えて選択するはずなんだよ。ユーザ目線に立つのはその先に位置している。「最近はMacユーザも増えたし、Win/Macの両方に対応した方が幸せだな。」とか「WinのUI/UXとMacのUI/UXは違うから、画面設計変えないとな。」と考えるのがユーザ目線だと思うんだ。

OSの話

 極論になるけど、完璧なOSなんて存在しない。OSという概念自体は完璧なものだけども、そのOSを実装したのが人間というバグ生産マシーンである以上、完璧なOSなんて存在しないんだ。つまり、OSには完成度において優劣は存在しないはず。ここでは簡単の為にWin/Mac/Linuxで話していくよ。(PC-98とかAtariとかTRONとかの話はやめよう)

 もちろん、特定分野においては優劣は存在する。kernelプログラムを書きたいときにWinやMacを使うと謎のバグに悩まされるし、C++C#(正確にはVC++とVC#だろう)を気持ちよく使いたければWinを使うべきだし、RailsやiOS開発はMacじゃないとつらいものがある。適材適所。紙を切るときにチェーンソーは使わないし、丸太を切るときにハサミじゃ力不足だ。同じようにOSだって得意とする方向性ってのがあるんだ。だから、僕らはそれを見極めて使うOSを選定しないといけない。

 そうじゃない部分、例えば実行形式ファイルがどんな拡張子だとか、改行コードがどうだとか、ファイルシステムが互換してないとか。そんなことは割りとどうでもいい。それこそユーザの発言であって、僕らデベロッパには本来関係がない話のはずなんだ。文句があれば、自分で問題解決するためのコードを書いてるよね。ちなみに「.DS_Storeってなんだよ!」って言う人に限ってThumbs.dbはそのままにしてるの面白いと思う。他人のふり見てなんとやら。

スマホの話

 この話については、尊敬する@asonas先輩がyou can(not) codeに簡潔に述べていらっしゃるのでそちらを読んでほしい。

 いろいろぶっ飛ばして大雑把にまとめると、デベロッパなら「iPhoneはみんな使ってるからつまらない。」とか呆けた事言わないし、そんな下らない部分で個性を主張しない。

キーボードとマウスの話

 これは本当に趣味の部分だと思う。だからといって、言及を避けるのは思考停止以外のなにものでもないから、書いておこう。

 僕は、パソコンの周辺機器、特にマウスとキーボードだけは安物を使っちゃいけないと思ってる。そりゃもちろん、どんなに安いキーボードやマウス(買ったら付いてきた奴とか)でも、壊れてなけりゃ文字は打てるし、エロ画像を全画面表示することが出来る。しかしながら僕は、コードとかコマンドとか論文とかを書く方からやってきた人な訳です。風呂・飯・睡眠・映画以外の時間は、ほとんどパソコンの前に座って、カチャカチャしてる。そういうタイプの人が1番触る装置である、キーボードとかマウスが使いにくかったら、そりゃもうストレスが溜まりまくるわけなんですよ。僕がパソコンを操作できるインターフェイスって、この2つしかない。タッチパネルとかペンタブとか脳波とか音声入力とかあるけども、突き詰めれば、文字を打つ装置とカーソルを動かす装置が、パソコンとユーザが対話できる唯一のインターフェイスなわけなんですよ。であるからして、このインターフェイスが糞だともうダメ。死にかける。パソコンさんとカジュアルにお話できなくなっちゃう。

 もしも僕が、趣味でパソコンをいじいじするだけの人間だったら、こんなことは気にしなくて良いわけです。超絶ハイスペックPCを買って、3Dゲームの描画設定を最高まで上げて楽しんでいればいい。そういえば、CoDBO2をまだやってないので、早く買って来てやりたい。ゲームを買うためのお金と、遊ぶための時間が欲しい。主だってお金が欲しい。そんなことは置いておいてだ。それだけじゃダメなんですよね。だって、僕はコードを書く人間だから。パソコンさんとお話をして、パソコンさんとお話するのが苦手な人を助ける人間だから。だから、この部分をちゃんとしたいんです。

 もしかすると僕が神経質なだけなのかもしれない。キーボードを叩いていて、一瞬でも引っかかりを感じると、ディスプレイを窓から放り投げたくなるし、マウスがマウスパッドの端に来ちゃったから少し持ち上げて、っていう動作の時にマウスポインタが無限の彼方へ消え去っていると、寿命が3ヶ月ぐらい縮む。なによりも、人間の生活を楽にする為にコンピュータでコードを書いてるのに、その為の操作で僕が不幸になってるのが許せない。気持ちよく生きていたい。

ちなみに僕は、

  • HHKB Professional (JIS & US)
  • Logicool Anywhereマウス

を愛用しています。特にキーボード。これを買う前は3、4ヶ月に一回は「新しいキーボードほしいな。」って思ってたのに、HHKB買ってからは欲しくなくなった。同じタッチ感ではRealforceがあったり、使いやすさでは機械軸式(茶軸が好き)があったりするけど、フォルムのスッキリさでHHKBに勝るものが無かった。なんたってカバンに入れて学校に持っていける。小脇にHHKBを挟むのが、フランスパンよりシャレオツだと思われる時代が来るって信じてる。ちなみに、Macで使うなら、キーボードは普通に純正の無線式キーボード、マウス(?)はMagic Trackpadが最強だと思う。

まとめ

 結局何が言いたいかってのが、まとめ。OSとか開発言語とか、環境とか色々な知識があって能書きを垂れてる人に限って、「へー、すごいね!で、その環境でどんなもの作ったの?」って言うと死ぬ。そうならないように、デベロッパはものづくりに注力すべきだし、その過程が気持ちよくて、無意味なストレスを被らない様にすべきだと僕は思う。目的と手段を混同してはいけない。