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

日本語識別子の必要性

まりも
September 25, 2024
7

 日本語識別子の必要性

プログラムに最も必要なことは可読性です。にもかかわらず日本人は、せいぜい片言でしか読み書きできない英語でプログラムを書いて読んでいます。これではオブジェクト指向など学べるはずもありません。日本語識別子の必要性を語ります。

まりも

September 25, 2024
Tweet

Transcript

  1. 識別子の重要性  識別子は重要です  昔ならiとかjとかでも十分だった  今はそれでは時代遅れです  例えば、名著と名高いCode Completeでは、

    変数の識別子名に一章当てています  ほか、クラス名やメソッド名にもページを割いて います
  2. Code Completeで推奨されている識 別子名  解読しやすい  読めば分かるので解読する必要もない  例: 

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

    currentDate  linesPerPage  作者が伝えたかったわかりやすさはこちらでは?  アメリカオリンピックチームの人数  近代オリンピックでの最高点  小切手の総額  現在日付  ページあたりの行数 ⇒英語圏ではみんな、下の例くらいわかりやすくしなくてはな らないのだな、と思って読んでます
  4. 気持ち悪い?  プログラマーが気持ち悪いと感じる時  論理的な整合性が取れていない場合  単に自分が慣れてない場合 ⇒どっちなのか区別しないといけない  気持ち悪くなくなるまでが勉強です

     私も日本語識別子が完全に気持ち悪くなくなるま で1年くらいはかかりました  初めての機能に慣れて気持ち悪くなくなるのに1 年くらいかかるのは珍しくない
  5. 推敲  詩や文章をよくしようと何度も考え、作り直して、 苦心すること。  詩の表現を推すにするか敲くにするか悩みながら歩 いていたら行列に突っ込んで捕まる  プログラムにも重要 

    無能でないプログラマーはみんなやってます  ただし英語圏ならね  日本人でもやっていると主張する人はいると思いま すが、本当に英語圏のプログラマーと同じだけ推敲 できてます?  一度日本語で推敲してみることをお勧めします  英語でやるのとは全く別物です
  6. 英語でわかりやすい識別子 Q.日本人には、英語でわかりやすい識別子 は書けないか? A.書けます  ただし、時間がかかって面倒です  いちいち辞書を引いたり  しかも、効果は薄いです

     一生懸命に推敲した英語より、日本語で適当に書 いたほうが読みやすい ⇒実際にはやってもあまり意味がでないた め、気合を入れてまでやらない人が多い
  7. 世界での、母国語を使った識別子 の利用  英語圏(アメリカなど3億5千万人) ⇒母国語を使って当たり前 むしろ、使わないという選択肢が存在しない  英語公用語圏(インドなど14億)  多くの国は子供のころから英語を使っているらしい

    (特にインド)  ヨーロッパ圏(フランス・ドイツなど)  プログラムの学習時に英語識別子使っていると思い ます?  印欧語族圏は英語を覚えるのも簡単  母国語と同じように使える人が多い 変数名が小学生に簡単にわかって当たり前、と思って いないのは、日本人など上記以外の人だけですよ?
  8. 外国文化の学習  明治時代の日本  外国文化を取り入れようと努力  最初のうちは先生も教科書も外国語  後に、外国語をすべて漢字で表現 

    日本語が読める人なら誰でも勉強できる  多くの非先進国  教科書は外国語  大学出のエリートは、みんな英語ぺらぺら  でも、大学についていける人は少ない ⇒プログラム業界に関しては日本は後者に近い
  9. 命名規約の例  助詞・助動詞はつける  ×購入確定()→◦購入を確定する()  助詞・助動詞を省くと意味が足りなくなる  昔から日本人は実用より見た目を重視して外来語(中国語)っぽい書き方で仕事をしてきたのだなあと思う 

    決まり文句的な単語は英語でいい  Get購入履歴()、購入失敗Exception  決まり文句が2種類あると分かりにくい  むしろ決まり文句であることがわかってよい  標準ライブラリにある単語は日本語にしない  訳した単語と訳さない単語が両方出てくると分りに くすぎる  利用しない無関係なクラス名などではなく、実際に 関連して使う場合
  10. 客観的に考えてみましょう  慣れたやり方を横に置いておいて論理的根拠に従い客観的に 考えてみましょう  みんなそう言っているからという意味での客観的ではなく  仕事の内容  複雑な内容を扱う仕事があります

     仕事のメンバーはほぼ日本人です  仕事は複雑で内容は毎回違います  複雑な内容を皆で共有する必要があります  毎回の仕事の内容はメモに残し、皆で回覧することで共有しま す  そのメモを英語で書く職場ってどうなんでしょうか?  かっこつけることばっかり考えてまじめに仕事してないんじゃ ないの?  プログラム以外ならそうなりません?
  11. なんか反対者が多いんですが  なにやら日本語識別子に親でも殺されたんかという人が結構  とりあえず細かいデメリットを並べる人が多い  これは感情的に反対している状況証拠では?  細かい問題点があるのは当然 

    メリットとデメリットはすべて総合して考えないと結論は出せない  日本人に説明する時には日本語を使うほうがわかりやすいってのは総 合的な話だと思うんだが  自分が今やっている手順の一部がうまくいかなくなるとか  いやそういうこともあるのは当然だと思いますよ?  一切ないと私が言っていたら詐欺師と思ったほうがいいんじゃないですかね?  気持ち悪いと思う人が多いのはわかるが  私も最初は気持ち悪かったですしね  せめて教育目的くらいは採用したい  オブジェクト指向プログラミングを理解するには特に、識別子 の名前の重要さは理解していないといけない