Go言語が登場したのは2009年のこと。
私はGoを業務で使った経験は少ない(半年ほど)しかないのだが、Goの影響力は毎日感じている。それは「変数は1文字でもいい」という習慣を、Goが復活させたこと。
私が2010年代に勤めていた会社では、コーディング規約を重視していた(今思えば、社員が若かったからだ)。そこでは、i
のような「短くて分かりにくい」変数はNGで、index_of_users
を使うべきとされていた。
もちろん、これはスコープの観点が抜けている。外部に公開する関数名や引数名では、多少冗長でも分かりやすい名前を使うべきだが、関数内でしか使われない変数では1文字でも意味は掴みやすいし、長い名前はかえって可読性を落とすこともある。
しかし、現代でも公開されているコーディング規約や書籍では「説明的で分かりやすい名前を使いましょう」的なことは書かれていることは多い。そのため、私や私の同僚は愚直に教えに従おうとしていた。
そんな時に、Goのコードでは1文字変数i
やl
を堂々と使いだした。サンプルコードでも、標準ライブラリでも1文字変数だらけ。Goは大企業Googleが発表したこともあり、それなりにリスペクトされた。「Goが採用してるんなら、それが良いやり方なんだろう」と。踏ん切りがついた私たちは、PHPやRubyといった言語でも1文字変数i
やl
を堂々と使うようになった。
ついでに、当時の会社では「l
は数字の1
と誤解しやすいのでNG」「j
はi
と誤解しやすいのでNG」というルールもあったが、それも消えた。