Smalltalk の初期史(1993)

2026/10/07 0:19

Smalltalk の初期史(1993)

RSS: https://news.ycombinator.com/rss

要約▶

日本語翻訳:

Alan C. Kay はオリジナルの Smalltalk を著した人物であり、1960 年代の概念から 1983 年までのオブジェクト指向プログラミング (OOP) の進化を追跡しています。彼のビジョンは、Sketchpad や Simula といった初期の影響を受けることで形成され、約 1973 年に Xerox PARC で ALTO(「Interim Dynabook」)の作成に集結しました。この機械は「すべてはオブジェクトであり、メッセージによって通信する」という考え方を先駆的に提案しました。短期間の反復を経て、献身的なチームによって 7 ヶ月以内に Smalltalk-76 を開発した後、Xerox はやがて革新的な Smalltalk-80 システムを 1983 年にリリースしました。しかし Xerox はこれらの高度な技術を効果的に市場に展開することに失敗し、その決断は Kay が後に「勝利の機縁から敗北を奪う」と呼んだものです。それでもイノベーションは革命的な変化をきっかけとしました。Steve Jobs などといった主要人物は PARC を訪れる際に感銘を受け、Apple の Lisa プロジェクトに直接影響を与えました。Smalltalk-80 は広範に配布された最初の OOP システムであり、ソフトウェア設計を根本的に変革し、発祥の企業が商業的なウィンドウを見逃したとしても、ビジナリーな研究が entire イndustry を変えることができると証明しました。

本文

Alan Kay:Smalltalk とパーソナルコンピューティングの歴史

免責事項と著作権情報

  • 利用条件:本資料の一部または全部を無償で複製・配布することを許可します(商用利益を得る目的ではない場合)。
    • ACM(計算機学協会)の著作権表示、出版物の題名および発行年を表示すること。
    • 「この複製は計算機学協会の許可により行われています」と明記すること。
  • その他:上記以外の複製や再出版には、料金の支払いまたは特定の許可が必要です。
  • 出典元:
    • Alan C. Kay (Apple Computer)
    • 発表会:HOPL-II/4/93/MA, USA
    • © 1993 ACM

要約

  • 歴史的な文脈の再評価
    • 多くのアイデアは以前のものから生まれます。1960 年代(特に ARPA コミュニティ)には、インタラクティブな共有主記憶計算機やグラフィック画面を通じて、「人間とコンピュータの共生」に関する多数の概念が誕生しました。
    • 重要点:重なり合うウィンドウインターフェースやオブジェクト指向設計は、単なる「旧来のものの改善版」としてではなく、1960 年代の成果を「ほぼ新しいもの」と再評価する視点から生まれました。
    • コンピューティング能力の指数関数的成長に伴い、「メインフレーム計算」や「機能呼出し」を超えた新たな可能性を探求しました。
  • ダイナブックとユーザーインターフェースの革命
    • ハンディヘルド型の「ダイナブック」では、共有メインフレームのように多数のユーザーを処理する必要がないため、学習環境としてモンテッソーリやブルナーの考え方を採用できます。
    • 大規模な複雑性の削減から、データ構造や制御構造を廃棄し、生物的な方式(メッセージのみで相互作用する普遍的セル)を採用する必要性が生まれました。
  • Smalltalk の位置づけ
    • 初期の Smalltalk は、ハードウェア、言語、UI デザインにおける前例によって支えられつつも、新しいコンピューティングパラダイムを実現しました。
    • 単なる技術的進歩ではなく、精神的なクンニアン(Kuhnian)のパラダイムシフトを目指した「質的な転換」の結果です。

はじめに

  • 執筆の舞台
    • 1992 年、機内で執筆。膝の上には「Interim Dynabook(暫定型ダイナブック)」と呼ばれる重量 5 ポンドのノートコンピュータを置いています。
    • 年末までの価格目標は 700 ドル未満。
  • ハードウェアとソフトウェア
    • 平坦で鮮明な高解像度ビットマップ画面、重なり合うウィンドウ、アイコン、ポインティングデバイス、十分なストレージ・計算能力を備えています。
    • 特に優れたソフトウェアはオブジェクト指向です。
    • Smalltalk はこのシステムで動作しており、現在の子供たちとの教育活動で使用されています。
  • Smalltalk の意義
    • ARPA および Xerox PARC におけるより大きな探究の一部として発展しました。
    • 功績の帰属は困難ですが、「優先権を主張する無駄な試みなく、発見の興奮を共有する」ことが重要と考えます。
  • Smalltalk の哲学
    • **「コンピュータ」**という概念自体に対する再帰性を持っています。
    • オブジェクト指向設計(OOP)は、動的システムとユーザー関係のモデルリング効率を質的に改善することに成功しました。
    • 単なる技術革新ではなく、人間の可能性を増幅するための新たな設計パラダイムです。
  • 貢献者への謝辞
    • Smalltalk の大半の開発において、Dan Ingalls が中心的な人物でありました。
    • デザインや実装の面で多くの人々(Ivan Sutherland, Marvin Minsky, Seymour Papert など)から影響を受けました。

I. 1960-66:初期の OOP と形成期的なアイデア

220 ファイルシステム

  • 構造
    • 空軍訓練コマンド施設でファイル移動のためのスタイルとして登場しました。
    • デザイナーはファイルを 3 つの部分に分けることで問題を解決(巧妙に解決)しようとしました。
      1. 第 3 部分:実際のデータレコード全体(任意のサイズと形式)。
      2. 第 2 部分:レコードとフィールドを取得し、コピー・更新を行う B220 プロシージャ。
      3. 第 1 部分:プロシージャのエントリーポイントへの相対ポインタの配列(初期ポインタは標準順序で定義)。
  • 特徴
    • このアイデアは後に多くのシステムで使用されましたが、COBOL の強制使用によって消滅しました。

B5000 と HLL コマパイリング

  • 特徴
    • セグメンテッドストレージシステム、HLL(高級言語)コマンドパイラインとバイトコード実行の効率性、自動メカニズムなどを備えました。
    • プログラム参照表へのアクセスが 220 ファイルシステムのモジュールに対する手続き的インターフェースを提供しました。

SketchPad と Simula

  • SketchPad(1963)
    • Dave Evans のオフィスで見つけた資料で、人間とマシンのグラフィカルコミュニケーションシステムとして非常に革新的でした。
    • 主要なアイデア:
      1. マスター描画 vs インスタンス描画:ものが「マスター描画」によって記述され、「インスタンス描画」が生成されます。
      2. 制約(Constraints):制御とダイナミクスはグラフィカルな形式の制約によって供給され、相互に関連する部分を形成します。
      3. 逆索引:手続きへのポインタを埋め込み、逆索引を使用してジャンプするプロセスを実装しました。
      4. 初期機能:クリッピングとズームウィンドウを最初に持っていました(スケッチされたバーチャルシートは約 1/3 マイル平方)。
  • Simula
    • Case-Western Reserve の Algol をベースにノルウェー語から翻訳されたような独特な文書でした。
    • SketchPad のアイデアと非常に類似した構造を持つ割り当てを行いました。
    • **活動(Activity)とプロセス(Process)**という概念を導入し、オブジェクトを独立したエンティティとして制御する手続き言語となりました。
    • シミュレーションや動的システムをモデルリングするための柔軟性を提供しました。

II. 1967-69:OOP ベースのパーソナルコンピューティングへの第一歩

FLEX マシンと JOSS/EULER

  • FLEX マシンの誕生
    • Ed Cheadle とのコラボレーションにより開始されました。
    • Wes Clark の LINC に次ぐ「小さなマシーン」として、高度な言語(BASIC など)でプログラミングすることを目的としました。
    • 既存の JOSS は動的シミュレートには不向きでしたが、エンドユーザーへの配慮は最高級でした。
  • 言語の進化
    • Wirth の EULER は Algol の一般化であり、型を廃棄し、手続きを最初のクラスオブジェクトとしました。
    • Smalltalk-72 の意味論には Simula の影響が強く残っています。

Doug Engelbart と NLS (On-Line System)

  • ビジョン
    • Doug Engelbart は「パーソナルコンピューティングの父」であり、インタラクティブな乗り物を通じて人間の知能を増幅する概念空間へのナビゲーションを提唱しました。
    • グラフィックス、複数のパネル、効率的なナビゲーション、共同作業などの機能を実装しました。
  • パラダイムシフト
    • Gordon Moore の法則と組み合わさり、部屋サイズのインタラクティブ計算機が机上に置くことが可能になりました。
    • 数百万台のパーソナルマシンとユーザーが必要であり、アプリケーション開発はエンドユーザーによるカスタマイズが求められます。
  • インターフェース設計の課題
    • TreeMeta コンパイラのような「相互作用の文法」では、ユーザーがシステム状態から脱出することが強制されました(階層的メニューの問題)。
    • 代わりに、「よりフラットな」インターフェースが必要で、すべての状態への遷移を容易にする設計が求められました。

割当とオブジェクト参照

  • B5000 の一般化
    • オブジェクト参照は B5000 デスクライプタの一般化として扱われました。
    • FLEX デスクライプターには、オブジェクトの「マスター」とインスタンスへの 2 つのポインタが含まれていました。
  • 割当メカニズム
    • B5000 の l 値/r 値方式は複雑なオブジェクトには不向きでした。
    • 新しいアプローチとして、
      a[55] := 0
      のような操作をオペレーターではなく、振る舞いを選択できるインデックスと見なし、ストア前に関連オペランドを検討する仕組みを導入しました。

