トップ «前の日記(2025年07月24日) 最新 次の日記(2025年08月13日)» 編集

xiphioの備忘録


2025年08月10日

_ [computer] プログラミングの昔話

仕事にしている訳ではないので、プログラムを書くというのは、ずっと趣味です。昔々、マイコンでのBASICしか無かった時代でも、とにかくプログラムを書いて動かしてみる事が出来るのが楽しかったです。

初めてプログラミングと言うのをやったのは、高校2年生位の時だったかと思います。未だにパソコンはおろか、TK-80とかのマイコンも出ていない時代です。(TK-80は1976年発売との事ですから、丁度その直前くらいだったですね)高校に、誰も使っていないHitac-miniと言う機器があるのを見つけ、一緒に有ったマニュアルを読んで、遊んでみたのが最初です。丁度その頃NHK(多分ラジオだった様な気がしますが)でコンピュータ講座があり聞いていました。高校時代のNHKの放送では、後年大学で教えて戴く事になる、米田先生も講師をしておられたのを憶えています。

Hitac-miniは当時有名だったミニコンのHitac-10をおもちゃにしたみたいな機器で、機能としては数年後に出てくるプログラム可能な関数電卓と同じぐらいでしたが、当時の私には楽しくて仕方有りませんでした。初歩的ですが、円周率の計算とかさせて喜んでしました。普段の日では、使用する事があまり出来なかったので、ある日曜日、普通に制服を着て高校に行って、こっそり部屋に忍び込んで使っていたら見回りの先生に見つかった事があります。(幸い、無罪放免してくれた)

大学に入ってコンピュータ研究会に入ると、大学の汎用コンピュータMelcomが比較的自由に使えました。当時はプログラムはパンチカードでした。端末もありまして、マシン室の端末が空いていれば(顔パスで)自由に使えました。今だとセキュリティ上考えられない事ですが、当時はおおらかでした。しかし、当初端末は1台で、パンチカードタイプライターは2台、業務が優先ですからそれほどずっと使えた訳でもありませんし、課金が有りまして、CPUタイム1秒で1円でした。でも使えるのは、主にFortoranとCobolだけでした。

大学入ってすぐの学祭の時に、誰かがTRS80を持ってきました。初めて使ったBASICですが、学祭の展示の為と言う事で、学祭中ずっとTRS80で色々なプログラミングしてました。内容は、迷路を作ったり解いたり、とか、色々なゲームを作ったりとか、今となって全く大した事ないものなのですが。

それ以後、マイコンと言われていた物が少しずつ出回る様になり、友人と秋葉原のマイコンショップによく見に行きました。AppleIIなんて、高価でしたから、憧れでした。その数年後、やっと自分のマイコンFM-8を購入しました。グリーンモニタで当初はカセットテープの記憶装置です。ラップトップパソコンと言う物の実機がまだ出ていない時代、電車の中なんかの移動中でもプログラミンが出来たら、どんなに楽しいだろうと思っていましたが、実際にそういう環境になっても、結局そんな事しなかったですね。

昔はプログラム言語の処理系も有料なのが当たり前で、フルセットのC(Whitesmith-Cなんてのが有った)とかなどは何十万円もしていたと思うのですが、最初に買ったのは整数処理しか出来ないDOH-Cと言うCのコンパイラですが、FM-8上で動かせていまして、とても楽しかったです。それから、地元に帰って、仕事の為という名目でPC-98を使う様になるのですが、、まだ先が長いのでこの位で、

今や、プログラミング開発の処理系は無料が当たり前で、何でも選び放題です。「こんな風になったら、どんなに楽しい事か、」とか思っていた事が現実になっても、実際はそれほど感慨が無い事にびっくりしますね。結局私が一番熱心にプログラミングしていたのは、informix+MSCでPC-98のMS-DOS上で色々書いていた頃でした。続けてWindows上でも色々挑戦はした気がしますが、結局はあまり書く気がせず、どれも中途半端でした。

