2011-08-11 Updated

開発環境の準備

プログラマーはキーボードが命

木工職人が、自身の手に馴染んだカンナを使うように、プログラマーは自身の手に馴染んだキーボードとエディターをそろえる必要があります。特に、キーボードはとても重要です。お勧めのキーボードをまずは紹介します。アフィリエイトリンクになっています。もし、興味がおありなら、是非このリンクから購入して下さい。私に少しの小遣いが入ります。

まず、プログラムを本当に行うのなら、英語キーボードを推奨します。理由は記号入力がしやすいからです。プログラムでは頻繁に「’」や「”」を多様します。日本語キーボードの場合には、Shift+2または、Shift+7です。英語キーボードでは、「け」とShift+「け」となり、無駄なストロークなしで入力できます。あと、日本語キーボードでは&の入力も遠いですね。それと、日本語キーボードはスペースキーも小さいので、若干不便です。後、利用するエディターによってはコントロールキーの位置が最悪になります。

ただ、英語キーボードの場合には、キー配列が異なるため、日本語キーボードを利用している人が直ぐに利用するのは困難です。また、複数人で利用するような端末には設置しないほうがよいでしょう。

東プレのRealForceというキーボードです。見た目は何の変哲もないキーボードですが、実はこれが凄いんです!キーボードの命はキータッチですが、このキータッチには、メンブレンスイッチ方式、メカニカルスイッチ方式そして、静電容量無接点方式の3つあり、メンブレンスイッチ方式が一般的に流通しているメーカー製のキーボードの大半をしめています。右のキーボードは静電容量無接点方式になります。この方式はこのキーボード以外にはPFU製のHappyHackingKeybordにも使われていますが、これは東プレのOEM製品になりますので、RealForceが本家と言えます。なにが違うかというと、入力時のキータッチ感が違います。たとえると、「スコスコ」といった感じでとても滑らかで私も愛用していますが、休みの日等に20時間程度使っても疲れません。また、メンブレン方式で一時腱鞘炎になりましたが、それも知らないうちに治りました。あとは、耐久性が違います。メンブレン方式では内部の機械に接触してキー入力を行うためその部分がどうしても劣化します。それに対してこのキーボードの場合には接点がありません。そのため、耐久性はバツグンなのです。確かに高額なキーボードですが、いちど使い始めるとこのキーボードなしではパソコンは出来なくなる位の相棒になります。見た目は無骨で面白みもなにもありませんが、実用性は申し分なくおススメのキーボードです。
次のおススメはFILCOのキーボードです。私はこのキーボードは会社で愛用しています。こちらはメカニカル方式のキーボードでして、キーを押すと「カチカチ」と反応が伝わってきます。RealForceは大変静かで滑らかな入力が特徴ですが、このキーボードは「あー入力している!」という充実感が味わえます。そのうち、入力が快感(?)に変わります。このキーボードですが、メカニカルの機械部分(これを軸といいます)が黒軸、茶軸、青軸の3種類あり、それぞれ入力感が違います。私は茶軸派ですが、黒軸は最もカチカチ感が高く、青軸はカチカチ感+軽い入力感だといわれます。茶軸はカチカチ感が少し少なめです。ちなみに、黒軸と青軸はよく音がうるさいといわれるみたいです。

いずれも、この世界では最高級かつ至高のキーボードです。個人的にはHappyHackingKeybordも好きですが、Linux等の環境でガリガリコーディングをしないのであれば、上記2つが一番だと思います。一度使うと、パソコンに付いて来るような量産キーボードやゴテゴテと機能が多いキーボードは利用したくなくなります。キーボードの目的は入力作業です。それ以外の部分をデコレーションして本質の入力機能に重点を置いていないキーボードが近年目立ちます。ワンプッシュでメーラーが起動したり、IEが起動したり、シャットダウンができたりと・・・・まったくもって不要な機能だと思います(私の偏見ですが・・・)。 いちど、これらのキーボードを試してみてはいかがでしょうか?。

マウスは何でもOK

キーボードについて少しこだわってしまい長くなりました。それでは、マウスはどうでしょうか?答えは何でもOKです。私は秋葉原等で2000程度で販売しているマウスを長年利用しています。いったんプログラム環境に慣れるとマウスは殆ど使わなくなります。というより、使う時間が惜しくなります。全てはキーボードのショートカットで対応できます。マウスを利用するのは情報収集のWEBブラウザーやデバックなどです。ちなみに、マウスパッドはダイソーの100円のものを利用していますが、最近は畳のマウスパッドに興味があります。ちょっと粋ですよね。

プリンターはよく使います

