ロブ・パイク
http://herpolhode.com/rob/
https://twitter.com/rob_pike
ロブ・パイク(Robert "Rob" C. Pike)
カナダ出身のソフトウェア工学者でありソフトウェア作家
ベル研究所でバート・ロカンシーと共同でBlitを設計
UNIXプログラミング環境(共著: ブライアン・カーニハン)の著者
ロブ・パイクによるプログラミング5ヶ条
http://users.ece.utexas.edu/~adnan/pike.html
https://news.ycombinator.com/item?id=24135189
ルール1. プログラムのどこで処理時間がかかるかはわからない。ボトルネックは意外な場所で発生するので、ボトルネックがどこにあるかを証明するまでは、臆測で速度の改善に取り組まないこと。
ルール2. 処理速度を測定すること。測定して、コードのある部分が他の部分を圧倒しない限り、速度の調整をしてはいけない。
ルール3. 派手なアルゴリズムは、入力値のnが小さいと処理が遅い。そして通常、nは小さい。派手なアルゴリズムは大きな定数を持っている。nが頻繁に大きくなることがないなら、派手なアルゴリズムは使わないようにすること。(nが大きくなっても、まずルール2を適用すること)
ルール4. 派手なアルゴリズムは単純なアルゴリズムに比べてバグが多く、実装も大変なので、シンプルなアルゴリズムとシンプルなデータ構造を使うようにすること。
ルール5. データが支配する。正しいデータ構造を選択し、うまく整理していれば、アルゴリズムはほとんどの場合、自明のものになる。プログラミングの中心はアルゴリズムではなくデータ構造。
ルール1と2 : アントニー・ホーアの有名な格言「早すぎる最適化は諸悪の根源である」を再掲
ルール3と4 : KISSの原則の実例、ケン・トンプソンは「疑わしいときは、ブルートフォースを使え」と言い換えている
ルール5 : 書籍人月の神話(フレデリック・ブルックス著)の中の言葉、ケン・トンプソンはしばしば「スマートオブジェクトを使った愚かなコードを書け」と説明
Googleでロバート・グリーズマー, ケン・トンプソンと共同でGoを設計
ロブ・パイクがGoの成功に貢献した5つの事
https://changelog.com/posts/5-things-rob-pike-attributes-to-gos-success
1. ちゃんとした仕様書を書いた
2. キラーアプリを集めた
3. OSS コミュニティを始めた
4. 言語を変更しづらくした
5. 彼らの信念を曲げなかった
https://gyazo.com/de4662ec18dec0b6bc41dbfdc69f2bcd