驚くべきリンゴの逸話: 角が丸い長方形!

驚くべきリンゴの逸話: 角が丸い長方形!

驚きのApple逸話をまたお届けします!ぜひお読みください!今週は、スティーブ・ジョブズがプログラマーのビル・アトキンソンにぶつけた、世界には丸みを帯びた長方形がいくつあるかという痛烈な発言をお届けします。

アンディ・ハーツフェルドは次のように回想している(Folklore.org 経由)。

アトキンソン氏は主に自宅で作業していましたが、目覚ましい進歩を遂げるたびにアップル社に駆け込み、それを喜んでくれる人に披露しました。今回は、テキサコタワーにあるMacintoshのオフィスを訪れ、非常に巧妙なアルゴリズムを用いて実装された、最新の楕円ルーチンを披露しました。

ビルはQuickDraw(当時はまだLisaGrafと呼ばれていました)に新しいコードを追加し、円と楕円を非常に高速に描画できるようにしました。これはMacintoshでは少々難しかったです。円の計算には通常平方根が必要で、LisaとMacintoshの68000プロセッサは浮動小数点演算をサポートしていなかったからです。しかしビルは、円の計算を加算と減算だけで行う巧妙な方法を考案しました。乗算や除算は68000でも可能でしたが、処理速度がやや遅かったのです。

ビルの手法は、奇数列の和が常に次の完全な平方数になるという事実(例えば、1 + 3 = 4、1 + 3 + 5 = 9、1 + 3 + 5 + 7 = 16など)を利用しました。これにより、彼はループ内で閾値を超えるまで反復処理することで、従属座標値をいつ変更すべきかを判断することができました。これにより、QuickDrawは楕円を非常に高速に描画することができました。

ビルがデモを起動すると、Lisaの画面があっという間にランダムな大きさの楕円で埋め尽くされた。想像をはるかに超える速さだった。しかし、スティーブ・ジョブズは何かに悩んでいた。「円や楕円もいいけど、角の丸い長方形を描いてみたらどうだろう? それもできるんじゃないか?」

「いや、そんな方法はない。実際、本当に難しいだろうし、本当に必要ないと思う」。ビルは、スティーブが高速オーバルコースに大満足せず、もっとコースを欲しがっていたことに少し腹を立てていたと思う。

スティーブは急に熱を帯びた。「角の丸い長方形はどこにでもある!この部屋を見回してみろ!」確かに、ホワイトボードや机、テーブルなど、たくさんの角があった。それから彼は窓の外を指差した。「外を見てみろ。もっとたくさんあるぞ。ほとんどどこにでも!」彼はビルを説得して、一緒にブロックを一周歩き、見つけた角の丸い長方形を一つ一つ指し示した。

スティーブとビルが角が丸い駐車禁止標識を通り過ぎた時、その効果は絶大だった。「わかった、諦める」とビルは懇願した。「思ったより難しいか試してみます」。そして家に戻って、標識の修正に取り掛かった。

ビルは翌日の午後、満面の笑みでテキサコタワーに戻ってきた。彼のデモは、美しい丸みを帯びた角を持つ長方形を、まるで普通の長方形とほぼ同じ速度で、驚くほど高速に描画するようになった。LisaGrafにコードを追加した際、彼はこの新しいプリミティブを「RoundRects」と名付けた。その後数ヶ月の間に、roundRectsはユーザーインターフェースの様々な部分に浸透し、すぐに欠かせないものとなった。

面白い話ですが、非常に重要な話でもあります。もしこの出来事がなかったら、OS Xは今とは全く違った姿になっていたでしょう。OS Xの外観は、スティーブ・ジョブズの暴言にすべて起因していました。そして、スティーブ・ジョブズが全力で怒鳴り散らしたことで何かが起こったのは、これが初めてでも最後でもありませんでした。まさに伝説であり、象徴的な存在でした。