III. 1970-72:Xerox PARC と Smalltalk-71/72 の黎明期

環境の変化

  • Smalltalk-71
    • Xerox PARC で開発が始まりました。
  • 重なり合うウィンドウとグラフィックス
    • フォント編集、描画、アニメーション、音楽などの機能が追加されました。
    • バイトコードによる効率的な実装が実現されつつあります。
  • アイコニックプログラミング
    • 視覚的なシンボルを使用してプログラムを記述・操作する概念が深化しました。

Smalltalk-72 の誕生

  • 二つの賭け
    • Smalltalk:言語と開発環境としての本格的な開始。
    • Interim Dynabook:教育用モバイルコンピューターの原型的な構想。
  • Smalltalk-72 の原則
    • オブジェクトのすべてはメッセージを送受信するだけです。
    • 内部状態への直接アクセスを禁止し、カプセル化を実現しました。
  • UI デザイン
    • マウスとウィンドウ管理システムの確立が加速しました。

IV. 1972-76:Smalltalk(-72) の成熟期

Smalltalk-72 の詳細な開発

  • 進化の過程
    • ST-74 へと進み、ooze ストージージ管理などの機能が追加されました。
    • Smalltalk と児童教育の関わりが深まり、ThingLab(物理シミュレーション)などが開発されました。
  • 「ディスクパックを焼こう」
    • データ永続化とパッケージングに関する重要な試みがなされました。

Notetaker とアプリケーション

  • Notetaker
    • 文書作成システムの早期の実装です。
  • Apple Demo (1976)
    • Smalltalk の概念を Apple に示す機会となり、後の Macintosh や Lisa の設計に影響を与えました。

V. 1976-80:最初の現代的な Smalltalk(-76)

継承と Class Hierarchy

  • 継承(Inheritance)
    • オブジェクト指向の核心となる「クラス継承」の実装が確立されました。
    • これにより、コードの再利用性と階層構造が大幅に改善されました。
  • Smalltalk-76
    • 現在の Smalltalk の基盤となったバージョンです。
    • 言語仕様と実行環境がほぼ完成しました。

Xerox PARC 以外の展開

  • トラブルと教訓
    • Xerox との協力関係における課題(特許問題や組織的な壁など)もありましたが、これらの経験は Smalltalk の独立した開発を促しました。
    • 「歴史」は客観的事実だけでなく、俳優が舞台から去った後の「弱々しい手振り」として捉えるべきだという視点も持たれています。

VI. 1980-83:Smalltalk のリリースバージョン(-80)

製品化の準備

  • Transforms (変換)
    • コード変換や最適化に関する研究が進みました。
  • Coda
    • 新しいプロジェクトや言語機能の探索が行われました。
  • リリース戦略
    • Smalltalk 80 が正式に市場投入され、商用製品の成功への道が拓かれました。

引用文献と付録

引用文献

  • SketchPad, JOSS, LISP, SIMULA などの 1960 年代の偉大なプログラミング概念への言及。
  • Dan Ingalls, Adele Goldberg, Xerox PARC LRG (Learning Research Group) への感謝。

付録一覧

  • 付録 I: KiddiKomp メモ
  • 付録 II: Smalltalk-72 インタープリタ設計
  • 付録 III: お礼(貢献者への謝辞)
  • 付録 IV: イベント駆動ループ例
  • 付録 V: Smalltalk-76 内部構造

コードブロックと技術的定義例

Smalltalk のメッセージ送信モデル

object message: 'doSomething' performWithArguments: #('arg1', 'arg2')
"オブジェクトは振る舞いの値を持つマッピングとして機能する"

B5000 的な割当 vs 新しいアプローチ

  • 従来の問題:
    a[55] := 0
    (l 値/r 値の混同)
  • Smalltalk の解決策: オブジェクト自体がすべての振る舞いを私有所有し、メッセージによるアクセスのみを許容。

結びに

  • Smalltalk は単なるプログラミング言語ではなく、人間の可能性を増幅する新しいコンピューティングパラダイムでした。
  • 1960 年代から 80 年代までの蓄積と試行錯誤が、現在のパーソナルコンピューティングの基盤を形成しました。

同じ日のほかのニュース

一覧に戻る →

2026/10/07 5:57

Decisions API が公開ベータ版を開始しました

