babie steps

作業療法記録

記法における「読みやすさ」と「書きやすさ」

プログラミング言語やテンプレート言語やHTMLやPDFを吐き出す言語において、記法って大事よねってみんな思ってるけど、宗教論争になっちゃうよね。んで、今回は宗教論争をさらに熱くするための一助をしたいと思う。まとめると、記法の良さには色々あるってこと。

読みやすさ

まず「読みやすい」ってなんだろう?読み方には大きく分けて(というかこれら以外知らんが)黙読と音読があるじゃないっすか。つまり、

  • 黙読に優しい記法
  • 音読に優しい記法

があるように思う。

例えば、Rubyは黙読に優しい記法を持ってると思う。まず、RubyPerlに比べると記号が少ない。$や@や%が登場する頻度が比較的少ない。同じ理由でテンプレート言語のSlimはHamlよりも黙読に優しいと思う。人によってはこれらの記号で目がチカチカすると思う。俺なのだが。しかし、人によっては強調されてて把握しやすくて良いと思う。そして、Rubyは変数名やメソッドには慣習的にsnake_caseを用いUpperCamelやlowerCamelを使わないのでうるさくない。確か英語的な感覚では大文字は大声だったと思う。CAUTIONとかWARNINGとか強調するときに大文字を使う。そんで、俺的にはUpperCamelやlowerCamelもややうるさい。だからRubyが好きなんだな(自己解決しました)。

一方、メソッドが通常UpperCamelであるObjective-CJavaは音読に向いた記法だと思う。まぁ記法というよりは標準ライブラリがもたらす慣習と言ったほうがいいかもしれないが、これらの言語で書かれたコードが冗長なメソッド名を持つのは周知の事実かと思う。長けりゃ悪いってわけでもなくて、話すときに正確に伝えられるってことは、チーム開発とかにも良いだろうし、普通は思考を音で考えるタイプの方が多いのでいいんじゃなかろうか。

視覚に訴える記法と聴覚に訴える記法があるってわけ。五感全部あればいいのだが、残念ながら匂いがする記法や甘い記法や敏感タッチいやんな記法にはまだあったことない。小説の文章ではたまにあるけどな。第六感?HaskellOcamlは数学感というか関数脳に訴えるんじゃない?(よく知らん)

書きやすさ

書きやすさの方はすっきり腑分けできないのだが、

  • そのまま読める記法
  • 書いていて動作や結果を想像しやすい記法

があるように思う。(思考を整理するための読みやすさは上で書いたので置いておく)

例えば、Markdownは前者の配分が高めだと思う。んで、名前忘れて検索できないけど、とあるMarkdownっぽいやつは(イタリックを/Italic/などとして「あ、斜めなんだな」と分かるように書ける)後者の配分が高めだと思う。Markdownはパラグラフは良いんだけど改行がクソ(改行前に半角スペース2個打つとか、リストの前後に空白行を書かないいけないとか)なんで、小説などのepub作成にはあまり向いていない、つまり、後者の用途で差し障りがある場合もある。アセンブリは後者なんじゃないかな、多分。なんかあんま思いつかないからこれで終わるわ。

まとめ

いろんな燃え方を見たい。

f:id:babie:20140112010632j:plain