
「エンジニアあるある」第35回
何かを箇条書きにするときに、1、2、3…と番号を振るところを、ついつい0、1、2…と、0から番号を振ってしまう。
エンジニアの方の”あるかもしれない”日常風景をデフォルメしてコメディタッチに描く本連載「エンジニアあるある」。さて、今回はどんな風景なのでしょうか...
☆☆☆☆☆☆
エンジニアと一般人を分ける深い溝。それは序列の番号をつける時に、普通の人は1から始めますが、エンジニアはついつい0から始めたくなってしまうことです。これは、多くのプログラミング言語で配列を作る時に「0」から始めるからです。しかも、多くのエンジニアが0から数えるのが合理的だと考えているからです。
配列というのは、一連のデータを順番に格納しておける機能のことです。例えば、「日、月、火、水、木、金、土」という7つのデータを格納した時、先頭の日は配列番号0に、次の月は配列番号1にと格納していき、最後の土は配列番号6に格納されます。
配列は、プログラミング言語の中で、名前と大きさを宣言しておけば、配列番号を指定するだけで求めるデータを表示してくれるとても便利なものですが、実際は、コンピューターのメモリ上のどこかの場所に格納されます。メモリ上の位置は番地で表現されます。最初の日(配列0)が23番地に割り当てられとしたら、月(配列1)は23番地+1の24番地にあります。土(配列6)は23番地+6の29番地にあります。配列を1から始めるとこううまくはいきません。配列は0から始めるのが合理的なのです。
なので、エンジニアはビルの玄関フロアを0階とし、その上を1階、2階と呼ぶべきだと考えています。地下階は-1階、-2階と呼ぶべきだと考えています。こうすると1階から-2階まで何階分降りなければならないかを計算するときは、1-(-2)=3階分であるとすぐにわかります。一般人の数え方では、1階から地下2階まで下がるのに、3階分であるということがわかりづらくなっています。

斜面に建っているビルなどで、玄関があるフロアが2階にあるというような場合があります。間違える人が多いのでしょう、エレベーターの中には「お出口は2階です」と書いてあります。これも玄関があるフロアを0階と呼ぶようにすればいいのにとエンジニアは思ってしまいます。エンジニアは何でも合理的でないと済まない人たちなのです。
(イラスト:ConChan)
-----------------------------------------------------------------------------
※「エンジニアあるある」バックナンバーは以下からご覧ください。
- 「1時間の単純作業を5分で終わらせるプログラミングに8時間かける。」
- 「全角スペースと全角の「1」を異常なまでに敵視している。」
- 「自分で書いたコードがなぜ動かないのか理解できないが、うまくいくと、今度はなぜ動くのかが理解できない。」
- 「時折、大きな声の独り言を言って、自分の声帯がアベイラブルかどうかを確認する。」
- 「機械は擬人化して、「この子」と呼び、性格まで把握しているが、同僚のことはオブジェクト化して見ている。」
- 「「サーバー」か「サーバ」かの話で、焼酎3杯は飲める。」
- 「映画の中でハッカーが登場すると、いちいちケチをつける。」
- 「最初は変数名を英語でつけていたのに、途中からローマ字表記になる。」
- 「ネット通販で変わったガジェット見つけるとすぐに買ってしまうが、翌日配送された時には冷めていて、開封するのも億劫になる。」
- 「記憶がないのに、作業が進んでいることがある。」
- 「意味はなくても、季節の変わり目にデフラグをかけ、プロセス画面をじっと見つめてしまう。」
- 「家電が故障すると、直せないとわかっていても中を開けてみる。」
- 「休みの日に出かけても、自然と家電量販店に吸い込まれる。」
- 「あまり健康には興味はないけど、AppleWatchを買ったらジョギングを始める。」
- 「すぐ隣の席なのに、Slackで雑談をしてくる。」
- 「昼食のメニューを決めていて、いつも同じものを食べる。そのメニューが売り切れだったりするとフリーズしてしまう。」
- 「年下年上限らずに敬語(ですます)で話すのに、エンジニア同士ではタメ口。」
- 「社内や取引先の人々を、自分がよく知っているアイドルグループやアニメの登場人物に当てはめて理解しようとする。」
- 「普段はモノを優しく扱うが、会心のコードが書けた時だけ、ビルド実行のエンターキーを強打する。」
- 「会社の外ではプログラマやエンジニアではなく、会社員と名乗る。」
- 「Dを「デー」と読むのが日常の癖になっていて、「デズニーランド」と言ってしまう。」
- 「家族旅行で、どこの観光地を見て回るかを話し合っているうちに、なぜかフローチャートが出来上がっている。」
- 「ソースコードに付けられたコメントを読んでいるうちに、顔も知らないその人に親近感を感じてしまう。」
- 「ぜんぜん逆でもないのに、「逆に言うと」と言ってしまう。」
- 「ループ変数はとりあえずiを使い、足りなくなるとj、kと使うが、さらに足りないとlを使おうとしてなんとなくヤバイ感じがして、iiを使う。」
- 「プログラマーの数を倍にしても納期が半分になるわけではない。逆に、プログラマーの数を半分にしても、奇跡的に完成する場合もある!?」
- 「納期は10月と言ったとき、エンジニアの多くは10月31日23時59分59秒までを想定する。」
- 「エンジニアは、質問に対する説明が丁寧でうまい。しかし、聴き方に問題があれば、専門用語を連発するようになる。」
- 「「ジャワティー」が英語で表記されていると、ジャバティーと読んでしまう。」
- 「コーディングが終わって、ビルドが一発で通ると、なんだか寂しくなる。」
- 「障害が発生したユーザー企業の「何もしていないのに」の言葉は頭から信じていない。」
- 「英語ができなくても、外国人エンジニアとプログラミング言語で会話ができる。」
- 「仕様は二転三転するが、スケジュールは動かざること山の如し。」
-----------------------------------------------------------------------------