プログラムは間違えずに入力する時代から、プログラムは間違えて覚える時代にいつ変わったか
1980年代以前と以後という10年くらいの幅をもって振り返ってみる。
人、組織によって、いろいろ違うかもしれない。
1980年頃から、人が端末機器で直接プログラムを入力するようになった。
正しいプログラムを入力する時代
1970年代までは、紙カード、紙テープに穴を開けて、それを読み取り機で読んで入力にしていた。
紙カードで打ったまとまったプログラムは、受付に置いておくと、順次、入力していく。
あるまとまった紙カードが、一つのプログラムであることをわかるようにするには、最初と最後に区切りがいる。この区切りかた、またはそれらのプログラムをコンパイル、実行する手順も、紙カードで入力する場合もあったような気がする。メインフレームでは、Job Control Languageで書いた命令群である。
よくCOBOLプログラマがいないという話を聞く。詳細の打ち合わせをすると、JCLプログラマがいないのであって、COBOLは誰でも書ける。JCLを理解して、どういうCOBOLプログラムが必要かがわからないだけだったりしたこともあるかもしれない。
いずれにしても、一度入力したら、受け付けてもらって、コンパイルしてもらって、コンパイルエラーが出てくるまで、早くて1時間、優先順位が遅いと3時間くらいかかる。結果がでてから手元にたどり着くまでに、1時間くらいかかることもあり、合計2時間から4時間くらいかかる。
一度、コンパイルエラーを出すと、1日の仕事が飛んでしまう。
急ぎの仕事をしている人たちは、自分で紙カードを設定して、すぐにコンパイルして、1時間くらいで次の処理を入力できたりする人がいたかどうかは確認していない。
End Userという末端のプログラマは一日仕事。よくて日に2回コンパイル。
そんな状態では、プログラムは間違えずに入力しないといけない。
但しプログラムを、プログラムを打つ前に確認して、それからtypeしないとまずい。
正しいプログラムかどうか確かめるためにフローチャートを書くらしい
ソースコードを打つ前に、設計書がいる時代だったんです。
ソースコードが設計書だといっても、設計書ができあがるのは、
コンパイルしてからでは困る時代だったんです。
プログラムの順番も、フローチャートを書いて、どこにIFを入れるか、どちらの条件のときにどちらの命令をするか、確認してからでないとコンパイルしない方々がおみえだった。
悲しいことながら、自分が紙カードを使っていた時代は、プログラミングは主たる仕事ではなく、将来プログラミングするために、機材を使わせていただいて勉強させてもらっていただけ。
本格的にプログラミングするようになったのは、1980年になってから、8bit PCが出てからです。
そのため、私はフローチャートを書いてからプログラムをするという仕事を一度もしたことがありません。ごめんなさい。
最初に覚えるプログラミング言語は何がいいですか?
1980年より前はプログラミング言語を覚えてからプログラムしないと、膨大な時間が無駄になったのです。電子計算機の民主化が進んで、プログラムを覚えなくても、プログラムがかけるようになりました。1980年ころから、フローチャートを書く必要もなくなりました。
それでも、人は習慣で、書き続けるし、管理者は新人にフローチャートを書くことを強要しつづけて、40年がすぎました。
残念ながら、私はフローチャートを書いてプログラムの正しさを確認する仕事は一度もありませんでした。つまり、フローチャートとか、ソースコードを書く前に、設計書を書く習慣は1980年までの仕事の仕方でした。
プログラムは間違えて覚える時代
私がプログラミングを勉強していた、1970年代の4年間は、そんな感じでした。
幸運なことに、実際に仕事プログラムを書くようになっt1980年は、8ビットPCなどで入力し始めていました。
この時代になると、もう設計書をソースコードを入力する前に書いておく必要はなくなりました。プログラムのソースコードを設計書として売って、自分の手元ですぐにデバッグ、試験して、プログラムのソースコードを手直しできるようになったからです。
プログラムのソースコードを打つ前に、設計書を作る必要がなくなりました。
1980年からは、PCでプログラムを入力してそのプログラムを大型コンピュータセンターにモデムを経由して送って、動かすこともあります。
本格的に仕事でプログラムするようになった頃には、もはやフローチャートなど要らない仕事の仕方でした。
すべての必要な条件を表にして、動かして、結果が条件を満たせば、条件判断がよかったことがわかるから。
そのためには、プログラムを書く前に、テストデータを書いておき、そのテストデータが通るようなプログラムを書く。テストデータもプログラムの中に埋め込んでおけば、同時に送って、動かすことができる。
プログラムとデータを別々に保存することをしたら、送信が2度必要になるし、ファイル名の管理が面倒で、さまざまなデータをうまく試験できない。
それこそ、JCLを別に書いて、登録しなきゃいけないとか、面倒きわまりない。
プログラムとデータは一緒にして、コンパイルして動かせば、結果が出るのが一番。
自分で大型計算機センタとのやりとりをする端末シミュレータの移植を行ったのが1985年。
この頃は、End Userがプログラム書かないといけなかった。大型計算機瀬センターの人はPCのプログラム書いてくれない大学、組織と、大型計算機センターの人がPC用のプログラムを書いてくばる大学、組織となんかまっぷたつな気がした。自分のいた組織はどちらも前者。自分でやらないとなにもできない。
大学の計算機のシミュレータを移植
VZエディタ移植に当たって実施したことと成果。仮説(115)
短歌
入力がまちがってても大丈夫コンパイルすぐ1980
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
<This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong. >
文書履歴
ver. 0.01 初稿 20220306 昼
ver. 0.02 最初に覚えるプログラミング言語は何がいいですか?URL追記 20220306 夕
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.