プリンターは通常なら年賀状や写真印刷等で年間通してあまり利用しないように思います。しかし、プログラミングを行うと意外と印刷物が増えます。もしかしたら私だけかも知れませんが、ライブラリーのマニュアル、APIのマニュアル、サンプルコード、説明のページ等など、有用なものは印刷してファイリングしています。特に、有用なホームページは見つけた時点で直ぐに印刷してファイリングします。結構個人のホームページは無くなる事が多いので、発見した時が重要なのです。このような使い方を行っているため、写真画質等の高性能なプリンターは不要でして、4色インクの高速なプリンターが大変重宝します。私はHP製のOfficeJetPro K550に連続供給ユニットをくっ付けて利用しています。このプリンターは既に販売終了してしまいましたが、同等機種は今でもあると思います。なにより、連続供給が素晴らしいのです。これをつけるとインク切れから開放され、あの高価なインクも買わなくてすみます。私は常に200CC入りのボトルでインクを購入しています。通常1,000円程度の市販のインクは5ccや10cc程度だと聞いたことがありますが、連続供給のインクは200ccで1,000円程度です。つまり、コスト的には1/20になるわけです。また、印刷する用紙はA4です。こちらも需要が高いので、OfficeDepot等で5,000枚単位でまとめ買いします。

プログラムの開発環境を整える

プログラムの開発環境はそのプログラム言語によって様々です。以下では統合開発環境をその言語毎に紹介しますが、私の持論としては、言語毎に開発環境が異なり、キー操作が変更になるのは開発効率が低下すると思います。そのため、一つのテキストエディターを熟知し、それで全てのプログラムやドキュメントの作成が行えれば効率化にもつながります。かの有名な書籍「達人プログラマー」の第三章:パワーエディットのところにも

あなたは一芸に秀でていなければならないのです。単に直接タイピングを行い、マウスを使ってカット・アンド・ペーストをしているだけではだめなのです。強力なエディターとあなたの指先を使えば、高い生産性をあげることができるようになるのです・・・一つのエディターを熟知すること

とあります。私のおススメのエディターはemacsです。「イーマックス」と発音します。これはUnix系OSでは大変メジャーでして、elispという言語で自由自在に拡張可能です。習得にはそれなりに日数がかかり、特殊なキー操作を覚える必要も少なからずありますが、一度熟練すると、キー操作を無意識に行え、ある意味手の延長になります。これは大げさな表現ではなく、本当にそのように感じるから不思議です。このエディターの詳細はWikipedia本家サイトでお調べ下さい。

PHP eclipse 様々な言語で利用可能な統合開発環境です。PHP用のモードもあります。フォルダー移動が多くなるフレームワークでも使い勝手が良いです。ただ、動作が少し遅いのが難点です。また、大規模なエディターですので、設定やメニューも複雑です。
PHPエディタ- PHP専用のエディターです。ただし、最近は更新されていないのか少し古いようです。マニュアルの検索がF1キーでできたりします。
emacs+php mode 前述したemacsのPHP編集モードです。私はこれで開発しています。フォルダー移動が多い場合には、別途speedbar等も併用しています。
サクラエディタ これもおススメのエディターです。大変軽く、ちょっとした設定ファイルの修正から、長大なファイルまで編集できます。PHPも色分けされて表示されるので便利です。
Java eclipse eclipseはもともとJavaの開発環境だったため(今も主体はそうです)Javaの開発は最も得意です。Javaの開発ではコンパイル作業も必要なことからemacsよりeclipseの方が設定箇所もすくなる便利な面もあります。私はJavaの開発ではこれを利用しています。
NetBeans Javaの開発元であったSun microsystems(現在はOracleが買収)が開発を手がけたオープンソースの開発環境です。
C# #develop .NET FrameworkのC#の統合開発環境です。GUIエディターも付属しており不足なく開発できます。おススメです。

Visual Studio 2010
Express Edition

マイクロソフト純正の開発環境の評価版です。評価版といっても基本的な開発はでき、商用利用も可能です。ただし、30日以上の利用の場合には、ユーザー登録を行う必要があります。
Mono Develop 主に、Linuxで動作する.NET Frameworkと互換性があるMONO用の開発環境ですが、.NET Frameworkの開発環境としても利用できます。
C emacs 最近C言語はLinux等のシステムアプリケーションやwindowsの本当に込み入った部分をAPIを駆使して開発する位になってしまいました。そんなC言語ですが、C言語の開発はやはりemacsがナンバーワンです。使い慣れているのもありますが、最強ではないでしょうか。
C++ emacs 上と同じ理由です
Eclipse CDT eclipseにCDTというプラグインを追加するとC/C++の開発が容易になります。linuxで利用できるGUI開発環境はあまりないため重宝します。
お問い合わせ