読者です 読者をやめる 読者になる 読者になる

プログラム、美しさ、孤独

バイトで巨大になりうるコレクションを操作するコードを扱うときに Enumerable で定義されている便利メソッドたちを使うのではなくて、eachをつかった少しローレベルなやりかたでコレクションを操作することもあった。

メモリ消費とか処理速度とか諸々の制約があってそうせざるをえなかったんだけど、そのときに始めて効率的な計算の仕方を知っていることの価値を知って、バイト以外でコードを書くときにも計算量に対して敏感になった。

しかしながら、Rubyで便利のためにいろいろ定義されているEnumerableのメソッドたちを使わないのはなにか間違っている気がする。
Enumerableで定義されているメソッドを繋げて書くほうが楽だしわかりやすいし美しい。

美しく簡潔なコードは実用的に動いてほしいしそうあるべき。
使いものにならず、美しくも簡潔でない方法に頼らざるをえないのなら、そもそもそんなやり方を提供するものが美しくない。
実行にコストのかかるやり方は学習や使用にも相応のコストをかけ、そうでないやり方は徹底的にコストを下げる。

普段、使っている Enumerable#sort のアルゴリズムはどうなっているのか、とか計算量についてもっと敏感になる。
あと、計算の効率について考えるときにデータ構造やアルゴリズムに対するプリミティヴな知識の必要性を感じている。
そこそこ歴史のある分野だし体系立てて学ぶのがよさそうなので、薦められている本などを読むことにする。

美意識とかこだわりとか、枷にもなるけど、このケースのようにそういった意識が興味や関心を拓くこともある。絶やさないように心がける。

矜持のない技術者は破滅しかもたらさない。
インターネットの普及でいろんな学習コストが下がっていて、プログラミングの技能を養う機会や可能性は圧倒的に広がっている。
乱暴に言ってしまえば、ある程度のプログラミングなどの技能を身につけることは難しくはない。たぶん、そう遠くないうちにプログラミングも自動化される未来がくるとおもう。

また、徐々に情報技術が普及し一般化し、犯罪に用いられるようになってくれば、事例・判例が溜まって然るべき規制が法制度などの整備によって為されるだろう。

そうなったときに技術の価値を守るのはやはり矜持なのだとおもう。
自分たちが握っている包丁は人も殺せるが我々は人を殺さず、野菜や魚を切っておいしい料理を作りたい、ということをきちんと伝えられなければいけない。

「世界を変えたい」と口にしても、世界が変わることを望まな人もいる、世界が変わるとどうなるのか知らない人もいる。
世界が変わると必ずあぶれる人が出てくる。世界を変えてあぶれた人間をどう扱うのか、そこまで示さなければいけない。

広い意味での「政治」は汚いものとして嫌われがちだが、それはあまりに傲慢だとおもう。既にある仕組みの上でなにかやろうとするならば、先客の顔色を伺わなければいけないのは致し方ないこと。それが嫌ならばまったく違う土地を切り拓くべきだ。
世界はあまりにも多くのものを共有しすぎている。他人と共有するということは、それだけ「政治」の機会が増えるということだ。人々はもっと孤独であるべき。孤独の価値を忘れた傲慢な人間よ。

美しく生きたい。まずは美しい生き方を考えなければいけない。