2009年05月17日

スクリプト探し

 このアーティクルは、ゴテゴテでかくて厳格なプログラミング言語を使う開発者(たとえば私)のはなしです。
スマートでライトな言語を使う開発者の方には、最初っから関係のないことですので、お読みになってもあまり得るものはないかもしれません。 近頃、使い勝手のいいスクリプトが欲しいと思って探してました。
「探してた」というよりは、「どれにするか迷ってた」と言ったほうが正しいかな。
世の中にはたくさんのスクリプトがあって、どれがいいか迷ってしまいますよね。

 ここでは、私がスクリプトを選ぶ際に、どんなことを考えたのかを書いてみます。
まぁ、結局はいろんなのを覚えて、状況に合わせて選択して使っていくことになるのかもしれません。
でも、最初にどれから手をつけるべきかは、やっぱり迷いますよね。

 まず、最初に想定する主な用途ですが、製品開発ではなく、ちょっとした作業の自動化などです。
恥ずかしながら、今まであまりクリプトを使ってませんでした。
たいていはJavaで書いちゃって、あまり不自由を感じてなかったもので。
でも、ちょっとした小道具を作るのに、いちいち似たような冗長なコードを書くのに、いいかげんうんざりしてきました。
小道具を作るのをもっと楽に、スピーディーにやりたいと。

 そういう小道具メーカーとしてのスクリプトにどんな特性を求めるかって、人それぞれだと思いますが、私の場合は以下の感じで考えました。
  • 簡潔な構文
  • 移植性
  • (パフォーマンスは二の次)

 簡潔な構文という条件は、2つの側面を持っています。
それは、書きやすさと読みやすさです。

 書きやすいということは、非常に重要です。
「ちょっとした」作業の自動化が目的なんですから、ささっと書けないと、「手でやったほうが早いじゃん」ってことになってしまいます。
逆に言うと、「素早く書けるほど、自動化できる(するメリットがある)作業の範囲が増える」ということです。

 読みやすいかどうかは、実は書きやすさに大きな影響を与えますよね。
コードを書いている間、あなたの脳の中の、最も揮発性が高く、ホットなテンポラリ記憶域にはキャッシュが用意され、直前に書いたコードが置かれます。
そのコードが簡潔であるかどうかは、バッファにどれだけのコードが詰め込めるかに影響します。
また、明解であるかは、そのコードの解析スピードに影響します。
それともちろん、構文自体が読みやすければ、それだけ書かなければならないコメントの量が少なくなるということもあります。

 製品コードを開発するためのプログラム言語を選択する場合、こういったミニマムな要因は、多くの場合あまり問題とされません。(私が主に扱ってるような、ヘビーウェイトな言語圏ではとくにそうです)
もっと影響が大きいことが明らかな、さまざまな技術的、経済的、あるいは社会的な要因がたくさんあるからです。
 しかし、開発者もユーザも自分ひとり(あるいは、せいぜい数人のチームメイト)をターゲットとするような種類のアプリケーションでは、社会的要因はほとんどゼロで、経済的要因は、どれだけすばやく書けるかだけです。
そして、技術的要因を決めるのは、次に述べる移植性と、自分自身の力です。
このように、外的要因のほとんどが問題でなくなる状況では、「書きやすさと読みやすさの重要性」は、相対的に大きくなります。
スクリプトで作る「小道具」は、まさにそういった種類のアプリケーションです。

 移植性がどれだけ必要になるかは、たぶんメインで使っているプログラム言語と、それをとりまく環境の性質に依存するのではないかと思います。
自分が開発環境として使うアーキテクチャ、OSのすべてで、同じスクリプトが同じように動いて欲しいですよね。
とはいえ、プログラム言語にしろ、スクリプト言語にしろ、近頃たいていのものは、主な環境の大部分に対応していますね。

 パフォーマンスは二の次ということについては、説明の必要はありませんよね。
していただけない?
理由は単純です。
今問題にしているのは、ちょっとした作業であって、製品コードではありません。
パフォーマンスはいいにこしたことはありませんが、重要ではありません。

 そういうカンジのことを考えてた私が、結局どのスクリプト言語を選んだのかは、また次の機会にでもお話ししたいと思います。
タグ:スクリプト
posted by craftsman at 12:00 | 東京 ☁ | Comment(0) | TrackBack(0) | 雑草の雑想
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/119664017
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。