Line 1: Error: Invalid Blog('by Esehara' )

または私は如何にして心配するのを止めてバグを愛するようになったか

>> Zanmemo

あと何かあれは 「esehara あっと じーめーる」 か @esehara まで

一人でコードを書きなさんな

 とりとめのない話をメモがてら。

 最近、コードを読むことが多くあるのだけれども、「このコードは一人で書いているな」という感想を覚えることが多い。もちろん、基本的にはコードというのは、物理的には一人で書くものであるのは間違いないのだが、たぶん、それとはまた別種のものだ。

 僕がこの世界でメシを食う数年前に、PHPユーザーは他の言語を知らないから、他の言語の良いプラクティスを知らないという批判が議論を呼んだことがあるようだ。このさいPHPはどうでもよく、問題は「他の言語の良いプラクティスを知らない」ということだ。プログラミング言語というのは、そのときに共存しているお互いのパラタイムと関係している。例えば、最近ならJava8がOption型を導入しようとしているのは、やはり「関数型言語」というのが成熟してきて、その方法論が有益なものとして受け止められるようになってきたからだ。C++もラムダを取り入れようとしている。

 プログラミング言語ですら──それこそJavaScriptだってそうだ──、一つの言語として引きこもることはできないのと同じように、僕たちのコードというのも、一人で書かれるべきものではないように感じる。どういうことかといえば、色々な人のプラクティスであったり、コードを読んだりすることで、人たちがどんなところに苦労したり、どんなところでポカをしたりするかが明確になる。人のポカというのは、人の不幸とはなんとやらで楽しいことかもしれないが、むしろ重要なのは、何をポカするのか、ということだし、また綺麗なコードであったり、エレガントなコードはどんどん盗むべきだ。僕がClojureをやり始めたのも、そのエレガンスさを、どうにかPythonに持っていけないかと思っている部分もある。

 この世界は「コードを書け、バカ」という喝破がされることが多く、確かに自分も全く生産的にコードを書けていないことを反省する一方で、そのように「コードを書く」ことに熱中することは、同時に「一人になっていくこと」だと思う。コードはもっと読むべきだし、読まれるべきだと思う。例えは、HaskellのGHC Baseとか、とても面白いし、あるいはClojure.coreなんかも面白い。あるいはPythonistaならmitsuhiko大先生のレポジトリが手頃だろう。

 そういった、さまざまな人々のプラクティスが重なり合って、いわゆるプログラマーのプラクティスというのが形成されていくように感じる。彼らは一人ではなく、お互いに協力し、影響しあって、「より良く、生産的で、保守的なコードとはなにか」というのを作り出しているように思うし、だからこそ彼らの開発文化に僕は敬意を払う。しかし、そこから余りにも外れたものを見てしまうと、「そんなことより、一人でコードを書きなさんな」と思ってしまうし、「いったいどんなことを考えながらコードを書いたんだろう」と気になってしまうのだった。そして、同様に、一人でコードを書かせている状態にもしてはいけないんだろうな、という気もしている。