ソースコード

ソースコードの変数やメソッドを日本語で書いてはいけない理由

More than 4 years have passed since last update.

アルバイト的に手伝いしている会社のプログラムソースの変数名やメソッド名が日本語混じりだった泣きたい(C#なので普通にvar d入力値とかやっても怒られない)。

まあそれはそれとして、「ソースコードを日本語で記述して何が悪いのか」という明確な根拠が自分の中ではっきりしていなかったので、いくつか列挙。他にもあれば教えて頂けると助かります。

クローズドなプロジェクトでも問題になること

  • プログラムコードを書くだけでもIMEを使うため、コードの入力効率が落ちる
  • IDEの宣言インクリメンタルサーチ機能が使えない(先頭を英文字にすればある程度緩和は可能)
  • ソースコード管理ツールが標準で持っているDiffツールが不具合を起こすことがある(文字コードの問題)
  • ソースコード管理ツールによっては、日本語の変更を正しくマージできないことがある。
  • 将来的にプログラマを増員するときに、プログラマのPCに日本語入力環境がないと開発に参加出来ない
  • 言語によってはコードに日本語が使えないので、複数の言語を使い分ける人にとって特に困る

オープンソースなプロジェクトでも問題になること

  • そもそも日本語が入力・表示できない人には理解できない
  • 見た目的にカッコ悪い

日本語OK、日本語NGのプロジェクトを掛け持ちするプログラマ自身に発生する不都合

  • プロジェクトごとに日本語の使用可能・不可能を分けるのは混乱の元になる
  • IMEが前のプロジェクトの内容を学習してしまい、さらにプログラムが面倒になる可能性がある

ソースコードに日本語を含めるメリット

ただ、開発者の人曰くメリットもあるにはあるので、その辺も触れてみる

  • 難読化に繋がる(安堂ロイドで出てきたアラビア語プログラムと同様)
  • それぞれのメソッドや変数が何を表しているのか、パッと見て分かりやすい(が、単純な英単語くらい覚えろよと言う気もする)
  • 複雑なメソッドの名称を決めるときに命名に迷うことがない

さあて、列挙してみるとあきらかにデメリットの方が多いような気はする。もちろん、メリットもメリットで結構おいしい効果はある気はしますが(特に命名に悩まなくて済むあたり)。
ただ、某作曲家さんの作曲指令書のように、ちゃんと他人に読める形式にするために何らかのコンバート作業が必要になってしまう以上、できるのならなるべく誰でも読めるソースコードにしようよ と。

まあ、そんな結論で良いんですかね。