2017-04-21

プログラム日本語で書けばいい気がするけど(追記した)

定期的に思うんだけどプログラムで無理な英語にせず日本語にすればいいのにって思う。

実践はしていない)

日本語で書ける言語使うんじゃなくて変数名や関数名がUnicode対応日本語書けるもの

日本語でいいと思う理由は主に2つ

○画面に表示する時

フレームワーク言語にもよるけど表示するとき英語名前から日本語名前に変換して表示って手間があるものがある。

最近見かけた例だと.NETプロパティ属性に表示名書いて表示するときに取り出していた。

最初から日本語だとそのまま表示でいいことが多くて一段手間が省ける

英語がわけわからん

まず自分英語化するとき

いい単語が出てこないとか、しょっちゅう

慣れが必要だし慣れてもなんかコレジャナイ感とかで苦戦する。

次に他の人の英語化したのを見る時。

その人の英語力にもよるけど、動詞名詞が変に混ざっていたり、sがついてたりなかったり、そもそもchildsみたいな謎の語があったり。

そこそこできる人同士でも、「私はニュアンス的にこっちの単語」「僕はこの単語のほうがいいと思う」とかある。

相手の書いたところがわかりづらいのはもちろんだけど、プログラム的に同じ意味なのにクラス関数によって呼び方違うと辛い。

かといって全員に日本語英語対応を先に渡しておいて統一しようというのは大変すぎる。

日本語だと仕様の時点で日本語で書いてるからまぁおかしなことにはそうならないはず)

そういうわけで日本語で書けば色々解決するのにって思う。

----

次にデメリット

軽く調べた感じ主にこの2つな感じ。

IME」「英語圏のものへの対応

IME

半角全角を打つのってめんどい

と思うけど、実際チャットやこういう文章書いてて英語が出るときに割りと頻繁に押してる。

ほぼ無意識でやってて意外と苦じゃない。

短いとF10変換で半角にすることもあるけど、キーボードタイプカウンタとか入れてみると半角全角キーはけっこう上位にいた。

それに、なんだかんだコメント日本語で書くことが多くて、他の人と作るのならこまめにコメント書いてる。

そうなると全角半角の切り替えは普段からあるもので、あんまり気にするほどじゃない気がした。

最近じゃIDEエディタの補完が優秀だし、日本語にするにしても「最初はjから始める」とかルール入れておけば「j」って打ってあとはスコープにあるいくつかの候補から選ぶだけで全角にしなくていいかもしれない。

英語圏への対応

githubで公開したりとかライブラリ再利用してもらうとき日本語じゃ使ってもらえない。ってことみたい。

私が日本語にすればいいじゃないって思ってるのは、ビジネスロジックというかそのアプリケーション固有名詞みたいなところ。

「足し算」って関数名は 「add」 でいいと思うし、配列のそれぞれは element とか item とかそういう一般的英単語でいいと思う。

具体例がいいづらいけど、業務システムで表示する金額名前とか、日本語独特なものとか、一般的単語じゃなさそうなの。

こういうのを日本語にしたいってわけなので、ライブラリ的な共通なところは英語で良いかgithubで公開する範囲英語のものでいいと思う。

ただ、最近はやってるマストドンとか、ライブラリ的なものじゃなくアプリケーション自体githubで公開する場合はできない気がする。

でも、海外対象にしてるものだと日本語特有なせいでわかりづらい英語になる苦労とか少なそうだしそういうのだと英語いいんじゃないかな。

----

長くなったけど、まとめると、

業務システム固有名詞とか日本語特有ものとか無理に英語化してよくわからないことになってり、見づらくなるくらいなら日本語使えばいいんじゃないかな

ということ。

まあ思ってる割には実践してないので、やってる人がいたら良かった・悪かったとか聞きたいなと思ったのが書いた理由

追記


帰ってきたらすごいブクマついてた。

色々意見あってとりあえず感謝

絶対自分でやってから言えよ」みたいな意見来るだろうと思って今日の空き時間日本語行ける言語調べたり軽く日本語使ってコード書いてみたので、そのあたりと目についたコメに答えてみる。

まず、思いの外日本プログラミング言語上げてる人がいたので、うまく伝わってなかったぽい。

具体例上げずにサッと書いたらからかな。

あと自分もわりとするけどタイトルだけ見て中身見ずにコメントしてた人もいるだろうなー。

日本語で書ける言語使うんじゃなくて変数名や関数名がUnicode対応日本語書けるもの

これが、などしこやひまわりや、BF系のmisaやら北斗のあれやらうにゃーとか色々な「構文など最初から日本語を前提とした言語」ではないってこと言ってた。

---

日本語かえる言語

最近の主要な言語ならだいたい Unicode 対応でしょと思って環境があった言語を試した結果はこうだった。

