回答:
1974年頃、あなたは便利な机に座って、紙に長文を書きます。テストデータを使用して頭の中を歩いてテストします。プログラムが正しいことに満足したら、パンチカードの部屋に行き、プログラムをパンチカードに転写します。カードごとに80文字の行があります。また、プログラムに必要なデータのカードをパンチします。さらに、プログラムをコンパイルして実行する方法、および使用する入出力デバイスをコンピューターに指示する、JCL(Job Control Language)の非常に暗号化されたカードをいくつかパンチします。その後、カードを「IO Window」に持って行き、そこで店員に渡します。
あなたの番が来ると、店員はカードをホッパーに入れ、ボタンを押してコンピューターにカードの読み取りを開始するよう指示します。プログラムの出力は通常、ラインプリンターまたはドラムプロッターに送られます。プログラムが完了すると、店員はカードとハードコピー出力を収集し、それらを拾うことができる鳩の穴に入れます。出力を取得し、結果を確認して、プロセスを繰り返します。完全なサイクルには20分から24時間かかります。おそらく、プログラムに構文エラーがあることを伝えるコンパイラーからの印刷されたメッセージだけを見つけたとき、あなたは幸せではなかったと想像できるでしょう。
また、テレタイプを介してコンピューターにアクセスできるため、実際にリモートコンピューターとの対話型セッションを行うことができます。ただし、テレタイプでの入力は物理的に苦痛でした(非常に硬いキーと大きな音)ので、通常は最初に紙でプログラムを書いてテストしました。
1976年までに、UNIXシステムとPDP 11-70のようなミニコンピューターがより一般的になりました。あなたは通常、25x80文字のディスプレイを備えたビデオ端末でいっぱいの部屋で働いていました。これらはシリアル回線を介してコンピューターに接続されていました。粗野ですが、今日のコマンドプロンプトでの作業とはあまり似ていません。当時のほとんどの編集者はかなりくだらないものでした。Viは驚くべき改善でした。
1975年に(IBM 370/168で)PL / 1でティーンエイジャーとしてプログラミングを学びました(1959年生まれ)。IBM Franceで働く父親を持つという特権がありました。上司のM.ドルンブッシュは、PL / 1でのプログラミングに関する本(フランス語)を執筆しました。
当時、プログラム(プログラミングを学んでいる人が行う)は、数百枚のパンチカードのパケットでした。Charles E.Grantの答えはプロセスを説明しています。最初にプログラムを紙に書き、それを非常に注意深くチェックしました。次に(IBM29 キーパンチマシンで)カードをパンチし、最後にカードデッキをパンチカードリーダーに挿入します。その時点でソースプログラムは非常に小さいことに注意してください(数千のステートメントのプログラム-つまりパンチカード-は非常に大きなプログラムでした)。
10代の頃、特にタイプミスの修正を提案するPL / 1チェックアウトコンパイラの機能に感銘を受けました。
数年後、私はパリのパレ・ド・ラ・デクヴェルテ科学博物館で古いCAB / 500コンピューターとIBM / 1620コンピューターを使って遊びました(両方のコンピューターは博物館に収まるほど古かったです)。CAB / 500は1960年代に製造され、父が私が幼児または幼児(1958-1962)のときにPAFコンパイラ(BASIC言語の一種)を書いていました。
今日、私はまだコンパイラに関連するもの(MELT)をやっており、彼が自分の父親がコンパイラを書いているのを見たと主張できる数少ない人の一人です!
CAB / 500でのPAFの面白い点は、(キーワードで)補完可能な対話型エディター(物理ttyおよびパンチテープ付き)でした。それは、元のIBM PCに少し似ていました。どういうわけか「パーソナルコンピュータ」です。
IBM / 1620の面白い点は、モニターとFortranコンパイラーをロードするためにキーボードに数桁を入力してブートストラップしなければならなかったことです。
1950年代には、一部のコンピューターはカードリーダーをパンチしていませんでした(ただし、IBM650およびIBM7094ではオプションでした)が、見たことがないことに注意してください。
1970年代半ばのコンピューターへのアクセスは大きな特権であったことにも注意してください(高価な機器があるため)。おそらく今日の同等物は、シリコン製造機、またはデータセンター規模の計算能力へのアクセスを得ることでしょう。
どれくらい前に戻りたいかによります。
最古の「プログラミング」は、これのようなパンチカードを使用していました(それは共同です)特に電気的なものとほとんど相互作用せずにコードを書き出して、(実際にチャンスがあったときに)1台のコンピューターに建物に送り込み、しばらくの間コードを実行して何らかの形式の印刷物を吐き出しました。多くの場合、同じコンピューターを使用したい他の多くの人々がいたので、結果が出るまで数日(本当に忙しい場合)まで待たなければなりません。コードの一部を完全に書き直してコンパイルするのに1日待たなければならないと想像してください)。彼らは入力をほとんどチェックする必要も、ユーザビリティテストやその他の重要なテストを行う必要もありませんでした。
PDPおよび同等のものがより一般的になると、プログラマー(特に大学の環境)はコードを紙に書き、PDPで時間を予約してコードを入力し、数回実行します。朝の短い時間に働いていない限り、彼らはあまり時間をとっていなかったので、コードを実行するためだけに一晩中起きている人は珍しくなく、「本物の」PDPでの時間の限られた利用可能性も(または同等の)多くのグループが独自のクローンを作成して、もう少し時間を稼ぐようにします。
当時、コンピュータプログラムを実際に使用することは、今日のプログラムを書くよりも少し簡単かもしれません。今日のIDEは、リモートシリアルターミナルがあったとしても、当時のコンピュータープログラムのユーザーインターフェイスよりもはるかにユーザーフレンドリーであるためです。ほとんどのプログラムは、文書化されていない暗号化されたキーシーケンスまたはコマンドを使用していました。
古代のコンピューターシステムでの私の唯一の経験は、古いKodak 2610 Photoカラープリンターです。光学ストライプリーダーを使用してシリアルTTYから起動しました。雇用期間中、パワー障害が発生した後は一度だけ再起動する必要がありました。
コマンド制御はシリアルvt100 ttyを介して実行されましたが、すべての設定は、紙のストライプを読み書きできる機械的なttyを使用して保存および復元されました。
ジェリー・ワインバーグは、しばらく前に彼のブログの1つで同様の質問に回答しました。http: //secretsofconsulting.blogspot.com/2008/12/how-we-used-to-do-unit-testing.html
これはあなたの質問にいくらかの光をもたらすかもしれないと思います。