1 ポイント 投稿者 GN⁺ 2024-11-16 | 1件のコメント | WhatsAppで共有
  • Thomas Eugene Kurtz は John Kemeny とともに BASIC と Dartmouth Timesharing System を生み出したアメリカの数学者・計算機科学者で、1928年2月22日に生まれ、2024年11月12日に逝去した
  • 1960年代初頭の学術計算では、学部生が簡単に使える 非専門家向けプログラミング言語 が不足しており、BASIC はそのギャップを埋めるために作られた
  • Kurtz と Kemeny は、学生がキャンパスの Teletype端末 から BASIC にアクセスできるように DTSS も共同開発し、両システムは1964年5月1日に公開された
  • 1964年秋には、Dartmouth キャンパスの 20台の端末 で数百人の学生が BASIC を利用しており、その後さまざまな世代のコンピューターへと広がった
  • Kurtz の影響は、Dartmouth のコンピューティング教育・運営組織、BASIC の標準化、True BASIC の設立へとつながり、1994年に ACM Fellow に選出された

BASICとDartmouth Timesharing System

  • Thomas Eugene Kurtz は John Kemeny とともに BASICプログラミング言語Dartmouth Timesharing System(DTSS) を共同発明した
  • 1960年代初頭の学術コンピューティング環境では、学部生が使えるシンプルな非専門家向けプログラミング言語が不足しており、BASIC はこの利用者を念頭に置いて作られた
  • 2人は BASIC をキャンパスの学生に提供するため、DTSS もあわせて開発した
    • DTSS はネットワークを通じてコンピューターへのアクセスを共有する方式だった
    • 複数の学生が BASIC にアクセスするには、このような基盤が必要だった
  • DTSS は成功した初期の大規模 タイムシェアリングシステム として定着した
    • Dartmouth にコンピューターを寄贈していた General Electric は、DTSS を Genie のようなオンラインサービスのカーネルへと拡張した
    • DTSS と BASIC は1964年5月1日に公開された
    • 1964年秋には、キャンパスの20台の端末で数百人の学生が BASIC を使用した

学歴と初期のコンピューティング経験

  • Kurtz は Illinois州 Oak Park で生まれ、1950年に Knox College を卒業し、1956年に Princeton University で数学の博士号を取得した
  • 1951年には UCLA にあった SWAC コンピューターを使う機会を得た
    • SWAC は National Bureau of Standards が作った Standards Western Automatic Computer だった
    • アメリカ初期の電子式コンピューターの1つで、2013 CHM Fellow の Harry Huskey が監督していた

BASICの普及とパーソナルコンピューター時代

  • BASIC は複数世代のコンピューターで使われ続けた
    • 1960年代のメインフレームとミニコンピューター
    • 1970〜80年代のマイクロコンピューター
    • 現在のクレジットカードサイズの Raspberry Pi コンピューター
  • 1978年、Harvard の学生 Bill Gates と Paul Allen は、ホビー向けマイクロコンピューター MITS Altair 8800 向けの最初の BASIC バージョンを書いた
    • この BASIC は、機能がほとんどない点滅する箱にすぎなかった Altair を実用的なコンピューターへと変えた
    • パーソナルコンピューター時代に BASIC の人気は再び大きく高まった

Dartmouthでの教育・組織活動

  • Kurtz は Dartmouth で長くコンピューティング教育と運営に関わった
    • 1966〜1975年に Kiewit Computation Center の director を務めた
    • 1975〜1978年に Office of Academic Computing の director を務めた
    • 1979年には Stephen J. Garland とともに Computer and Information Systems の専門職修士課程を組織し、一部資金は IBM の助成金で支援された
  • 1983年には Kemeny と Dartmouth 出身の学生3人とともに True BASIC, Inc. を設立した
    • 目的は、質の高い教育用ソフトウェアとプラットフォーム非依存の BASIC コンパイラーの開発だった
    • CIS プログラム終了後の1988年に再び教壇に戻り、1993年に Dartmouth を退職した

BASICの標準化と学術コンピューティングへの貢献

  • Kurtz は複数の学術コンピューティング組織と標準化活動に参加した
    • EDUCOM の council chairman と trustee を務めた
    • President's Advisory Committee の Pierce Panel で活動した
    • NSF と ARPA が支援する2件の活動の steering committee に参加した
    • instructional computing を扱う最初の CCUC conference の議長を務めた
  • BASIC の標準化でも中心的な役割を果たした
    • BASIC の ANSI 標準を策定した American National Standards committee X3J2 の設立に貢献し、1974〜1985年に議長を務めた
    • BASIC の国際標準を扱う ISO committee SC22/WG8 の構成員として活動し、1987〜1993年に convener を務めた
    • 1994年に ACM Fellow に選出された

1件のコメント

 
GN⁺ 2024-11-16
Hacker Newsのコメント
  • 96歳とは、充実した人生を送られたのですね。RIP
    1986〜1990年ごろ、昔のバンガロールで12歳のときに QBASIC をよく使っていました。当時のインドにはMacもUnixもWindowsもなく、MS-DOSだけでした。
    386に5.25インチフロッピーを入れて command.com で起動し、GWBASIC.EXE に入って SOUND 2000+i, j のようなコードで高周波音を鳴らして家族や友人を困らせ、WHILE WEND ループに入れると人々が止め方を知らず大騒ぎになりました。
    ある日突然、DOSの代わりに MS WINDOWS 3.1 が来て、マウスに白いボールを入れてアイコンをクリックしなければならなくなり、GWBASICは消えてQBASICとヘビゲームが入ってきました。
    CGAで SCREEN 2LINECIRCLE を使って絵を描き、VGAにアップグレードして SCREEN 12 の640x480を使い、音まで出るプログラムを作りました。BASICのおかげで驚くほど楽しい子ども時代を過ごしました。
    BASICからCLIPPER、FOXPROへと進み、FOXPROで在庫管理システムを作って実際にルピーをもらい、その後MFCとBorland C++を経て今日に至りますが、すべての始まりはBASICでした。ありがとうございます、Kurtz博士。

    • 私も同じように、286上のBASICが最初のプログラミング言語で、彼には大きな恩があります。
      GWBASICを名指ししているのが興味深いです。私がアクセスできたBASICもそれで、米国ではその変種はそれほど一般的ではなかったように思います。
      CLIPPERも学んで、いろいろなツールや業務アプリを作りましたが、これもかなり地域的に広まったもののように見えます。
  • 初めてプログラミングを学んだ言語は BASIC でした。Dを設計するとき、BASICの文字列処理がどれほど簡単で自然だったか、そしてCの文字列処理がどれほどバグだらけの泥沼かを思い出しました。
    Dで文字列を簡単かつ正しく扱えるようにすることは大きな優先事項で、歴史が示すように、それは成功だったと思います。
    Cコードをレビューするときは、まず文字列処理を見ます。そこでバグを見つける確率はほぼ確実です。反対する人に聞きたいのですが、調べずに strncpy() が0終端をどう扱うか言えますか?
    ありがとうございます、Thomas Kurtz。

    • うわあ、1987年ごろ、分別のない若いころに組み込み/ロボティクスシステム用の言語を選んでいて、あなたに意図せず失礼なことをしてしまったかもしれません。
      電話で、ええと、C について聞いたように思います。あなたは礼儀正しく答えてくれましたが、歯を食いしばっている感じでした。
      結局Cを選び、そのOSはこの物に入りました: https://www.youtube.com/watch?v=u8ZEUwwOYxo&t=72s
      今でもその通話を思い出すと身がすくみます。
    • BASICは、新しいマイクロコンピュータでアイデアを試してみたい人たちに雑誌が提供していた言語でした。
      何万人にもなるであろう人たちが同時にそのページを手で入力し、高校でタイピングの授業を受けていてよかったと思った人もいたでしょう。
      そこから「これをちょっと試してみたい」となり、成功したり、より強力なBASICを探したりするうちに、PEEKPOKE、さらにはアセンブラへとつながっていきました。本当にわくわくしましたし、自分で何かができるという感覚が大きかったです。
      ありがとうございます、Thomas Kurtz。
    • 最近作業している組み込みコードでも同じことを考えました。4KB ROMと16KBのスタティックRAMを持つZ80でもBASICが文字列を扱えたのなら、なぜ48MHzのARMでC文字列を我慢しなければならないのか分かりません。
    • HNであなたのコメントを何度も読んでいましたが、Dの創始者だとは知りませんでした。
    • 最善の推測をすると、strncpy() は最大 n バイトまでコピーし、その中にヌルバイトがあればそれも含めますが、n 番目のバイトがヌルでなければヌルを追加しません。
      そのため、n+1 バイトを割り当てるにせよ n 番目を切り捨てるにせよ、最後のバイトを自分で0に設定する必要があります。
  • BASICの遺産は偉大です。子どものころ幸運にもAtari 800XLを使うことができ、ハードウェアにBASIC ROMが入っていたのでBASICを学びました。
    周囲にコンピュータに詳しい人がまったくいない子どもでも、マニュアルの後ろのほうにあるサンプルプログラムだけを見て身につけられるほど簡単でした。
    Kurtzに直接会ったことはありませんが、コンピュータとプログラミングがもたらす、ほとんど無限の創造性にアクセスできるようにしてくれたその言語には大きな恩があります。
    大規模で複雑な作業に最適な言語ではありませんでしたが、子どもがテキストアドベンチャーを作り、画面にピクセルを打つには十分でした。INT が整数ではなく割り込みだと知ったのは、それから10年ほど後でした。
    10代のころにTI-BASICで授業用の電卓ゲームを作って遊んだことも、開発者として成長するうえでよい影響があり、プログラミングでよく経験する「同じだが違う」体験の最初の例でした。幸運にも、初期のゲーム開発キャリアにもつながりました。
    昨日まではThomas E. Kurtzという名前を見ても分からなかったでしょうが、BASICという言葉を聞くだけで何十もの良い思い出が浮かびます。子どものころに使っていたAtari 800XLはまだ持っていて、これからはそれを見るたびに彼を思い出すことになりそうです。

    • 私も同じです。ただし Commodore 64 BASIC でした。
  • 記憶が正しければ、1976年にBASICの最初の1行を書いた
    15歳で、父と見本市に行ったところ、IBMのブースである人に月面着陸ゲームをやってみないかと勧められた。IBM 5100だった
    画面の上へスクロールして消えていった文字はどうなるのか父に尋ねると、技術にはまったく関心のなかった父は、IBMのエンジニアに説明してもらった。そのとき、これが自分の道だと分かり、その場で初めてBASICのコードを数行書いた
    翌年にはHewlett Packardのブースで、HP-9825Aらしき機械がプロッタでリサジュー図形を描いているのを見て、すっかり心を奪われた
    その次の年にはHP-25を買うために休みのたびに働き、その翌年にはTRS-80 Model 1 Level IIを手に入れてBASICでプログラミングを始めた
    当時はあまり分かっておらず、Editor/Assemblerを買えば画面解像度が上がると思っていたこともある
    その後はAtari STでMegamax CとGFA BASICを使い、PCではいくつもの言語を渡り歩いた
    いつも驚かされるのは、ある人々がわずか数日、数週間、数か月で、何百万人もの人が一生使う言語を作り上げたということだ。ものすごい影響力だ
    Kurtz先生、最高の言語を作ったわけではないのかもしれないが、あなたが作ったものは若いプログラマーの一世代に喜びとインスピレーションを与えた。その喜びは今日ではいくらか薄れてしまったように感じるが、Rustでコーディングするなら例外かもしれない

    • 1976年に、あなたは私の夢を生きていたのですね。私は14歳のとき、University of IllinoisのPLATO SYSTEMで初めてプログラミングを始めた
      プラズマ画面を使い、端末が1000台あり、ソーシャルネットワークやMicrosoft Flight Simulatorの前身であるairfight、最初のダンジョンゲームであるpedit5/dndがあったシステムだった
      芝刈りをしながら、HP-25やSR-52電卓、あるいはIMSAI 8080のような自分のコンピューターがどうしても欲しいと思っていた
      後にはPLATOでポケットフットボールゲームをシミュレートさせ、玩具のようなインタープリターでBASICプログラムも書いたが、セッションが終わるとプログラムを保存する方法がなかった
  • 2010年に、60〜70年代のコンピューターユーティリティ構想に関する博士論文のため、Thomas Kurtzに自宅でインタビューした
    その構想は、AT&Tや電力会社のように、大型コンピューターユーティリティが電子サービスを提供する世界を予想していた
    彼はずいぶん前に引退していたが、なおDartmouth近くのNew Hampshireの丘陵地に住んでおり、インタビューノートは今では見つからないものの、とても親切にもてなしてくれた記憶が残っている
    彼とJohn KemenyがDartmouthで成し遂げたことは本当に驚くべきものだった。彼らにとって技術、つまりタイムシェアリングとBASICは、学生を教育し、力を与え、最終的には社会全体を強化するための手段だった

    • もしよければ、その博士論文を読んでみたい
      共有してくれてありがとう。読むのを楽しみにしている
  • Tom KurtzとJohn Kemeny、そしてBASICは私の人生も変えた
    1970年に最初のBASICプログラムを書き、翌年の高校時代から、学校のコンピューター室にあるModel 33 Teletypeの前で、学区のHP-2000タイムシェアリングシステムを通じて何時間もBASICでプログラミングしていた
    最終的には、学部生向けのコンピューターに対する考え方に惹かれてDartmouthへ行くことにした
    当時は、どんな形であれコンピューターにアクセスできること自体が大ごとで、プログラミングができるというのは、大学院や就職への応募で同世代とはっきり差がつく能力だった
    だから、1970年代初頭のあの波に今までずっと乗り続けてきたような感覚があり、若い世代で熟練者が爆発的に増えた今でもそうだ
    驚くべき、そして短い時代だった。今13歳だとしたら、人をあれほど簡単に前へ押し出してくれる同じような技術が何なのか、よく分からない
    最初のプログラムはこうだった: 10 LET N=5^2.5, 20 PRINT N, 30 END
    答えである55を少し超える値は、啓示のようだった。当時は対数を知らなかったので、分数の指数の意味が完全に謎で、数学の先生にその答えの意味を尋ねなければならなかった

    • 学校数学が錆びついていて、どう解くのか聞こうとしたが、検索してみた
      “5 to the power of 2.5”と入力して何度かクリックすると、検索ボックスに「math solver」と表示されるこんな結果が出た: https://www.google.com/search?q=5%5E(2.5)
      解法の手順を示すボタンもあり、Quoraの回答には指数法則を使った2通りの解き方が載っていた
      すばらしい。学校数学をもう一度復習しないと
  • Dr. Kurtzのために黒い追悼バーを掲げられないでしょうか?
    私たちの業界におけるBASICの遺産は、どれだけ強調してもしすぎることはありません。Dartmouthでのあの言語と使命は革新的でした
    特にパーソナルコンピュータ黎明期に、無数の新しいコンピュータ利用者が初めて触れたプログラミング言語だったというだけでも、計り知れない二次的影響がありました
    懐かしさに浸ってしまいましたが、ここに1964年版Dartmouth BASICリファレンスがあります: http://web.archive.org/web/20120716185629/http://www.bitsave...
    本当に魅力的で、当時の雰囲気を少し感じさせてくれます
    特に21ページの「TYPING IS NO SUBSTITUTE FOR THINKING」という文句が気に入っています

    • そのマニュアルは本当にいい発見ですね。Dr. Kurtzは、マイクロコンピュータ革命のずっと前からコンピューティングを大衆にもたらすという目標を掲げていた点で、時代を先取りしていました
      BASICはプログラミングへの入りやすい入口であり、私のような70〜80年代の子どもたちを含め、無数の人をコンピューティングに夢中にさせました。彼は誰にも劣らず未来を作った人です
    • 私にとっても、その遺産は大きかったです。子どもの頃、家に一台しかなかったテレビにつないだTIの「コンピュータ」にBASICコードを手で入力していました
      保存するディスクドライブがなかったので、誰も電源を抜かないことを願ってケーブルにラベルを貼っていました
      数年後、ドットコムブームの頃に大学一年生としてVBを使う初めての仕事を得て、文字どおり人生が変わり、両親より恵まれた境遇へ進む道に乗れました
    • マニュアルでは数字の0と文字のOの記号が入れ替わっています
      なので F0R X=1 T0 1OO のような文が出てきます
      1964年には本当にそういう逆の表記だったのでしょうか?
    • 「The legacy of BASIC on our industry can hardly be understated」と書かれていますが、探していた表現はおそらく「can hardly be overstated」でしょう
      BASICの遺産が非常に大きいという意味なら、どう言っても誇張になりにくい、という言い方が正しいです
      「couldn't be understated」だと、どれほど取るに足らないものだと言ってもなおそれが事実だ、という意味になってしまいます。意図したのはそれではなかったはずです
      だからemptiestplaceのコメントは、そこまでダウンボートされるほどではなかったと思います
    • 1日かかりましたが、別のスレッドに返信を書いている間に黒いバーへ更新され、タイピングしていた数分の間に何が起きたのか必死に把握しようとしたのは、かなりぞっとしました
  • 私の世代の多くのプログラマーと同じく、初めて学んだ言語はBASICでした
    80〜90年代にはBASICは本当にどこにでもあり、ほぼすべてのコンピュータに何らかの形のBASICが付いてきました
    6年生の数学の教科書にも、教育用の数学ゲームがBASICのソースコード一覧として載っている付録がありました
    さようなら、そして魚たちに感謝を、Dr. Kurtz

    • 複数のブートディスクにそれぞれ違うバージョンが入っていたので、BASICの複数の派生版を使うことになりました
      すぐ思い出せるのはBASIC、BASICA、QBASICですが、今となっては派生版ごとの差は覚えていません
    • なぜ「thanks.*fish」なのですか? 正規表現ジョークは落ち着いてください
      そういう表現だということは知っていて、読んだこともありますが、Googleより人から説明を聞きたいです
  • 私もBASICでプログラミングを始めました
    最初は学校のApple ][で、その次に家でVic-20を持つようになりました
    Vic-20のより格好いいゲームの多くは、雑誌から膨大な量の整数データをそのまま入力する方式だったので、あまり教育的ではありませんでした
    その後、Rocky Mountain BASICが入ったHPのシステムを使えるようになりましたが、かなり優れたシステムでした
    数年後、RM BASICをHP/UXへ移植する作業でテスターとして働き、初めての専門職の経験を得ました。そして約5年後には、Functional Test Managerという生産テスト管理システムを作る中で、再びRMBに戻りました
    数日前、そのとき一緒に働いていた人と昼食も取りました。書いていて、BASICが自分のキャリアの中核的な一部だったのだと気づきました。RIP Thomas

  • 興味深いのは、Pascalが嘲笑された理由の一つが、元のシステムの限界と、市場に出た実装同士の非互換性だったという点です
    一方でBASICは20年にわたってミニコンピュータとマイクロコンピュータ業界の中核だったと言えますが、実装や機能は本当にばらばらでした
    私が使ったBASICは、式や基本データ型のような基礎を除けば互換性がなく、その基礎でさえ文字列処理はどれも違っていました

    • 違いは、BASICがインタプリタ言語であり、当時はそのような言語は必然的に移植性がなく、教育と小規模システムにしか役に立たないと考えられていた点にあります
      実際、元のバージョンのPascalで書かれた大規模ソフトウェアも特にありません
      Pascalは大規模システムを書ける可能性のあるコンパイル言語として設計されましたが、その面で深刻な限界がありました
    • BASICとPascalに対する期待水準が違っていたのだと思います
      BASICは教育用言語で、人々が無理に押し広げて実務システムを作りはしたものの、依然として過剰に成長した教育用言語だと誰もが分かっていました
      真面目な用途にも使われましたが「おもちゃ」の言語であり、BASICで書かれた真面目なプログラムが移植可能だとは期待されていませんでした
      Pascalも教育用言語として始まりましたが、ずっと「真面目な」言語として受け止められ、実際に制御構造はBASICよりはるかに優れていました
      しかし、その期待値が設けた基準には届かず、理由は前述のとおりです
      BASICで書かれた同じアプリケーションをPascalでも書けたでしょうか? ほぼ確実にできます。そうした方がよかったでしょうか? 間違いなくそうです
      おそらく違いは、BASICの方が近づきやすかったことです。10歳の子どもでもいじれましたが、Pascalは大学生がいじるものに近かったのです
      そのためPascalにはより高い期待が伴い、同じ種類の限界も期待をより大きく裏切るものに見えました