そう言えば、UNIX上では、NetBSD+Postgres+rubyで顧客管理のシステムも書きました。ネットには繋がっていないシステムなので、旧バージョンとなっても問題が無いので、未だに使っています。本当の所は、さすがにもう改修した方が良いのでしょうが、もうやる気が無いと言うのが本当の所で、プログラミング出来る事自体を楽しみにしていた昔との差を感じます。

_ [computer] Python+win32com+Excel

それでも、必要にかられるとまた別です。プリンタ関係の事情から、事務関係の幾つかの処理を、やっと、と言うかいよいよPC-98+MS-DOS上からWindowsに移す事になりまして、Excel+pythonで少しづつやっています。とっかかりは、数年前に買った「PythonでExcl、メール、Webを自動化」と言う本です。画像の説明

openpyxlというのは、この本で知りましたし、SMTPサーバにアクセスして、セラーの温度監視のMailを送る様にしたのもこの本を参考です。具体的には検索して見つけた、コードも参考にしました。

昔から、新しい処理系でのプログラミングなんかのやり方は、「まず本を探して買って勉強して」でしたが、大分前からは「知りたい事をネットで検索して」が加わっています。

そして、最近は「Chat-GPT(AI)に教えてもらう」と方法が加わりました。一応毎月3千円弱も課金しているので、利用しないと勿体ない、と言う事もあります(他の事にはほぼ使っていません、やはり勿体ないですね)。ただ、流石に「全部書いてもらう」というのは駄目です。私は、何やってるのか分からないのが嫌いなので、たとえちゃんと動いたとしても、一応プログラムの内容は理解できないと気持ち悪いです。

Excel+pythonでは、前述のopenpyxlと言うライブラリを使うのが多い様ですが、更にシート操作を考えた場合、openpyxlでは出来ないと、どっかでのネットの解説で有ったので、此処をChat-GPTに訊いた所、VBマクロとVBスクリプトの組み合わせを提示してきました。Excel操作ならやはりVBを使う事になるかなか、と思っていましたので、その予想通りだったので、その方向で考えました。

そこで、Chat-GPTにちょいちょい質問しながら、結局VBマクロを備えた".xlsm"のエクセルファイを作り、VBスクリプトでそれを動かして作業をする。と言うプログラムを書きました。

これでやりたい事は一応解決なんですが、私はどうもVBが好きではありません。そこで、試しにChat-GPTに、これpythonで書けない?、と訪ねた所、pythonでも同じ事が出来ると返答してきました。win32comを利用したサンプルコードも書いてもらい、その後に、最近のトレンドとして、どっちが良さそう?、と聞いた所、pythonの方がお勧めとの返答です。(それなら、最初から、こちらを提示して下さいよ)画像の説明

翌日本屋さんに行ったので、パソコンのコーナーの新刊を見ると、「Python X Excel X AI 業務自動化の教科書」なる本が出ていまして、ざっと内容を見てみると、まぁ何と!、昨日Chat-GPTと色々相談して書いたプログラムのストーリーがそのまま載っています。私は昔の本好きの人なので、ほぼ分かっている様な内容かなぁ、と思いつつも、ついつい購入しました。

お盆の休みの日に、全部一通り目を通してみましたが、ほぼ最初の予想通り既知の事が殆どですが、流石にそこはページ数の有る本なので、微妙に細かい所を埋めてくれるのは、それはそれで良かったです。seleniumも一時はまってプログラム書いたし(その折は、ネットで検索した情報のみでした)、やってないのはPDFとか、グラフ書いたりとか、AI APIを使うとかですが、それらは近々には使用する予定はないです。DBとの接続は、今後有るかも知れませんので、その時は参考にさせてもらいます。総じて読みやすくて、時節に合った良い本でした。

やはり、ちょっと変な事でも色々AIに質問できるのは楽しくて、win32comは何で"32"なの?、とか、調べた所COMは古い技術で(その以前は"OLE"らしい、この名前は結構聞いた事がある)後継として出ているのが、良く名前を聞く".NET Framework"との事なので、win32comでなくて".NET Framework"で書けないかとか訊いてみたりしました。(出来る様で、サンプルコードも書いて貰ったけど、この目的にはあまりお勧めでは無い由)

こういう事なんかは、ネットで検索して調べると結構大変だから、AIがとても役に立ちますね。