JavaScript/Python/PHP/Scala/Kotlin/C#/Go/Swift

これらは日本語変数作れた。

rust と Lua は無理だった。

rust は確か前に、変数名が ascii 文字だけなことに日本以外のどこかの国からUnicode対応にしてって多くの要望あったみたいな記事があったし将来的に対応するんじゃないかなって思ってる。

実際に今どんな状態かは知らない。

その記事コメントとかでみたけど、日本語以外は割りと自国言葉を使ってたりするっぽいね

(正確なデータはないか信憑性はあるとはいえないけど)

VBA を上げてる人がいたけど、私はそこまでのはみたことない。(幸せ者っぽいな)

稀にエクセルマクロいじるときに使い方ググってて出て来る、解説してるページで関数名が日本語なのをたまに見るくらい。

パット見なんか気持ち悪い感はあるけど、読んだときのわかりやすさはけっこう大きい。

---

○使ってみて

大規模案件に使ってみてこその問題もあるだろうけど、簡単スクリプト程度のを日本語にしてみて気づいたこと。

割といける。

全角半角キーPHP の $ より楽。

PHP言語変数は全部$からはじめないといけない欠陥言語

まあ変数のみのgrepのしやすさや予約語キーワード変数名に使えるからメリットもある。

だが、$って打ちづらい。

Shift+4ってすごいつらい。

に比べて全角半角キーってちょい遠いけどそこまで苦痛じゃない。

ふだんから多用してるキーなわけだし。

ただPHP日本語の組み合わせは相性悪い。

$は半角でその後に日本語から手間が多すぎる。

それ以外の言語だと、IMEのおかげでかなり楽。

GoogleIMEだけど、多少のタイプミスは補完で修正してくれるし、予測変換が優秀だし。

IDEいから補完機能のない軽いエディタで書くようなときなら、IMEのおかげで英語変数名で書くより速度は早いと思う。

---

少し前に知人から言われた日本語デメリットを思い出したのでそれも触れとく。

仕様変更言葉変わったとき日本語だと全部書き換えないといけないよ。英語だと別にそのままでいいし。」

英語からない人が、英語言葉とみなさずただの記号として考えてるから、っていうような発言

仕様変わって変数名まで変えるのは面倒なのはわかるけど、あとからコード読む人が英語で見て意味不明になる。

英語日本語対応コメントに書いたとしても、全然意味の違う英語があるのは混乱でしかない。

こういう考えの人がいたら本当にやめてほしい。

---

あとは気になったコメントについて書いてく。

表記ゆれとか方言とか言い回しなどについては、全部日本語にするとあるだろうけど、私が想定してるのは直感的に英語にならないような固有名詞とか。

DBの項目名日本語っていうのは私の思ってるのと近い。

年金の例も○○年金というのがいろいろあって、全部英語だと嫌になってくるしよくわかる。

こういうのを日本語にしたい。

なので年金額を取得する関数で「年金額を取得する」「年金額を取得」「年金額を取り出す」とかの表記を迷うんじゃなくて「get年金額」でいいと思う。

こういう単語だけだと表記はそれなりに揃うと思う。

特にDBにある項目だと仕様とかで先に言葉が決まってることが多いだろうし。

---

見た目について。

見た目が残念とか見づらいというのは同意

ただそれ以上に読んだときのわかりやすさが大きいと思う。

見た目が悪いというのも全部英語っていう前提があるからで1ヶ月も日本語コード見ればなれるんじゃない?って思う。

---

へとヘ

これはありそうな問題

ただ、IDEを使う前提なら未使用変数エラーとか、選択したときに色が変わってないとか、割と気づけると思う。

lとIとかアルファベットでもあるけど、IDEや高機能エディタ使うと困ることはほぼなくなった。

---

ローマ字

私が日本語にしたいような固有名詞ローマ字化してるプロジェクトにであったことはある。

やすい語は見やすいけど、見づらい語は圧倒的に見づらい。

それにローマ字のほうが「ん」でnは1つか2つかや、ヘボンorローマ?という日本語より表記が揃わない問題ある。

特にローマ字場合自分キーボードで打つ方じゃないと書きづらいのでそろえてもらうのに抵抗がある。

---

ラバゴス化・日本が遅れる

海外向けとか海外の人と一緒に作る系なものって最初から英語で困らない単語ばかりだと思う。

そういうのは対象外

今回いいたいのは、元から日本しか対応してないような業務システムなど。

そういったところの固有名詞日本語になったからって、困ることはないはず。

もともとガラバゴスなわけだし。

日本しか使われないもの海外向けにするにしてもフルスクラッチで作り直すことになるようなもの

こういうのは日本語化いいんじゃないかと思う。

---

テスト

