Turbo Pascal 40周年
(blog.marcocantu.com)- Borlandが1983年11月に発表したTurbo Pascalは、2023年11月に正式に40周年を迎えた
- Turbo PascalはBorlandの出発点となった製品であり、業界で広く使われた最初の**統合開発環境(IDE)**と評価されている
- 当時、開発体験と製品の完成度の面で強い印象を残し、大きな商業的成功につながった
- Embarcaderoは後継コンパイラ系列の開発を継続しており、Delphi 12 AthensのWin32コマンドラインコンパイラはバージョン36.0を使用している
- 現在のバージョン番号体系が最初のTurbo Pascalまでつながっているため、今回の40周年はDelphi系列の歴史とも直接結び付いている
1983年11月に始まったTurbo Pascal
- Turbo PascalはBorlandが1983年11月にリリースした製品である
- 2023年11月時点で正式に40年となった
BorlandとIDEの歴史における位置付け
- Turbo Pascalは業界のマイルストーン製品と評価されている
- Borlandという会社を始動させた製品だった
- 広く知られた最初のIDEとして言及される
- 当時の基準では優れた製品であり、成功の規模も非常に大きかった
さらに読む資料とPascalの文脈
- Turbo Pascalについては、David Iの最近のブログ記事とWikipediaでさらに読むことができる
- Pascal関連資料として、Pascal 50年に関するブログ記事とサラマンカでの第1回Pascal World Congressの発表もあわせて提示されている
Embarcaderoへ続く後継コンパイラ
- EmbarcaderoはTurbo Pascalの後継コンパイラ系列の開発を継続している
- 最近、このコンパイラのバージョン36をリリースした
- Delphi 12 Athensのコマンドラインコンパイラには、
Embarcadero Delphi for Win32 compiler version 36.0というバージョン表記がある - このバージョン番号36は、最初のTurbo Pascalまでさかのぼる番号体系である
40周年記念のEaster Egg
- Embarcaderoは今回の40周年を記念し、製品のEaster EggをTurbo Pascalの記念日に捧げた
- メッセージは「Happy 40th birthday, Turbo Pascal!」で締めくくられている
1件のコメント
Hacker News のコメント
好きだったコンピューターゲームの一つが、Turbo Pascalで書かれた ZZT だった。Epic Megagames の Tim Sweeney が作った奇妙なテキストモードゲームで、パズルやシューティングなどが混ざっており、無料のシェアウェア版にもゲームエディタが入っていて、ZZT-OOP という小さなプログラミング言語まで含まれていた。
ZZT の元のソースコードは失われたが、数年後に Adrian Siekierka が元の Pascal コードを粘り強くリバースエンジニアリングし、元の Turbo Pascal バージョンでコンパイルするとバイト単位で同一の実行ファイルが出るようにした。驚くべきことだ。
https://blog.asie.pl/2020/08/reconstructing-zzt/
https://news.ycombinator.com/item?id=22609474
https://benhoyt.com/writings/zzt-in-go/
Turbo Pascal が私をプログラミングの世界に入れてくれた。Borland Pascal 7.0、後には Delphi 1.0 と 2.0 のライセンスにドイツマルクを何百マルクも使った記憶があり、結局、お金を取って販売した最初の「商用」ソフトウェアも作ることになった。
DOS 時代には Basic を除けば、Turbo Pascal がプログラミングに入る最も簡単な道だったと思うし、Windows 3.1/95 での Delphi は、GUI プログラミングがここまで簡単になり得るのだと目を開かせてくれるツールだった。
多くの面で、あの頃よりむしろ後退したようにも感じる。Turbo Pascal / Delphi コンパイラは、完全な GUI プログラムを小さなバイナリとして生成していたのに、今日の同程度の性能のソフトウェアが、どうして何桁も大きくなっているのか不思議だ。
原因がタイプミスなら、修正して再コンパイルして実行するまで 1 秒で済んだ。最近のツールは、開発者に不要な操作をさらに求める別の哲学を持っていることが多い。
例外は SAP で、どういうわけか 90年代 UI のユーザー敵対性と現代プログラムのリソース消費を組み合わせることに成功したようだ。私も BASIC の次に使った言語は Turbo Pascal だった。
TPでいちばん記憶に残っているのは、すべての関数にシンプルで理解しやすいコード例があり、論理的に整理されていて探して使いやすかったこと。だからBASICをかろうじて理解していた十代だったのに、インターネットなしでIDEだけを使ってTurbo Pascalを独学できた
最近のシステムには、これに近いものさえない場合があまりに多い。当時の単純なx86 DOSベースのシステムという特性のおかげなのか、それとも現代の速い変化のペースやクロスプラットフォーム要件、複雑さのせいで、そういうものを作るのが不可能になったのか気になる
当時、完全なオフラインドキュメントを備えたクリエイティブコーディングフレームワークはProcessingだけだった、と付け加えたい。たとえばOpenFrameworksは今でも大部分が自動生成された空っぽの殻のようなドキュメントに近い
私の考えでは、この点がProcessingを教育現場で代替手段より優位にした要素の一つだった。p5.jsがその伝統を完全には引き継がず、ドキュメントを読むにはオンライン接続が必要で、静的Webサイトではなく、開くとJavaScriptでテキストがレンダリングされる方式になったのはかなり残念だった。それでも例を含め、ドキュメント自体は完全だ
https://processing.org/
https://p5js.org/
大学でインターネットを知る数年前で、学習資料に簡単にアクセスする方法はなかった。それ以前にもCを何度か学ぼうとしてうまくいかなかったが、TPを学んでからようやくPascalで学んだ内容をCへ移していけたし、その時もまた別の優れたBorland製品であるC++ Builderの助けを借りた
80年代末に6809Eアセンブリ、構造化BASIC系、バッチ/シェルを経て、初めて学んだ「本物の」プログラミング言語がTurbo Pascalだった。90年代初めにコンピュータサイエンス学科に進んだ時も、1年生の授業をBorland Pascalで教えていたので、その経験はかなり役に立った
数年後、PascalのバックグラウンドのおかげでDelphiでカスタムアプリを開発する仕事を5年ほどすることになり、その後BorlandでKylixとC++Builder IDEをテストする仕事につながった。良い時代だった
今でもDelphiが懐かしい。今ではIDEプラグインがないと致命的な欠点と見なされるほど当たり前になっているが、当時は自分の言語で簡単に拡張できるコンポーネントライブラリとコーディング環境という発想が、純粋な魔法のようだった。VCLとIDE自体を触るのは本当に楽しかった
Borlandがエンタープライズ市場を追い求め、草の根の開発者たちを後回しにし、コミュニティでの採用の成長を事実上殺してしまったのは残念だ。少なくともDelphi 7前後までは、本当に素晴らしい構成だった
TPに初めて触れたのは1993年の冬、14歳の時にWarez BBSから違法コピーした時だった。ただ.BASファイルを実行するのとは違い、自分でEXEをコンパイルした時に感じた原初的な力は恍惚とするものだった
Renegade BBSを改造し、doorプログラムを作り始め、失敗はしたがワーム、トロイの木馬、ウイルスを作ろうともした。この経験が私の人生を変え、今テクノロジー分野にいる道筋を作った。加えて、十代の頃の逸脱的な性向も今では直した。Borlandには大きな借りがある
数年後、16歳の時には父の顧客管理のための小さなアプリを開発して実際にお金を受け取り、そのお金の一部で合法的なTP6版を買った。良い時代だった
Free Pascal には、今でも元の TP IDE に似たモードがある。ただし彼ら自身も認めているように、コードは腐りつつあり、いまだに元の MS-DOS プラットフォームの古い特殊性に大きく依存している。
neovim や emacs のようにターミナル上で一般的なエディタとして使えつつ、LSP、tree-sitter パーサ、デバッグアダプタプロトコルのような現代的な IDE 志向の機能と統合される、似たバージョンがないのは残念。SSH/ターミナル接続でリモートのコードを編集するときには、流れを変えられるかもしれない。
Turbo Pascal が競合製品よりどれほど速かったかは、誇張するのが難しい。あまりに速くて、何かごまかしをしているのではないかと思うほどで、生成されたプログラムもより速かった。
当時としては傑作であり、受けた称賛は十分に当然のものだった。
そこで、成熟したコンパイラは 1.0 リリースのコンパイラより優れているのだと学んだ。
数年前、Windows PC、RAM 512MB の環境で FPC 2.0 系のバージョンをビルドした記憶があるが、5分もかからなかった。
https://www.tmssoftware.com/site/blogold.asp?post=759
子どものころ、親切なコンピュータ店の店主が、MS-DOS 1.25 が動く PC 半互換機を良い条件で売ってくれた。芝刈りを100回ほどして、子守りをした対価くらいだった。
その店主は一般的な MS-DOS 用 Turbo Pascal、つまり PC BIOS を前提にしないバージョンを 8インチフロッピーで売っており、それを自分の半互換機が使っていた 160KB の 5.25インチ形式に移してくれた。今感じているのと同じくらい、当時も十分に感謝していたことを願う。あれが自分のキャリアを始めさせてくれた。
80年代初頭、Apple ][+ と //e で Apple Pascal、つまり UCSC p-system Pascal ベースの環境を使っていたが、DOS の Turbo Pascal に移った。Turbo Pascal は本当にわくわくするものだった。非常に高速なコンパイラ、良いフィードバック、カラーエディタ、そしてすでに慣れていた WordStar のキーバインドのおかげで、素晴らしい体験だった。
プログラムが十分に大きくなり、オーバーレイ機能を使わなければならなかったことも覚えている。DOS 上でプログラムの異なる部分を、事実上ページのように読み込ませる機能だった。
80年代のどこか、おそらく後半に、Borland の優れたエバンジェリストだった David Intersimone に会ったことも覚えている。彼が私たちの大学の地域 ACM 支部に招かれて訪問したときだった。
不思議なことに、Turbo Pascal は私が初めて学んだ高級プログラミング言語で、その環境は Macintosh Plus だった。あとになって、Turbo Pascal は PC 寄りのものだと知った。
大学時代、学生ローンで初めての Apple コンピュータである Macintosh Plus を買い、たまたま大学新聞の広告欄で Mac 用 Turbo Pascal のコピーを見つけた。ある教授が40ドルほどで売っていたので、すぐに買った。
幸いマニュアルはあったが、Macintosh の開発ツールは非常に素朴だった。ResEdit はなく、テキストファイルで Macintosh リソースを作ったあと、ツールに通してリソースフォークを生成するよう求める、奇妙な R-Maker アプリがあった。
最初に作ったいくつかのアプリは、Scientific American の Computer Recreations コラムに載っていたアルゴリズムを Turbo Pascal で実装したものだった。幸い UI はほとんど必要なく、たいていウィンドウ1つとボタン数個で済んだ。
その後、はるかに Mac 中心の IDE だった THINK Pascal を知ってそちらに移り、さらに後には THINK C に飛び込んだ。
それでも Turbo Pascal は、いつも愛着のある思い出として残るだろう。荒々しく新しい世界へ入っていく時期に、Turbo Pascal が私に扉を開いてくれたのだ。