- Published on
モダン Smalltalk 2026 完全ガイド - Pharo 12 / Squeak / Cuis Smalltalk / Glamorous Toolkit / Amber Smalltalk / VAST / GemStone/S / Seaside 徹底解剖
- Authors

- Name
- Youngju Kim
- @fjvbn20031
プロローグ — 2026年、Smalltalkがなぜまだ生きているのか
「Smalltalkは死んだ」というジョークは25年間同じ形で繰り返されてきた。そして25年間ずっと外れている。2026年春、Pharo 13が定刻通りリリースされ、Glamorous Toolkit 1.xはmoldable developmentという新しいパラダイムを牽引し、GemStone/S 64 Bit 3.7はいまだにJPMorgan Chaseの巨大なトランザクションエンジンを回している。Seaside 3.5は継続(continuation)ベースWebフレームワークの生きた標本として学術論文で引用され、Squeak 6.0は教室に静かに戻ってきている。
Smalltalkは新規ユーザーを爆発的に集める言語ではない。しかし一度ハマった人はなかなか離れない。なぜか? イメージベース(image-based)パラダイム — テキストファイルの代わりに生きたオブジェクトのメモリスナップショットを保存し、そのスナップショットの中でコードを書いてデバッグして再コンパイルする — を一度体験すると、「なんで他の人たちはテキストファイルを編集してるんだ?」という疑問を止められなくなる。
Smalltalkは言語ではなくシステムである。 テキストファイルはシステムの副産物に過ぎず、本体は生きたオブジェクトグラフだ。これを理解すると「なぜまだSmalltalkを使うのか?」は「なぜみんな使わないのか?」に変わる。
この記事で扱う内容:
- Alan KayとAdele Goldberg — Xerox PARCとSmalltalk-72/76/80
- イメージベース・パラダイム — Smalltalkを他のすべての言語と区別する点
- Pharo 12 / 13 — 現代Smalltalkの旗艦
- Squeak 6.x — Smalltalk-80の直系子孫
- Cuis Smalltalk — ミニマリストの選択
- Glamorous Toolkit (GT) — moldable開発環境
- Amber Smalltalk — ブラウザで動くSmalltalk
- Dolphin・VisualWorks・VAST — 商用陣営
- GemStone/S — 分散OOデータベース + Smalltalk
- Seaside — 継続ベースWebフレームワーク
- Iliad・AIDA/Web・Pier CMS — その他のWebフレームワーク
- Roassal3・Bloc・DataFrame — モダンPharoライブラリ
- Iceberg・Metacello・STON — パッケージ・Git・シリアライゼーション
- 産業導入事例 — 金融・物流・教育・研究
- 韓国と日本のSmalltalkシーン
- Self・Newspeak — Smalltalkの後継者たち
- Objective-C・Ruby・Python・JavaScriptへの影響
- 学習リソースとコミュニティ
- 2026年にSmalltalkを新しく始めるなら
- まとめ — Smalltalkが教えてくれること
- 参考資料
1. Alan KayとAdele Goldberg — すべては1972年Xerox PARCで始まった
Smalltalkの歴史は1972年、Xerox PARC(Palo Alto Research Center)で始まる。Alan KayはDynabookという構想を持っていた。子どもから大人まで、すべての人が自分のコンピューターをプログラムできるべきだという構想。その構想を実現する言語がSmalltalkだった。
Smalltalk-72はメッセージパッシングという概念を一級にした最初の言語だった。すべてはオブジェクトであり、オブジェクト同士はメッセージを送り合う。Adele Goldbergが合流して言語はさらに洗練され、Smalltalk-76でクラス階層とメタクラスという構造が確立された。
Smalltalk-80 — これが今日「Smalltalk」と言うときほぼ常に指すバージョンだ。1980年に公開されたこのバージョンはByte Magazine 1981年8月号の表紙を飾り、オブジェクト指向プログラミングというパラダイムを世に正式に紹介した決定的な瞬間だった。Adele GoldbergとDavid Robsonが書いた「Smalltalk-80: The Language and Its Implementation」(1983) — 通称Blue Book — は今もオブジェクト指向設計の古典である。
Alan Kayは後に「I made up the term 'object-oriented', and I can tell you I did not have C++ in mind」(私がオブジェクト指向という言葉を作ったが、C++を念頭に置いていたわけではない)という有名な言葉を残している。C++が定義するOOPとSmalltalkが定義するOOPは本質が違う。SmalltalkのOOPはメッセージパッシングが中心であり、データにメソッドを束ねることが中心ではない。
2. イメージベース・パラダイム — Smalltalkを他のすべての言語と区別する点
ほとんどのプログラミング言語はソースファイルベースである。.py、.js、.javaファイルをテキストエディタで開いて保存し、コンパイラかインタプリタに渡す。Smalltalkはイメージベースである。
Smalltalkイメージとは何か? 一言で言うと生きたオブジェクトメモリのスナップショットである。クラス、メソッド、インスタンス、デバッガの状態、開いているウィンドウ、さらに進行中のプロセス(suspended process)まで — VMヒープ全体が一度にディスクに保存される。次回イメージを開くと、すべてが正確にその場所から続きを始める。
ソースファイル・パラダイムとの違い
| 区分 | ソースファイル | Smalltalkイメージ |
|---|---|---|
| 保存単位 | テキストファイル群 | VMヒープのスナップショット |
| ビルド | コンパイル・バンドリング | 常にライブ |
| デバッグ | 再実行で再現 | その場で修正・続行 |
| 依存関係 | npm/pip/maven | イメージ内のオブジェクトグラフ |
| 共同作業 | Gitテキストdiff | Monticello/Iceberg がオブジェクト→テキストに直列化 |
このパラダイムの効果は強烈だ。デバッガで例外が出た? Smalltalkはデバッガ内でそのメソッドを直し、スタックをそのまま残し、再実行すればその時点から続きを進める。修正・再起動のサイクルがない。 これがライブコーディングだ。
もちろん欠点もある。オブジェクトグラフをどうやってテキストで共同作業するのか? Smalltalkコミュニティはこれを解くためにMonticello、Metacello、Icebergといったツールを作ってきた。その話は13章で扱う。
3. Pharo 12 / 13 — 現代Smalltalkの旗艦
今日「Smalltalkを学ぶならどこから始める?」という質問への最も一般的な答えはPharoだ。Pharoは2008年にSqueakからフォークされ始まった、MITライセンスの活発に開発されているモダンSmalltalk実装である。INRIAのRMoDチームと世界中のコントリビューターが、毎年メジャーリリースを1回出している。
Pharo 12 (2024年4月)は以下をもたらした:
- Spec UIフレームワークの大幅改善
- Blocグラフィックスフレームワークのアルファ/ベータ統合
- Threaded FFIの安定化
- Iceberg Git統合の改善
- Roassal3視覚化
Pharo 13 (2025年4月)は以下をもたらした:
- 正式なBlocグラフィックス(Morphicの後継)
- Metalinksによる動的インストルメンテーション
- より高速なOpenSmalltalk-VM
- Glamorous Toolkitとのより深い統合
- Iceberg 2.x
PharoはSqueakから分かれるとき一つの決断をした — Smalltalk-80互換性を一部捨て、近代化に集中する。 その結果、Pharoのコードベースは他のどのSmalltalkより整っており、内部的に一貫している。トレードオフはSqueakの古いコード(Etoysなど)を直接持ち越せないこと。
学習資料としては**「Pharo by Example」** (Stéphane Ducasse他、無料PDF、books.pharo.org)と**「Deep into Pharo」** (Andrew Black他)が定番だ。
4. Squeak 6.x — Smalltalk-80の直系子孫
Pharoが近代化を選んだとすれば、SqueakはSmalltalk-80との互換性を守った陣営である。1996年Alan Kay・Dan Ingalls・Ted KaehlerがAppleにいた頃から作り始めたSqueakは、Smalltalk-80のオリジナルイメージから出発しオープンソースとして公開された直系子孫だ。
Squeak 6.0 (2022年)から64ビットが既定になり、Squeak 6.1 (2024年)ではCairoベースのレンダリングとより速いCog VMが入った。Squeakの魅力は単に言語だけでなく、その中に入っているEtoys — Alan Kayが子どものプログラミング教育のために作った環境 — とCroquet(後にOpen Cobaltに分岐)のような歴史的プロジェクトをそのまま触って実行できるという点だ。
Squeakは教育現場でいまも使われる。日本の「Squeak EToys」は一時OLPC(One Laptop Per Child)プロジェクトの既定環境の一つであり、韓国でも一部の大学でオブジェクト指向入門の授業に使われている。
SqueakのライセンスはApache 2.0とMITが混ざった形態で、商用利用にも自由だ。
5. Cuis Smalltalk — ミニマリストの選択
Cuis SmalltalkはJuan Vuletichが作ったSqueakのミニマルなフォークだ。「Cuis」はスペイン語でモルモットを意味する — 小さくて速くて綺麗だという含意だ。
Cuisの哲学は明確だ — Squeakで使わないものを全部抜こう。 Etoys、Morphicの重い部分、古い互換性レイヤーなどを除去し、5,000クラス → 600クラス規模のミニマルなコアだけ残した。イメージサイズが数MBレベルで、すべてのコードを読み切って理解できるのがセールスポイントだ。
Cuis 6.x (2024-2025)は以下を強調する:
- VectorGraphicsベースの綺麗なレンダリング
- 「一人で全部読める」コードベース
- Unicode対応
- Open VM互換
CuisはSmalltalkがどう「本来」意図されていたかを最もよく示す実装と評価される。学習者には大きな利点で、ライブラリの豊富さが必要な人には欠点になりうる。
cuis.st — 公式サイト。
6. Glamorous Toolkit — moldable開発環境
**Glamorous Toolkit (GT)**はfeenkがPharoの上に作った新しい種類の開発環境だ。ただのIDEではなく、moldable developmentという新しいパラダイムを引き連れてきた。moldableとは何か? 自分が扱うデータとドメインに合わせて、ツール自体が変形する開発環境のことだ。
たとえばSQLクエリの結果を見たければ、普通のIDEはテキスト出力か標準的なテーブルウィジェットを見せる。GTではその結果のための特化したビューを5分で作れる。そのビューはそのドメインについて最もよく知っている。
GT 1.xは以下のコンポーネントで構成される:
- GT Inspector — オブジェクトにドメイン別ビューを付けられるオブジェクト検査機
- GT Playground — Smalltalk実行環境、ノートブックとREPLの間
- GT Documenter — 生きた実行可能ドキュメント
- Lepiter — ノート + コード + 実行結果を合わせたページ
- Bloc — GTのグラフィックス基盤
- Brick — Blocの上のUIウィジェット
feenkは2018年Tudor Girbaを中心に始まった会社で、すべてのGTコードをMITライセンスで公開している。gtoolkit.comからダウンロードでき、ダウンロードするとPharoとGTが一緒に入ったイメージが落ちる。
GTの野心は小さくない — 彼らは**「開発者は自分のシステムを理解するためにツールを作るべきだ」**と主張する。新しいコードベースを分析するたびに、そのコードベースのためのツールを書いて捨てる方式。この主張が本物か、マーケティングかは自分で使ってみて判断する話だ。
7. Amber Smalltalk — ブラウザで動くSmalltalk
Amber SmalltalkはSmalltalk-80コードをJavaScriptにコンパイルしてブラウザで実行する実装だ。2010年代初頭にNicolas Pettonらが始めたプロジェクトで、ブラウザでSmalltalk IDEを使い、その結果としてJavaScriptアプリを作る。
Amberの魅力:
- ブラウザさえあればSmalltalkを使える
- JavaScriptライブラリ(jQuery、D3など)をSmalltalkから直接呼べる
- Smalltalkクラス → JavaScript prototypeにマッピング
2026年現在、Amberは活発な開発というよりはメンテナンスモードに近い。だが「SmalltalkがWebで動く姿が気になる」という好奇心にはいまだに答えになる。amber-lang.net。
Amberの後継格としてPharoJSがある。Pharoでコードを書いた後、JavaScriptにトランスパイルするフレームワークだ。
8. Dolphin・VisualWorks・VAST — 商用陣営
オープンソースではない商用Smalltalkも生きている。
Dolphin Smalltalk (Object Arts) — Windows専用。2016年のオープンソース化後、GitHubでコミュニティメンテナンス。WindowsネイティブUIとシームレスに統合し、「WindowsでSmalltalkを使いたい」という要求に合う。
VisualWorks (Cincom) — Smalltalk-80直系の商用実装。Cincom Smalltalkという名で1990年代から産業現場で使われてきた。クロスプラットフォーム、多言語、膨大なエンタープライズライブラリが強み。ライセンスは高価だが、JPMorgan Chase、Texas Instruments、保険・物流会社がいまも使っている。
VA Smalltalk (VAST) (Instantiations) — IBMが1990年代に作ったIBM VisualAge for Smalltalkの後継。2002年にIBMからInstantiationsへライセンスが移り、いまもIBM CICS・MQ統合が強力だ。メインフレーム環境と接続するエンタープライズSmalltalkプロジェクトの正解。
Smalltalk/X — ドイツで開発された別の商用実装。Win32・Linuxネイティブ。
商用陣営の共通点 — お金を払うだけの価値のある会社(金融・物流・テルコ)に深く埋まっており、消えない。だが新規導入はほぼない。
9. GemStone/S — 分散OOデータベース + Smalltalk
GemStone/S 64 BitはGemTalk Systemsが作った分散オブジェクトデータベースだ。普通のRDBではなくSmalltalkオブジェクトをそのまま永続化するOODB。すべてのSmalltalkオブジェクトが自動的にディスクに住み、トランザクションの中で安全に修正される。
GemStoneの使用先
- JPMorgan Chase — 資産管理システムの一部
- Cargill — グローバル穀物取引システム
- Sears — 一時カタログシステム
- Texas Instruments — 製造ライン
- 保険会社のバックオフィス多数
GemStoneの魅力は巨大なOOモデルをトランザクション安全に管理すること。数十億個のオブジェクトをメモリのように扱う。それもただのSmalltalk構文で。SQLのような別のクエリ言語が要らない。
GemTalk SystemsはGemStone製品群を維持する会社だ。GemStone/S 64、Maglev(Ruby + GemStone)、そして一部コンサルティングを行う。ライセンスは高価だが、無料のコミュニティエディションがある。
gemtalksystems.com — ダウンロードとドキュメント。
10. Seaside — 継続ベースWebフレームワーク
SeasideはSmalltalk陣営が作ったWebフレームワークの中で最も有名なものだ。2002年Avi Bryantが始め、継続(continuation)ベースという点で他のすべてのWebフレームワークと違う。
継続ベースとは何を意味するのか? Webリクエストとレスポンスの間にコールバックを使わないという意味だ。ユーザーが「次へ」ボタンを押すと、サーバーはその時点のコールスタックをキャプチャして再開する。開発者はまるでデスクトップGUIを書くようにコードを書く。
| name |
name := self request: 'What is your name?'.
self inform: 'Hello, ', name.
この2行はユーザーにフォームを見せ、応答を受け、また挨拶する。コールバック・ルーティング・セッション管理はすべて自動だ。
Seaside 3.5 (2024年)は以下をサポートする:
- Pharo 12・13で一級の動作
- WebSocketサポート
- REST APIアダプタ
- HTML5コンポーネント
- jQuery・Bootstrapウィジェット
Seasideは継続モデルのトレードオフ — メモリ使用量とスケーラビリティ — のため、巨大トラフィックサイトの第一候補ではないが、複雑なウィザード・フォームフローの多い内部ツールには無敵だ。
seaside.st — 公式サイト。
11. Iliad・AIDA/Web・Pier CMS — その他のWebフレームワーク
Seasideが唯一ではない。
Iliad — Smalltalk陣営の新世代Webフレームワーク。継続を使わず、よりRESTfulなルーティングを採用。Sebastien Audierが2009年に始めた。
AIDA/Web — Igor Stasenkoらが作った別のSmalltalk Webフレームワーク。コンポーネントベースだがSeasideより軽い。クロアチア発のプロジェクト。
Pier CMS — Seasideの上に作ったCMS。ウィキ、ブログ、一般のWebサイトを作れる。Lukas Rengliが主導。2026年基準では活発な開発というより使える状態。
Teapot — PharoのSinatra風マイクロフレームワーク。REST APIに適する。Attila Magyarが作った。
Zinc HTTP Components — Pharo標準のHTTPクライアント/サーバー。ほぼすべてのモダンPharo Webコードがその上で動く。Sven Van Caekenbergheがメンテナンス。
12. Roassal3・Bloc・DataFrame — モダンPharoライブラリ
Pharo 13時代の主要ライブラリ群。
Bloc — Pharoの新グラフィックスフレームワーク。Morphicを置き換える候補として長く開発されてきて、Pharo 13で一級市民になった。GPUアクセラレーション、より速いテキストレンダリング、コンポジションベースのレイアウト。
Roassal3 — Pharoのデータ視覚化ライブラリ。Alexandre Bergelを中心にチリ大学グループが主導。動的グラフ、チャート、ツリーマップ、散布図、コードダイアグラム — Smalltalkコードで描く。GTで一級の視覚化ツールとして使われる。
DataFrame — Pharoのpandas。Olek Zaytsevが始めた。行/列データを統計分析し視覚化する。データサイエンス用。
PolyMath — Pharoの数値計算ライブラリ。線形代数、統計分布、最適化。NumPyのSmalltalkいとこ。深さはNumPyには及ばないが、実用に十分。
ML-Smalltalk / Mathemagics — 機械学習用。産業レベルのMLライブラリではなく、教育・研究目的。
NB / Pharo FFI — Native Boost。CライブラリをSmalltalkから呼ぶFFI。SQLite、OpenSSL、libsodiumなどを呼ぶ。
13. Iceberg・Metacello・STON — パッケージ・Git・シリアライゼーション
イメージベース・パラダイムがGitとどう混ざるか? 中心のツール3つを知れば十分だ。
Iceberg — PharoのGit統合。イメージの中のクラス・メソッドを、Gitリポジトリのテキストファイルと双方向に同期する。Pharoの中でcommit、push、pull、merge、branchすべて可能。UIはGitHub Desktopに似ている。
Metacello — Pharoのパッケージマネージャー。ConfigurationOfXxxまたはBaselineOfXxxクラスに依存を宣言すれば、MetacelloがGitHubから取得してイメージにロードする。npm/pipと似ているが、テキストファイル単位ではなくクラス単位。
Metacello new
baseline: 'Roassal3';
repository: 'github://ObjectProfile/Roassal3:master';
load.
STON (Smalltalk Object Notation) — SmalltalkオブジェクトをJSONに似たテキストに直列化するフォーマット。JSONより表現力が強く、オブジェクトグラフと参照を保存する。設定ファイルとデータ交換に使われる。
Tonel — Pharoのテキストベースソースフォーマット。1メソッド = 1ファイル時代(Filetree)から、1クラス = 1ファイル(Tonel)へ移っていく傾向だ。Git diffがはるかに綺麗になる。
14. 産業導入事例 — 金融・物流・教育・研究
Smalltalkが実際にどこで動いているか? 意外に多い。
金融
- JPMorgan Chase — Kapitalという資産管理システムをVisualWorks Smalltalkで運用。数十年のコードベース。
- Orient Overseas Container Line (OOCL) — グローバルコンテナ会社。運用システムの一部がSmalltalk。
- MoneyMarket / 一部ヘッジファンド — トレーディングデスクのバックオフィス。
物流・製造
- Cargill — GemStone/Sの上に穀物取引プラットフォーム。
- Sears (歴史的) — カタログシステム。
- Texas Instruments — 製造ラインコントロール。
- Desjardins (カナダの金融グループ) — 保険バックオフィス。
教育・研究
- Université de Berne, INRIA Lille, Université de Lille — Pharoの本拠地。
- ETH Zürich, MIT — 一部のOO講義にSmalltalk。
- POSTECH(浦項工科大学校) — 過去にオブジェクト指向授業でSqueak/Pharo。
- Universidad de Chile — Roassal開発。
ライブコーディング・芸術
- Glamorous Toolkit — feenkがコンサルティングとともに披露。
- Sonic Pi比較 — 音楽のライブコーディングと味わいが似ている。
医療
- 一部のEMR/EHRシステムがVAST基盤。
15. 韓国と日本のSmalltalkシーン
韓国
韓国のSmalltalkコミュニティは小さいが途切れたことはない。**POSTECH(浦項工科大学校)**で1990年代からオブジェクト指向授業にSmalltalkを使う歴史があり、一部の卒業生が産業現場でSmalltalk経験を継承している。
KAISTとソウル大学校の一部講義でオブジェクト指向入門に一時Squeakが使われた。韓国Pharoユーザーグループは小規模だがGitHubとDiscordでつながっている。
韓国語の資料は少ない方なので、学習者は通常英語の「Pharo by Example」や「Deep into Pharo」を見る。
日本
日本のSmalltalkコミュニティは相対的により活発だ。Squeak JPグループとSqueakland Japanが子どもプログラミング教育の文脈でSqueak Etoysを普及させた。新世界Squeak(にいせかいSqueak)という活動グループが東京で集まりを続けてきた。
Tokyo Smalltalk Workshopは定期的に開かれる集まりで、ESUG Smalltalk Conferenceに日本人参加者が継続的にいる。日本のPharoコミュニティは韓国より大きく、日本語に翻訳されたPharo資料もいくらかある。
産業的には日本の一部の保険会社・物流会社がVASTやVisualWorksをメンテナンス中だ。
16. Self・Newspeak — Smalltalkの後継者たち
SmalltalkだけがOO研究を牽引したわけではない。同じ家族の他の言語群。
Self — David UngarとRandall SmithがSun Microsystemsで作ったプロトタイプベースのオブジェクト言語。Smalltalk-80のクラス概念を取り除き、すべてのオブジェクトがプロトタイプというモデルを確立した。JavaScriptのprototypeモデル、Hotspot JVMのJIT技法(adaptive optimization) — すべてSelfが原点だ。
Newspeak — Gilad Bracha が作ったSmalltalk家族の新言語。モジュール性とセキュリティに重点。Smalltalkよりさらに洗練された意味論。
Strongtalk — Smalltalk + オプショナル静的型。1990年代Animorphic Systemsで作られ、コードの一部は後にHotSpot JVMに吸収された。
Slate — マルチディスパッチのSmalltalkいとこ。
Pharoの未来分岐 — Sista(Speculative Inlining)とDruidのようなJITコンパイラ研究が進行中。
17. Objective-C・Ruby・Python・JavaScriptへの影響
Smalltalkはユーザーが多くないのに影響力は莫大だ。ほぼすべてのモダンOO言語にその痕跡がある。
Objective-C — Brad CoxとTom Loveが作った言語。Cの上にSmalltalkのメッセージパッシングを乗せた。NeXTが採用し、そのNeXTがAppleに買収されてmacOSとiOSの中核言語になった。[obj message:arg]構文がまさにSmalltalkの痕跡だ。
Ruby — まつもとゆきひろの設計はPerlとSmalltalkの合成。すべてがオブジェクト、ブロック(クロージャ)、メソッドミシング(method_missing) — すべてSmalltalk起源。
Python — Guido van Rossumの設計判断の一部にSmalltalkが影響。すべてがオブジェクト、メタクラス、__getattr__のようなhook。
JavaScript — Brendan Eichが10日で作るときSelfを参考にした。JavaScriptのprototypeベースのオブジェクトモデルはSelfの直系だ。
Java — Smalltalk-80のオブジェクトモデルを単純化して作ったいとこ。クラスベースOO、ガベージコレクション、単一継承 — Smalltalkが先だ。
Dart — Googleが作った言語。Flutterの基盤。Lars BakがStrongtalk・HotSpot経験を活かしてデザイン。
Erlang — Joe Armstrongはアクターモデルを作るときSmalltalkのメッセージパッシングからインスピレーションを受けた。
Smalltalkを知らないモダンプログラマーも、実は毎日Smalltalkの後継を使っているわけだ。
18. 学習リソースとコミュニティ
無料の本
- Pharo by Example (books.pharo.org) — Pharo入門の定番。
- Deep into Pharo — 中級。メタプログラミング、ツール作り。
- Enterprise Pharo: a Web Perspective — Web開発用。
- The Pharo MOOC — Stéphane Ducasse他が作った無料の動画講座。
有料の本
- Smalltalk-80: The Language and Its Implementation (Goldberg & Robson) — Blue Book。1983。
- Smalltalk Best Practice Patterns (Kent Beck) — Smalltalkで書いた良いコードのパターン。
- Pharo with Style (Stéphane Ducasse他) — モダンスタイルガイド。
- Squeak: Open Personal Computing and Multimedia (Mark Guzdial他) — Squeak入門。
カンファレンス
- ESUG (European Smalltalk User Group) Conference — 毎年8-9月にヨーロッパ。最大の定期集会。
- Smalltalks Conference — 毎年アルゼンチンで開かれる。
- Pharo Days — フランス・リールで毎年。Pharoコアチームが参加。
- Camp Smalltalk — 不定期のハッキング集会。
オンライン
- Pharo Discord — 最も活発なチャンネル。
- Pharo discussion list — メーリングリスト。
- Smalltalk Reddit (r/smalltalk) — 議論。
- GitHub
pharo-project/pharo— メインリポ。
19. 2026年にSmalltalkを新しく始めるなら
2026年に初めてSmalltalkを触るなら、次の経路を勧める。
ステップ1 — Pharo Launcherをインストール pharo.org/downloadからPharo Launcherをダウンロードする。このツールで複数のPharoイメージを管理する。最新のPharo 13 64bitをダウンロードして開く。
ステップ2 — Playgroundで最初のコード イメージが上がったらPlaygroundを開く。次を入力してCmd+P(Print it)またはCtrl+P:
1 to: 10 collect: [ :x | x * x ]
#(1 4 9 16 25 36 49 64 81 100)が出力される。
ステップ3 — System Browserを開く
Cmd+O+BまたはWorldメニュー → System Browser。すべてのクラスがここにある。Numberを探して+メソッドを開いてみる。算術演算子もただのメソッド呼び出しだということが分かる。
ステップ4 — Object Inspector どのオブジェクトもinspectorで開く。そのオブジェクトのクラス、インスタンス変数、応答可能なメッセージがすべて見える。
ステップ5 — IcebergでGitリポを作る 簡単なプロジェクトをIceberg経由でGitHubにプッシュしてみる。最初はぎこちないが、慣れるとテキストファイル編集より自然だ。
ステップ6 — GTをダウンロード gtoolkit.comでGlamorous Toolkitをダウンロードする。単なるIDEではないmoldable環境を体験する。
ステップ7 — Roassal3で視覚化を作る 数値の配列を受け取り棒グラフを描くコードを書く。数行で終わる。
ステップ8 — Seasideで小さなWebアプリ 継続ベースのWebフレームワークがどんな感じか直接体験する。
この8ステップを週末1回ですべてこなせる。そうすると「なんでテキストファイルを編集してるんだ?」という疑問が湧き始める。
20. まとめ — Smalltalkが教えてくれること
Smalltalkは決してメインストリームにならない。それは確かだ。だがSmalltalkが消えることもない — その中にあるアイデアがあまりにも強力だから。
すべてはオブジェクト — 本当に。1 + 2もメッセージパッシング。クラスもオブジェクト。メソッドもオブジェクト。
ライブシステム — 止まらないシステムでコードを直す。デバッガが第一級の市民。
metaが一級 — クラスのクラス(メタクラス)を一貫したやり方でモデル化した最初の言語。
環境こそ言語 — IDE、デバッガ、インスペクタ、ブラウザは言語と分離されない。
この4点が50年経った今も他のどの言語でも完全に実装されていない。だからSmalltalkを一度深く触った人は、他の言語に戻っても「自分がSmalltalkでやってたあれはどうやるんだ?」を繰り返し問うようになる。
Alan Kayはよく言う。「The best way to predict the future is to invent it.」 Smalltalkは50年前にその未来を作った。我々はまだその未来に追いついていない。
2026年、Smalltalkを一度触ってみよう。後悔しないだろう。
21. 参考資料
- Pharo公式サイト — pharo.org
- Pharo by Example (無料の本) — books.pharo.org
- Pharo GitHub — github.com/pharo-project/pharo
- Squeak公式サイト — squeak.org
- Cuis Smalltalk — cuis.st
- Glamorous Toolkit — gtoolkit.com
- feenk (GT開発元) — feenk.com
- Amber Smalltalk — amber-lang.net
- GemTalk Systems (GemStone/S) — gemtalksystems.com
- Cincom Smalltalk (VisualWorks) — cincomsmalltalk.com
- Instantiations (VAST) — instantiations.com
- Object Arts (Dolphin) — object-arts.com
- Seaside — seaside.st
- Smalltalk Industry Council — smalltalk.org
- ESUG — esug.org
- Pharo MOOC — mooc.pharo.org
- Roassal3 — github.com/pharo-graphics/Roassal3
- DataFrame Pharo — github.com/PolyMathOrg/DataFrame
- PolyMath — github.com/PolyMathOrg/PolyMath
- Iceberg — github.com/pharo-vcs/iceberg
- Metacello — github.com/Metacello/metacello
- Pharo Discord招待 — discord.gg/QewZMZa
- 「Smalltalk-80: The Language and Its Implementation」(Blue Book, 1983) — Adele Goldberg & David Robson
- 「Smalltalk Best Practice Patterns」— Kent Beck
- Alan Kay, 「The Early History of Smalltalk」(HOPL-II, 1993)
- Squeak JP — swikis.ddo.jp/squeak/
- Wikipedia: Smalltalk — en.wikipedia.org/wiki/Smalltalk