世界を動かす技術を、日本語で。

IBMはMicrosoftがダイアログフィールド間を移動するためにTabキーを使用することを望んでいなかった

概要

MicrosoftとIBMのOS/2共同開発時の文化的ギャップを描写。 フィールド移動キー選定を巡る両社の組織構造の違いを紹介。 現場判断と階層的意思決定の対比。 ユーモアを交えたエピソードで議論が決着。 著者Raymondの経歴と活動紹介。

OS/2共同開発における文化的ギャップ

  • MicrosoftIBM の協業における 文化的ミスマッチ
    • Microsoft側:IBMを「無意味な官僚主義に陥った組織」と見なす傾向
    • IBM側:Microsoftを「規律のないハッカー集団」と捉える傾向
  • 組織構造 の違いが意思決定プロセスに影響
    • Microsoft:現場担当者が自律的に判断
    • IBM:意思決定を上層部までエスカレーションする階層型組織

フィールド移動キーを巡る意思決定

  • Boca Raton (IBMオフィス)での実際のエピソード
    • ダイアログボックスで フィールド移動 に使うキーの選択が対立点
    • Microsoft担当者は TABキー を選択
    • IBM側はこの決定に不満を示し、Redmond本社のマネージャーにエスカレーションを要請
  • Microsoftマネージャーの回答
    • 「あなたがBocaにいる理由は、私がBocaに行かなくて済むようにその場で決定するため」
    • 担当者はこれを「Microsoftはこの用途にTABキーを支持」と意訳してIBMへ伝達
  • IBM側のさらなるエスカレーション
    • プログラマーから 7階層上のVP まで問題を持ち上げる
    • 同等の職位のMicrosoft幹部からもTABキー支持の確認を要求
  • Microsoft担当者のユーモラスな最終回答
    • Bill Gatesの母親 はTABキーに関心がない」
    • この一言で議論が終結し、TABキーの採用が確定

著者Raymondの紹介

  • Raymond はWindows進化に30年以上携わるエンジニア
  • 2003年からブログ「 The Old New Thing」を運営、予想以上の人気を獲得
  • ブログ内容をまとめた書籍「The Old New Thing」(Addison Wesley 2007年刊)も出版
  • Windows Dev Docs Twitter アカウントでも時折無駄話を投稿

補足

  • アメリカでは 日曜日が母の日
    • TABキーについて母親に意見を求めるのは控えるべきとのユーモア

Hackerたちの意見

変だな、3270のメインフレームではタブキーを使ってフィールド間を移動してた気がするんだけど、俺の記憶ではね。

+1、ずっとIBMの標準だと思ってた。TABで移動してENTERでフォームを送信するって。

IBMのグリーンスクリーンを使ったのはずいぶん前だけど、うちのアプリではタブでフィールド間を移動してた気がする。ただ、そのために予約されたファンクションキーもあったと思う。

それ、俺の記憶とも一致してる。タブを使うのは自然だったし、マウスを使うGUIアプリに行くとタブの順番が間違っててイライラした。特にVisual Basicのアプリでね。

ミッドレンジシステムについて気になるな。AS/400は使ったことないけど、「フィールドエグジット」キーが別にあるって知ってるよ。

面白い記事だけど、IBMがタブキーの使い方に反対した理由が知りたいな。タブを入力文字と制御文字の両方にしたくなかったのかな?つまり、入力フィールドにタブを入力できる場合とできない場合があって、どれがどれかすぐには分からないことがあるよね?2026年になっても、この考えには共感するな。

そうだと思う。無数の動くパーツを持つ組織を管理するのと、ユーザーのために何かを迅速に作るのでは、全然違う懸念があるからね。

今、CAPSLOCKが「次の入力を選択する」ために使われて、TABが文字として使われる世界を想像してる。

もしかしたら、IBMのメインフレームや3270ターミナルエミュレーターと競合するからかな?

個人的には、フィールド変更にタブキーを使うのが好きじゃない。まず、これはDOSからの大きな変更だったから。DOSプログラムではEnterを使ってたし、Enterを押すことで片手で数値データを入力できたんだ。数字キーパッドにはEnterキーがあるから、左手は(紙の)ソースの上に置いたままで、右手でタイピングできた。みんなこれが早くなったんだよね(本当に早かった)。このパターンは今でもいくつかのプログラム(例えばExcel)に残ってる。多くの人(つまり、私の顧客)は、両手をキーボードに使うのが嫌だった。私たちのプログラムの多くは、Enter=タブのマッピングを許可してた。はっきりさせておくけど、重要なのはキーの「名前」じゃなくて、位置なんだ。キーの二重使用はただの厄介なことだよね。時々、キーはナビゲーターとして機能するけど、他の場合ではスペーサーとして機能する。馬鹿げてる。(Enterも同じ問題がある。)最良の解決策は(圧倒的に)キーボードにもう一つキーを追加することだったと思う。できれば数字キーパッドに。あの時代にはたくさんの新しいキーが追加されたから、振り返ると「進む」キーを追加すべきだったね。

私が解釈したのは、完全に「IBM」の理由はなかったってこと。つまり、「IBMの官僚の一人が介入して物事を止めてしまった」ということが、文化的な違いを浮き彫りにしていると読んだんだ。これはその違いについての投稿だからね。

ブラウザ内で動作するテキストエディタを設計するなら、タブキーの機能についてユーザーの期待を完全に壊さないといけないよね。この環境では、タブキーが果たすことができる二つの論理的で直感的な役割が対立してるから。エンターキーでも同じ問題が起こるし、今の時代、ctrl+crlfが改行を引き起こすのか、メッセージ送信になるのか、bare crlfやshift+crlfの動作がどうなるのか、みんな結構複雑なルールを持ってると思う。HNのエディタでは、shift+crlfとbare crlfが改行を作って、ctrl+crlfは何もしないんだけど、ctrl+crlfがフォームやメッセージの送信を引き起こすことも多いし、shift+crlfは生の改行を挿入することが多い(フォームの中でも)。bare crlfはどっちか一方をするかもしれないし、どっちもしないかもしれない!これが一般的なバインディングだけど、shift+crlfがフォーム送信を引き起こしたり、raw newline挿入にはctrl+crlfが必要だったりする例外も見たことある。こういうのは本当に面倒で、ユーザーにストレスを与える原因になるよね。長い間、MSFTのスタイルガイドはベストプラクティスの参考として重要視されてたけど、今の人たちには皮肉に感じられるかも。

Hacker Newsで議論の続きを見る