日本語ふうプログラミング言語の必要性

福地健太郎さんのWeb日記に、「日本語プログラミング言語の必要性」という記事がありまして、

そもそも自然言語に近い形でプログラムを書けることが、書きやすさ・読みやすさにつながる、というところからしてすでに、何かおかしなドグマに頭が侵されていやしないか。

と述べている。

ちょっと気になったので、とりあえず日本語ふうの構文でプログラミングできるコンピュータ制御言語について参考資料を集めてみた。

これには2種類のアプローチがある(たぶん)。ひとつはコンピュータによる自然言語の理解を目指すもの。これは、習得は容易な気がするけれど、論理的な記述ができずに、使い物にならなさそう。

もうひとつは、ドメイン特化言語に日本語ふうの構文を持ち込むもの。日本語ふうプログラミング言語というのが、より良いかも。習得は容易なかわりに用途が限られるけどね。

英語でも、似たようなチャレンジはいくつかある。FirefoxのコマンドラインふうUI「Ubiquity」のように、リアクションを工夫することで使いやすさを改善している(たぶん)。また、ドメイン特化言語を英語ふうに読めるようにする工夫はいろいろあるし、プログラミングのコーディング規約でそれらしさを実現している場合もある。たとえば、Rubyコーディング規約というWebページには、「メソッド名には動詞の原形を使用する」としている。こうすることで、単語.動詞という表記になって、オブジェクトに対するメッセージが明示的になる(よね?)。なにより、プログラマーにとって、適切な名前を選ぶことは、とても大事だ。「ドメイン特化言語は英語のように書くべきではない」という意見もあるように、単純に自然言語ふうを目指すことではない。

日本語プログラミング言語というと、自然言語による記述を思い浮かべることが多いけれど、ドメイン特化言語として、日本語ふうのプログラミング言語であれば、なにがしか効果があるんじゃないかいな。

なでしこの場合は、Excel以上VBA未満くらいのオフィスワーカーを狙って、オフィスの効率向上ツールとして、日本語ふうプログラミング言語を提案している。が、プログラミング言語として汎用性が高く、また、既存の多機能アプリの再利用を狙っていたりするため、利用者にとってどこに使っていいか想像が難しくなっているように感じます。対象領域を限定できるよう、何か特定アプリケーション用の簡易言語にしたらどうだろう。どうせなら、ネットワーク時代の現在なら、情報を共有するためのツールがほしい。

どこを狙うかが重要。というか、誰がどんなときに使うのか。日本語ふうプログラミング言語は、ドメイン特化言語として、もっと対照領域をしぼったほうがいい!

なんて思ったり。