## Japanese Translation: Decisions API は、テキストまたは画像の評価において Responses API より 10 倍の高速化を実現し、gpt-6-luna モデルを専有して動作する専用 POST /v1/decisions エンドポイントを通じて型付けされた結果を返します。現在公開ベータ版で提供中であり、General Availability は近日を予定しています。対応する具体的な回答タイプは 3 つあり、predicates(条件の確率)、choices(固定セットからの選択)、scores(ルーブリック評価)です。機能的には、API は単一のリクエスト内での独立した質問間で入力共有を可能にし、ワークフローを簡略化する一方で、依存関係のある決断は別々の順序実行呼び出しによって取り扱う必要があります。リクエストではテキスト入力またはインライン base64 エンコードされた画像を受け付けるが、ホスト URL および file_id 入力はサポートされていません。コスト効率の向上は、入力トークンのみに対して課金される(100 万トークンあたり 0.1 ドル)モデル採用と出力トークン料金の非課金化を通じて達成されます。また、HIPAA 準拠を米国、欧州、スイスデータセンターで確保するためのゼロデータ保持ポリシーも備わっています。開発者は、偽陽性と偽陰性の間のトレードオフに基づいてルーティング閾値を設定するためにラベル付けされた例を使用することで、コストと精度の最適化が可能です。これにより、条件チェック、固定選択、詳細な評価に対する高速かつ自動化された決定が最小の遅延で可能になります。

2026/10/07 1:03

EmbeddingGemma 2:オープンで軽量なマルチモーダル埋め込みモデル

## Japanese Translation: EmbeddingGemma 2 は、オンデバイス多模态埋め込みにおいて最も高性能なモデルとして、テキスト、画像、音声、ビデオ、コードを統一空間にネイティブにマッピングする画期的なローカル AI 機能の飛躍を示しています。7.4 億パラメータを有し、商用許諾の Apache 2.0 ライセンス下にある堅牢な Gemma 4 アーキテクチャを基礎とすることで、軽量さを維持しつつもベンチマークスコアで業界トップレベルの成績を収めます。その特徴は、Matryoshka Representation Learning(MRL)によるストレージ効率化であり、ベクトル次元を動的に削減することで最大 6 倍までのスペース削減を可能にします。オンデバイス性能向けに最適化されており(テキストのみウェイトの場合 Google Pixel 11 Pro で約 191MB の RAM を必要とする)、ローカルハードウェア上で直接長形式メディアを処理できる impressive な 8K トークンコンテキストウィンドウを搭載しています。ローカル索引付けにおけるコード性能に著しい向上をもたらすと同時に、埋め込みをローカルで生成することでオフラインクロスモーダル検索を実現しデータプライバシーを確保します。開発者はすぐに Hugging Face や Kaggle を介してモデルを利用でき、MediaPipe、LiteRT、WebGPU などのデプロイメントツールや vLLM、Ollama などのサービングフレームワークを活用し、外部クラウドサーバーに依存せず既存のワークフローへのシームレスな統合が可能です。この進展は、効率的かつオフライン AI リトリバルのための新たな業界標準を確立します。

2026/10/07 5:33

パラマウント・スカイダンスがワーナー・ブラザーズ・ディスカバリーとの1,110億ドル合併を完了しました。

## Japanese Translation: パラマウント・グローバルは、ワーナー・ブラザース・ディスカバリーとの歴史的な 1,110 億ドル規模の合併を正式に完了させ、去年別の取引で買収した企業であるスカイダンスという名前の新しいメディア会社を創設しました。この組み合わせには、2 つの最大の映画スタジオ、広範なライブ・スポーツ関連資産(CBS スポーツおよび TNT スポーツを含む)、主要なストリーミングプラットフォーム(パラマウント+ および HBO マックス)ならびに CBS や CNN などの主要ニュース事業、さらに深いコンテンツライブラリとブランドが統合されています。 この取引は、合併が競争を著しく減少させ反トラスト法に違反すると主張するカリフォルニア州およびその他の 11 の州からの法的な課題に直面しました。米国地方裁判所の裁判官は 7 月に合併が競争を害する可能性が高いと裁定し、これを受けて各州から和解案の提議が行われました。言論自由およびメディア擁護団体は、和解を拒否するよう裁判所に要請しましたが(和解は訴追した州の住民に対して「実質的な何ら物事もないものを与えるに過ぎない」と主張)、9 月 30 日にアラセリ・マルティネス・オルギン裁判官は、訴訟回避を実現し合理的な事実および法的解決として合意を批准しました。 和解に基づき、パラマウントは国内映画に対する最低限の投資額および配給閾値を満たす必要があり、基本ケーブルチャネルのライセンスリングは各実体の保有に対して個別交渉の下で継続されます。エレン・ケイガン法務長官は差し止め申請を行わず、裁判プロセスは州側の訴訟とマルティネス・オルギン裁判官が和解を受諾したことに中心を置きました。スカイダンスの将来の成功は、これらの投資要件を満たし、さらなる法的混乱なく継続的なライセンス交渉を管理することによって左右されます。

Smalltalk の初期史(1993) | そっか~ニュース