83-UNIXツールを共にする

プログラマが知るべき97のこと」の83個目のエピソードは、UNIXツールに関する話です。自分はUNIXLinux)はある程度は使えるものの日常的に使っているわけではなく、UNIXツールに関するスキルはあまりありません。ホーム言語がJavaという事もあり、基本はIDEです。UNIXLinux)もサーバの設置やステージング環境構築など環境面では一通り見てきましたが、UNIX上で開発を行うとなるとほとんど経験はありません。この点について前々からまずいなーとは思っている所です。
このエピソードでは、「スモール・イズ・ビューティフル」の発想で設計されているUNIXツールを学ぶ重要性について書かれています。UNIXツールとIDEを比べた場合、大きく2点の特徴が異なります。1つ目はIDEが基本的に特定の言語に特化しているのに対し、UNIXツールは汎用的にどんな言語にも対応できるという点です。確かにIDEJavaのような静的な型付けの強い言語に相性の良いツールですが、動的な言語との相性は良くありません。また、新しい言語が流行ってきたとしても、高性能なIDEが最初から提供されている事はほとんどなく、必然的にテキストエディタ等を使う事になります。したがって、プログラマとしてJavaだけでやっていくのでもない限り、IDEに頼り切るよりはUNIXツールを使えるようになる事は良い選択です。2つ目としては、IDEが特定の提供された事しかできない事に対して、UNIXツールは工夫次第でどんな事も可能という点です。IDEでもプラグインを作るだけのスキルを持っていれば何でも出来るかもしれません。しかし、UNIXツールほど柔軟に組み合わせて利用できるわけではないでしょう。その代わりにプログラマに工夫をしていくだけのスキルを求める事になります。
Javaをメインで扱っているとどうしてもUNIXツールを使う機会はほとんどありません。開発マシンもWindowsという事で、UNIXツールを使うこと自体が億劫になるというのも理由でしょう。自分もMacを使い出してからは随分とUNIXツールが身近になってきました。Cygwinなどもありますが、OSがネイティブに提供しているかどうかは重要な部分かと思います。とはいえ、中々やろうと思ってもやらないのはよくありません。開発チームを考えたときも成長を期待するならば、UNIX系の知識は必須ですので、Java系の開発で軽視しがちなUNIXツールをうまく使わせるような施策を考えてみたい所です。

プログラマが知るべき97のこと

プログラマが知るべき97のこと