Scribble at 2022-06-20 09:43:43 Last modified: 2022-06-20 09:48:24

Our constant search for the best technology usually arises from the fallacy of a silver bullet. We think that there is a technology out there that can increase our productivity by orders of magnitude. There isn’t. For example, Python is an interpreted language. You don’t need to compile Python code—it just runs right away. Even better, you don’t need to specify types for the variables you declare, which makes you even faster, so Python must be a better technology than C#, right? Not necessarily.

Because you don’t spend time annotating your code with types and compiling it, you miss the mistakes you make. That means you can only discover them during testing or in production, which are much more expensive than simply compiling code. Most technologies are tradeoffs rather than productivity boosters. What boosts your productivity is how adept you are with that technology and your techniques, rather than which technologies you’re using. Yes, there are better technologies, but they rarely make an order of magnitude difference.

Street Coder: The rules to break and how to break them

Sedat Kapanoglu という人物が書いた本を眺める機会があった。彼はユーゴスラビアからトルコへ移り住んだ両親の元に生まれて独学でプログラミングを始めた人物だが、後に Microsoft で Windows のコア開発者としても働き、30年以上に渡るキャリアを積んでいる。また、彼は1990年代に CGM サービスとして共同編集の辞書サイトをトルコで初めて設立し、これはトルコで初めての SNS でもあったという。ちなみに、彼が "Secure Talk" というポッドキャストの番組でインタビューに応えている様子を聞いたところ(https://soundcloud.com/user-779694357/sedat-kapanoglu-author-of-street-coder-the-rules-to-break-and-how-to-break-them)、英語の発音やイントネーションやアクセントはインド人並みに滅茶苦茶だが、本人はぜんぜん気にしていない。僕が思うに、やたらと発音だの「L と R」だのと神経質になって、結局は英語どころか英語でやろうとしてる何事かにチャレンジしようとしないのは、単純に勿体ない話である。もちろん、「発音なんてどうでもいい」などと逆にチンピラみたいなクズ理屈を語るような手合いもバカだが、日本でせっせと英会話の本を眺めているような人々の大半は、はっきり言って発音という体裁を気にしすぎだと思う。なるほど、彼は結果を出してるからこそ容認されているだけだとも言いうるが、アメリカに何年も住んでいながら発音が向上しないなんておかしなことだ。本人が発音を気にしていないか、あるいはアメリカで生活して上達して、やっとあの程度になったということだろう。

さて、当人の話はともかくとして、上記は昨年に出版された彼の本である。"street coder" とは、どういう人なのだろうか。まず、Microsoft で働く彼によると、Microsoft の人を採用するときに想定しているキャリアは二通りあるという。第一に、大学でコンピュータ・サイエンスの学位(言っておくが、博士号のことだ)を取得した卒業生であり、第二にソフトウェア開発で相当な経験があり企業での専門職に従事している人だ。よって、コンピュータ・サイエンスを専攻していないどころか大学を出ておらず、あるいは独学でプログラミングを学んだり、企業で働いた経験もない人々は、簡単に言えば Microsoft に入れない。ここで彼は、大学を出た開発者に比べて独学の人々は、理論が教えるのと同じ結論を自力で試行錯誤して会得する。そして、そういう "street lore"(現場の知恵)は目的志向であり偏ってはいるが、実践的で、試行錯誤の結果であるから、理屈だけを身に着けた人々のコーディングやプログラム設計に比べて色々なリスクを考慮できていたりするという利点があるという。

そうした street は、彼の描くところでは「人外魔境」と言うべきところらしく、"Here be dragons" などと書かれているが、恐らくフリーランスやクラウド・ワーカーとして働いている人々にも、いくらかの実感があろう。僕はフリーランスとして仕事をした経験は殆どないが、経験談は色々と見聞きしていて、なるほどサバイバルだという印象はわかる。なかなか面白い切り口の本である。プログラミングやソフトウェア・エンジニアリングについて書かれた本の中で Slavoj Žižek の名前を見たのは初めてだ。

もちろん、哲学など他の話題についても言えることとして、いわゆる establishment でない人々を「独立研究者」だの "street corder" だのと安易に実体化(偶像化)して、隠れた賢者であるかのように持ち上げるのは愚かな話である。なぜなら、企業でウェブ・アプリケーションの開発に従事している役職者なり distinguished developer として言わせてもらうが、企業内の人材と全く同じていどに、在野の人材も圧倒的多数が無能であり凡庸だからだ。特にその人物でなければ考案できないシステムなんてないし、取引先や外注さん、あるいは当社にも何人かいたコーダの仕事を見ても、たいていは僕の方が設計もコーディングも生産性もセキュリティ・レベルもドキュメンテーションも優れていた(もちろん、僕よりも優れた成果を出す人々もいた)。そして、これは強調してもいいことだが、年齢は何の関係もない。50歳で書く僕のコードの方が25歳の大多数の外注のプログラマよりも、あらゆる点で優れていて、コーディングの速さも大差ない。要するに、「プログラマ35歳限界説」なんてものは凡人の尺度でものごとを語っているだけのことであり、このような錯覚をどうこう言っていること自体が、その人物の凡庸さを自己証明しているにすぎない。凡人は35歳で開発をやめたらいいし、その方が世の中のためなのだろう。あとはローカル・マシンで箱庭みたいなプログラムを暇潰しに書いていたらいい。でも、われわれはそうではないというだけの話だ。

そういう但し書きがあったうえで読むと、本書はなかなか興味深い話題が展開されている。フリーで読める冒頭を少し読んだだけだが、上記に引用した箇所などは初心者に(経歴とは関係なく)繰り返して強調しておきたいポイントだ。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook