要約
- curlプロジェクトの年表は、Rafael Sagulaが1996年11月に公開したHttpGetと、Daniel StenbergによるIRC為替ボット向けの改造を記録している。
- curl 4の公開は1998年3月20日。他のプログラムが使えるlibcurlのeasyインターフェースは、2000年8月の7.1版に位置づけられる。
ボットに必要だったのは一つの数字
人ならウェブページを見れば済む。ボットには、ページへ自分で取りに行き、同じ作業を何度も繰り返す道具が要る。プロジェクト自身の記録によると、StenbergはAmigaに関わるIRCチャンネルのボットを作る中で、ブラジルの開発者Rafael Sagulaによる小さなコマンドラインツールHttpGetを見つけた。Sagulaの最初の公開日は1996年11月11日。Stenbergの変更を含む版は12月17日に出た。元の作者と後から改造した人を一人にしてしまうと、この歴史の肝心な継ぎ目が消える。
HttpGetという名は、HTTPで取得するという当初の仕事を正確に表していた。1997年にはHTTPのURLを引数として受け取り、プロキシにも対応する。同じ年、Gopherの修正とFTPダウンロードが加わった。仕事は一つのプロトコルを越えた。8月の2.0版で名称はurlgetになる。版の一覧には連続性が残る。看板を替えても、それまでのコードが別物になったわけではない。
だが「get」の寿命も短かった。1997年中にFTPアップロードとHTTP POSTが入り、道具は受信だけでなく送信も始めた。為替を取りに行くために育ったプログラムが、もっと広い「転送」を担当するようになった。名前のほうが現場の仕事に追いつけない。
他人が使える境界を作る
1998年3月20日、curl 4が公開された。数字が4から始まるのはurlgetからの続きだからだ。新しい名はHTTPにも取得だけにも縛られない。SSLやCookieなども1998年の間に加わる。改名の日に以後の機能を全部あったことにする必要はない。現実のサーバーと用途にぶつかるたび、道具は少しずつ増築された。
コマンドが便利でも、別のアプリケーションから使うにはまだ壁がある。外部プロセスを起動し、その出力を読み解くのは壊れやすい接続だ。公式の歴史は、2000年春に適切なライブラリーのインターフェースを目指してコードを組み直したと記す。8月7日公開の7.1版にはeasyインターフェースが入った。当時の変更記録には公開シンボル、インストール可能なヘッダー、共有ライブラリーの構築、オプション設定の呼び出しが並ぶ。地味な項目こそ、他人のプログラムが使える約束を形にしている。
同年8月には第三者によるlibcurlのバインディングも現れた、とプロジェクトは記す。保守者の外にいる人が、この境界を自分の仕事の土台にできたわけだ。現在のC API資料は、設定して実行し、後片づけをする基本形を示す。現在の全機能を2000年へ持ち込んではいけない。当時の新しさは、転送処理をアプリケーションの内側から呼べるようになったことにある。
改名の裏にあった請求書
HttpGetはHTTPの取得、urlgetは複数のURL方式、curlは送受信、libcurlは他人のプログラムへの提供を映している。どの名も、すでに動くコードが越えた境界を後から説明したものだ。ボットの質問は小さかった。しかし各ボットやアプリケーションがプロトコル処理を毎回書き直す費用は小さくない。共通の転送エンジンを維持する理由は、その繰り返しの請求書にあった。
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
ストラテジックサークル限定
ストラテジックサークル
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
ストラテジックサークルに参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加





