Upgrade to Pro — share decks privately, control downloads, hide ads and more …

日本語識別子の必要性抜粋版これだけは言っておきたい

まりも
September 25, 2024
6

 日本語識別子の必要性抜粋版これだけは言っておきたい

プログラムに最も必要とされるのは可読性で、なので日本語で識別子を書くべきと15年くらい前から主張していましたが、反対が強いのでもうあきらめてきました。(ただし反対は徐々に減ってきてはいる)が、やはりどうしても必要な部分はありますので、そこに重点を置いて説明をしました。

まりも

September 25, 2024
Tweet

Transcript

  1. Code Completeで推奨されている識 別子名  解読しやすい  読めば分かるので解読する必要もない  例: 

    numberOfPeopleOnTheUsOlympicTeam  maximumNumberOfPointsInModernOlympics  checkTotal  currentDate  linesPerPage  これは誤訳ではないでしょうか?
  2. 日本人読者が読む日本語の技術書  この例は、わかりやすさの程度を伝えるのに適切か?  numberOfPeopleOnTheUsOlympicTeam  maximumNumberOfPointsInModernOlympics  checkTotal 

    currentDate  linesPerPage  作者が伝えたかったわかりやすさはこちらでは?  アメリカオリンピックチームの人数  近代オリンピックでの最高点  小切手の総額  現在日付  ページあたりの行数 ⇒英語圏ではみんな、下の例くらいわかりやすくしなくてはな らないのだな、と思って読んでます
  3. 日本語識別子の例 public IActionResult 削除する(ホームInputModel 入力) { var モデル = Getモデル(入力);

    モデル.入力 = 入力; モデル.単語帳 = (from 項目 in モデル.単語帳 where 項目.単語 != 入力.削除される単語 select 項目 ).ToArray(); Setセッション(モデル); return View("索引", モデル); } public IActionResult 単語帳学習を始める() { var モデル = Getセッション<ホームViewModel>(); if (モデル == null) { return View(); } Setセッション( new 単語帳学習状態 { 問題 = from 項目 in モデル.単語帳 select new 問題 { 正解済み = false, 単語 = 項目.単語, 意味 = 項目.意味 } }); return RedirectToAction("索引", "単語帳学習"); }
  4. 世界での、母国語を使った識別子 の利用  英語圏(アメリカなど3億5千万人) ⇒母国語を使って当たり前 むしろ、使わないという選択肢が存在しない  英語公用語圏(インドなど14億)  多くの国は子供のころから英語を使っているらしい

    (特にインド)  ヨーロッパ圏(フランス・ドイツなど)  プログラムの学習時に英語識別子使っていると思い ます?  印欧語族圏は英語を覚えるのも簡単  母国語と同じように使える人が多い 変数名が小学生に簡単にわかって当たり前、と思って いないのは、日本人など上記以外の人だけですよ?
  5. 識別子の重要性  識別子は母国語で話すようにわかりやすくな いといけない  日本人だけがそれをわかっていない  いいの?  オブジェクト指向の「すべてのものがオブ

    ジェクト」なんかにも深くかかわる  現実をなるべくそのまま表す  オブジェクト指向の利点の一つであり、理解でき ない人が多いところでもある  母国語でやらないとあまり意味がない
  6. プログラム教育  せめてオブジェクト指向を使えるように なるまで  日本語でやってみると全然違う  一度覚えればその後は英語でもなんとかな る? 

    プログラムの複雑さは論文に劣るものではな いが、日本語の論文書いたことがない上に英 語があまり話せない人に、まず英語で論文書 くのを覚えろというのはむちゃでは?
  7. 状況は厳しいですけどね  日本語識別子に親でも殺されたんかとい う人が数多く  こことか  コメント欄は賛同が多いのであるいはそろそ ろ? 

    アメリカのプログラマーと比較して生産 性や品質が何割かは違っているんじゃ?  日本語識別子の普及は私のライフワーク  一生無理かもという意味
  8. せめて教育には使って  日本のプログラム業界が本気で心配  オブジェクト指向の理解がひときわ難しくなって いる  せめて、納品とか必要ない練習用に1割か2 割は日本語識別子を使ってみよう 

    どうしても日本語が使いたくないなら識別子 つけるのに辞書を引くこと  類義語も全部調べて適切なものを選ぶ  母国語を使う人はそのくらいの推敲は辞書引かな くてもやっている