アルバイト的に手伝いしている会社のプログラムソースの変数名やメソッド名が日本語混じりだった泣きたい(C#なので普通にvar d入力値
とかやっても怒られない)。
まあそれはそれとして、「ソースコードを日本語で記述して何が悪いのか」という明確な根拠が自分の中ではっきりしていなかったので、いくつか列挙。他にもあれば教えて頂けると助かります。
クローズドなプロジェクトでも問題になること
- プログラムコードを書くだけでもIMEを使うため、コードの入力効率が落ちる
- IDEの宣言インクリメンタルサーチ機能が使えない(先頭を英文字にすればある程度緩和は可能)
- ソースコード管理ツールが標準で持っているDiffツールが不具合を起こすことがある(文字コードの問題)
- ソースコード管理ツールによっては、日本語の変更を正しくマージできないことがある。
- 将来的にプログラマを増員するときに、プログラマのPCに日本語入力環境がないと開発に参加出来ない
- 言語によってはコードに日本語が使えないので、複数の言語を使い分ける人にとって特に困る
オープンソースなプロジェクトでも問題になること
- そもそも日本語が入力・表示できない人には理解できない
- 見た目的にカッコ悪い
日本語OK、日本語NGのプロジェクトを掛け持ちするプログラマ自身に発生する不都合
- プロジェクトごとに日本語の使用可能・不可能を分けるのは混乱の元になる
- IMEが前のプロジェクトの内容を学習してしまい、さらにプログラムが面倒になる可能性がある
ソースコードに日本語を含めるメリット
ただ、開発者の人曰くメリットもあるにはあるので、その辺も触れてみる
- 難読化に繋がる(安堂ロイドで出てきたアラビア語プログラムと同様)
- それぞれのメソッドや変数が何を表しているのか、パッと見て分かりやすい(が、単純な英単語くらい覚えろよと言う気もする)
- 複雑なメソッドの名称を決めるときに命名に迷うことがない
さあて、列挙してみるとあきらかにデメリットの方が多いような気はする。もちろん、メリットもメリットで結構おいしい効果はある気はしますが(特に命名に悩まなくて済むあたり)。
ただ、某作曲家さんの作曲指令書のように、ちゃんと他人に読める形式にするために何らかのコンバート作業が必要になってしまう以上、できるのならなるべく誰でも読めるソースコードにしようよ と。
まあ、そんな結論で良いんですかね。