Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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

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

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

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

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

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

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

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

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

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

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

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

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

TakamiChie
NPO法人 まちづくりエージェント SIDE BEACH CITY.理事。フリーランスのプログラマ。横浜・横須賀でIT勉強会の主催などをやってます。
https://onpu-tamago.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした