ある意味で、この2冊の本は私のプロとしてのキャリア全体の責任を担っています。

初期のコンピュータでは、派手なデスクトップや、指で簡単に触って操作できるアプリの画面が起動することはありませんでした。いいえ、それらのコンピュータはコマンドラインで起動していました。

ここから、もし運が良ければ、カセットテープドライブを持っているかもしれません。正しいコマンドを知っていれば、それを入力してカセットテープからプログラムを読み込むことができました。しかし、それは初期のパーソナルコンピュータでは高価なオプションでした。私たちの多くにとって、コンピュータに何かを実行させたい場合、101 Basic Computer Gamesのような本からプログラム全体を手入力する必要がありました... このように。

そう、信じられないかもしれませんが、1983年頃、これが私たちの娯楽のアイデアでした。いいえ、私たちはあまり外出していませんでした。本自体は、1970年代にAhlの画期的なCreative Computing Magazineから集められたゲームのいわばベスト盤でした:
AhlがDECを去る決心をしたと同時に、Creative Computingの基盤作りを始めました。彼は1974年6月のNCCで雑誌の発行を発表し、その後数ヶ月で見込みのある著者に連絡し、メーリングリストを取得し、組版と印刷の手配をし、何百ものその他の詳細を整理しました。さらに、彼は家族をニュージャージー州モリスタウンに移し、AT&Tでの新しい仕事に落ち着きました。彼にはほとんど余裕のある資本がなかったので、それを「汗の資本」で補いました。彼は投稿された記事を編集し、他の記事を書きました。彼は書体を指定し、写真を撮り、「クリップアート」の本を手に入れ、イラストを描き、ボードをレイアウトしました。彼は回覧用のフライヤーを書きレイアウトし、ラベルを貼り、郵送物を仕分けしてまとめました。
1974年10月、最初の印刷部数を指定する時が来たとき、彼にはわずか600人の購読者しかいませんでした。しかしAhlは600部だけ印刷するつもりはありませんでした。彼は受け取ったお金をすべて半分に分け、それで8000部を印刷しました。これらは1974年10月31日に印刷機から出てきました。Ahlは印刷所へ向かうドライブ中の高揚感を思い出し、2つの雑誌のスキッドを見て、どうやってそれらを敷地から運び出すのかと途方に暮れた時の失望を語っています。3回の移動の後、彼の地下室とガレージはそれぞれ25冊の320束の雑誌でいっぱいになりました。彼は翌日600部の購読者向けコピーを郵便局に届けましたが、残りの7400部に手作業でラベルを貼って全国の図書館や学校システムに無償で送るのに、ほぼ3週間かかりました。
私もCreative Computingを愛していましたが、少し私の時代より前でした:
- 1971年 – AhlがFOCALからBASICへプログラムを移植。
- 1973年 – 101 BASIC Computer GamesがDECから初めて出版。
- 1974年 – AhlがCreative Computing誌を創刊し、DECから本の権利を取得。
- 1977年 – Apple II 🖥️、PET ️🖥️、TRS-80 🖥️の「三位一体」のマイクロコンピュータが、一般の人々がほぼ手頃な価格で購入できる形で一般公開される。🙌
- 1978年 – BASIC Computer Gamesの第2版がAhl自身によって出版される。
ご覧のように、1973年から1976年の一般の人々がBASICプログラムで大いに何かをしていたはずがありません。なぜなら、BASICを実行できるマイクロコンピュータを購入できなかったからです!安価なパーソナルコンピュータが主流に浸透するまでには時間がかかり、だいたい1984年頃に続編が登場するようになりました。
2010年にこれらの初期のBASICプログラムを現代化するための半端な試みがSmallBasicで行われましたが、これらの移植はコードを最新のものにするのにあまり役立たず、全体として現代のコードプラクティスとの関連性もほとんどないと感じました。元の1973年のBASICのCivil Warと2010年のSmallBasic版を比較して、私の言いたいことを確認できます:

確かに、私たちは行番号を削除する以上のことを少しはできるはずです。私たちの古い友人のサブルーチン、コンピュータサイエンスにおける最も偉大な発明についてはどうでしょうか?それはどこにも見当たりません。🤔
そこで、私は著者のDavid H. Ahlに連絡を取り、これらの古いBASICプログラムを真にアップデートしようとするウェブサイトを作成する許可を求めることにかなりの熱意を持ちました。

幸いにも許可が得られました。この本がプログラマーの世代全体にとってどれほど重要だったかを過小評価することは難しいです。ある時点で、この本の印刷部数はパーソナルコンピュータの台数を上回っていました!
...1973年、DECはアンソロジー101 BASIC Computer Gamesを出版しました。この本はすぐに第2刷に入り、合計10,000部が販売されました。「それは当時存在していたコンピュータの数よりもはるかに多い本でした。だから人々は1台のコンピュータにつき3冊、4冊、5冊も買っていたのです」
それは100万部を売り上げた最初のコンピュータ書籍になりました。実に偉大な遺産です。
私たちは世界に対して、元のBASICの精神を体現した現代的でメモリ安全な言語と、サブルーチンを含む現代のプログラミングプラクティスを使って、この本を最新のものにする義務があると思います。
それでは始めましょう。どうぞGitHubに参加してください。そこで私たちは、10のメモリ安全で汎用的なスクリプト言語で元の101のBASICゲームをアップデートしています:
- Java / Kotlin
- Python
- C#
- VB.NET
- JavaScript
- Ruby
- Perl
- Lua
(編集:2022年3月現在、a) Javaの代替としてKotlinを提供、b) Pascalを削除(メモリ安全性を保証できないため)、代わりにRustを追加(メモリ安全性を確実に満たす)、c) Luaを追加(TIOBEでトップ20に食い込み、スクリプトとメモリ安全性の基準に強く適合)しました。)
これらは1970年代の非常に原始的なゲームであることを念頭に置いてください。ゲーム性やプログラミングの洗練度で賞を獲得することはないでしょう。しかし、それらは初期のコンピューティングの貴重な遺物であり、素晴らしいGeorge Bekerによるオリジナルアートを含め、将来の世代のために保存されるに値するものです。

これを正しく行うためにはあなたの助けが必要です。そして協力して一緒に、すべての現代的なプログラミングプロジェクトのように行います。私たちが皆、1984年に部屋に一人で孤立して本から手入力したコードのどこかで避けられないタイポに悪態をつく代わりに、世界中のどこかでオンラインで同時にこれらのプログラムを入力していると想像してみてください。🤬
Ahl氏に感謝します。そして、このプロジェクトがTwitterでのみ発表されたベータ版の時に貢献してくれたすべての人々に大きな感謝を:
- Oscar Toledo (nanochess)
- Tim Buchalka (journich)
- Dave LeCompte (tsmaster)
- Nezumi Ronin (NezumiRonin)
- Daniel Piron (danielpiron)
- Darren Cardenas (darrencardenas)
- Alvaro Frias (qequ)
- Jamie McCarthy (jamiemccarthy)
- Roger Bamforth (rbamforth)
- Peter Ruderman (pgruderman)
- Piotr Czajkowski (pczajkowski)
- Jack Boyce (jkboyce)
- epvanhouten
- Topher Lamey (clamey)
- kt--
- Tom Armitage (infovore)
- Richard Nienaber (rjneinaber)
- marvin826
- Aldrin Misquitta (aldrinm)
- olliehcrook
- Gustavo ‘Gus’ Carreno (gcarreno)
- Nahid Mondol (NahidMondol)
新しい貢献を奨励するため、2022年末までに、指定された10の言語それぞれで機能するプログラムが提出されるごとに、Girls Who Codeに5ドルを寄付します。始める前に、readmeのガイドラインを読んでください。質問がある場合は、このディスカッションのトピックを参照してください。そして何より、これは楽しいはずだということを忘れないでください。
(私は「その一人」になりたくないので、この取り組みを所有し組織するのに協力してくれるプロジェクト共同オーナーも探しています。もしこのプロジェクトが本当に魅力的だと思うなら、あなたができることを見せて、一緒にチームとして働きましょう。)
新年の抱負として、2022年以降のために古典的なプログラミングの本 – コンピューティング史上最も影響力のある本の一つ – をアップデートする私たちのプロジェクトに参加する時間を割くことを検討していただければ幸いです!🎉
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.