テストだと日本語が使ってる人多いのかな?ブコメスタートップだし。

とりあえずはテストから使い始めてみようと思う。

---

長くなったけど参考になる意見もいろいろあって助かった。

  • http://anond.hatelabo.jp/20170421230333

    それは先人たちが「実際やってみたらやっぱダメだわ」ってなったやつだから・・・

  • テストコードで日本語使ってる実感だと…

    テストコードのシナリオ名とか振る舞い名は日本語で書いてる。 プログラム部分とテスト部分がはっきり区別できるし、テストコードがそのまま要件定義になって便利。 ただ、他の変...

  • http://anond.hatelabo.jp/20170421230333

    判る。俺もたまに、日本語でいいんじゃね、って思うよ。 日本語にしたいのは、業務固有の用語だね。各人がバラバラに英訳されて、何だこれ?ってならなくて済むからね。 対応表を作...

  • http://anond.hatelabo.jp/20170421230333

    プログラミングの仕事も海外勢に取られていく昨今、日本語で書いてたらほんと将来性が見えない。

  • http://anond.hatelabo.jp/20170421230333

    今、仕事をしてるシステムは、DBのテーブルやカラムが漢字になっていてすごくわかりやすい。 SQLとか、 SELECT 商品名, 商品略称, 仕入値, 売価 FROM 商品マスタ WHERE 仕入日 > '2017...

  • http://anond.hatelabo.jp/20170421230333

    ローマ字使ってるところはそれなりにあるんじゃないの 表記ゆれがでないように変換辞書みたいなのを作ってさ

  • http://anond.hatelabo.jp/20170421230333

    普通にあるじゃん。色々。 https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E って言うか自分もよくそう思ってたし今でも思うし、入...

  • DBのカラムが日本語、変数・関数名が日本語| ただの通りすがり

    業務システム系だと特に、DB名のカラム名とかは、日本語のほうが分かりよいと思う。

  • http://anond.hatelabo.jp/20170421230333

    話ズレるけどIT関係の絵文字増やしまくって絵文字でプログラミング出来たらいいのにな

  • http://anond.hatelabo.jp/20170421230333

    増田は変数名・関数名・カラム名について語り合いたいし、語り合っているので 「ひまわりなど日本語で書けるプログラム言語はある」とドヤってるブクマカ勢は反省して

    • http://anond.hatelabo.jp/20170422115757

      俺もそれ思った。 増田でバズると論点さえ把握できてない人が絶対いて、そういう人に限って上から目線でえらそうっていう。

      • http://anond.hatelabo.jp/20170422120647

        笑わせんな。 元増田の書き方で >~いいのにって思う。 (実践はしていない) の時点で相手にされねっての。  人の作ったライブラリにコーデックまで借りて「こうだったらいいの...

    • http://anond.hatelabo.jp/20170422115757

      何? 俺に言ってんの?w ドヤってんのはどっちだよってのは置いといて、この元増田に関してはそうかもしれないが、いい加減に増田がどう思われてるか気づいたほうがいんじゃね? ...

  • http://anond.hatelabo.jp/20170421230333

    英語でコードを書いて日本語でコメントを書くことが多ければこんな方法もあるよ Microsoft IME(2010)の設定 入力方法 ・半角英数 ■プロパティの設定 全般 ・ローマ字入力(スペースの入力...

  • http://anond.hatelabo.jp/20170421230333

    たぶんそれ何語でかいてもこれじゃない感でしっくりこないから変えたほうがはかどりそうと考えるよきっと 条例とか法律といった機械が処理しないプロトコル記述みても100パーセ...

  • http://anond.hatelabo.jp/20170421230333

    基本英語(つーか半角英数)のプログラムの中で 変数名とか関数名とかを全角の日本語で統一すると、 全角文字がアイキャッチになって、可読性が上がって良さそう。 漢字カナ交じり...

  • http://anond.hatelabo.jp/20170421230333

    既にカバーされてるけど、やっぱりgithubで公開したらバカに見えるのが一番の問題になる。例えばあなたがgithubでコード見てて、関数名が中国語や韓国語で書かれてたら公開した奴等を...

  • http://anond.hatelabo.jp/20170421230333

    大規模案件で使った経験があるので返信書いたよ http://qiita.com/arai-ta/items/08d0fdb275ff0fcf68a6

  • 書いとく

    http://anond.hatelabo.jp/20170421230333 一番の問題は漢字変換。 漢字変換する時はどんなIME使ってる場合でも画面に表示されてるものから選ばないといけない。 つまり画面に注目せざるを得なく...

  • http://anond.hatelabo.jp/20170421230333

    こんなバカがエンジニアになれちゃうくらい日本はやばい。

記事への反応(ブックマークコメント)

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん