可読性の高いローマ字を考える

 俺には英語でどう表すのかわからない概念がたくさんある。辞書を引いても本当にそれが英語として正しいのかはよく分からないし、後から読み返すときにまた辞書を引かないと意味が分からないということになるのもいやだ。用語表を用意するのもめんどくさいし用語表を見に行くのも辞書を引くのもたいして変わらない。かといって日本語で識別子を書こうとすれば一文字目を入力するためのタイプ数がえらいことになってインテリセンスがさっさと動いてくれない。やっぱりローマ字が書きやすいのだがローマ字はぱっと見では何が書いてあるのか良く分からないことになる。

 邪王炎殺黒龍波というのをどう表すか考えてみる。

 EvilKingFireKillingBlackDragonWave <-なんのこっちゃ分からない
 JaouEnsatuKokuryuuha <-読みにくい

 まずローマ字が読みにくい理由として、周りが英語なのにそこだけローマ字になると読み方が混乱する、というのがあると思う。最初にプリフィックスをつけてこれはローマ字だよというのをぱっと見で分かるようにする。プリフィックスxをつける。

 xJaouEnsatuKokuryuuha。

 これに慣れるといくらか見やすくなる感じがする。プロパティ名として最初を大文字にしたいのだが

 XJaouEnsatuKokuryuuha

 こうするとXとJが混ざってしまってなんか見にくい。特に続く文字が母音だと

 XAkumaShougun

 ザクマ将軍に見える。

 じゃあxは固定でその次を小文字にしてみると

 xjaouEnsatuKokuryuuha

 これは最高に見にくい。もうプロパティ名と区別するのはやめにして全部xJaou..という形にする。

 入力にはインテリセンスを使うので、インテリセンスさえさっさと動いてくれれば素の記述コストが高かろうとたいして問題ない。単語の切れ目に_を入れる。

 xJaou_Ensatu_Kokuryuu_Ha

 だいぶ見やすくなった。漢字の切れ目を大文字にしてみる。

 xJaOu_EnSatu_KokuRyuu_Ha

 炎殺や黒龍は見やすくなったと思うがJaOuのOuはゼロユーに見えて見づらいので戻す。入力はどうせインテリセンス頼みなので、正確に記述しにくくても読みやすければなんでもいい。

 xJaou_EnSatu_KokuRyuu_Ha

 JaouEnsatuKokuryuuHa

 だいぶ見やすくなったように思う。漢字の切れ目を大文字にすることで、恋愛、段位、関羽といったnと母音が連続するケースで

Renai <-レナイ?
xRenAi <-恋愛

Dani <-ダニ?
DanI <-ダンアイ?
xDanI <-段位

Kanu <-カヌー?
KanU <-カンユー?
xKanU <-関羽

 意味がはっきりする。xが付くことの効用も確認できるように思う。まあ感覚的な話なのだが。あと段位とか関羽とかは英語にするのは無理だと思う。

 あとこれはもう絶対だが、ホームポジションから矢印キーを直接押せるようにキーバインドを設定しておくべきだ。ローマ字を使おうと使うまいと。俺は上が無変換+k,下が無変換+jだ。

 いろいろ書いてみる。

xTyouHyou
xRouDou_JiKan
xHeiKin_KaKaku
xSuuRyou
xYorokobi_Gumi
xKusare_GeDou
xIka_Devil
xYuuBari_Si_ZaiSei_HaTan
xSen_No_Hutosa
peach_Hime
xMinamoto_No_YoriTomo
xKesiZumi_Ni_Naare
xRiSou_Ni_Mamirete_DekiSi_Siro

 普通に書くより読みやすくなってるんじゃなかろうか。