投稿者 スレッド: 入門の記 その2 TBasicと出会うまで  (Read 2297 times)

sokuhan

  • 新ユーザー
  • *
  • 投稿: 19
入門の記 その2 TBasicと出会うまで
« 投稿日:: 2019年 7月 20日 , 午前 06:05:46 »
最初に購入したパソコンは、富士通(株)の8ビット・パソコン、 FM-7でした。

32KBのROM/Basicと、32KBのデータメモリ領域の、計64KBという、
今では考えられないようなささやかなシステムでしたが、
ブラウン管のモニタに表示し、ハードデスクを外付けし、プリンタに出力するという、
今と変わらない環境が基本的に構築できました。
かなり高額になったことを今でも鮮明に覚えています。

パソコンを購入すると、ドキュメントの山がついてくるというか、
ドキュメントの山を購入すると、おまけにパソコンがついてくるというか、
そのドキュメントの充実さ加減は半端ないもので、
それらをせっせと読み込んで、
パソコンのシステムやBasic言語の学習に努めたものでした。

当時は、パソコンの機種別に記事を特集した月刊雑誌がソフトバンク社から刊行され、
あるいは、技術評論社からも月刊誌 The Basic が刊行されていたりして、
素人マニアが手当たり次第に学んでいくための情報環境は、
現在よりは恵まれていたと言えるかも知れません。

私らがパソコンに熱中する時期の「前史」として、
シャープ(株)から発売されていたいわゆるプログラム電卓(商品名は忘れた)があり、
仕事では結構重宝していたのでしたが、
パソコンが使いこなせるならばその方が遙かに利用価値が高いし便宜だと、
早速にパソコンに乗り換えたのでした。
友人には、NEC(株)のPC8001を購入した者が多かったです。

Basic言語の学習では、
「行番号」の記述が不可欠で、
その行番号をつける場合、原則的に10とびにして、
(つまり、行番号10の次は20が行番号になる)
行番号10と20の行の間に一行挿入すべき場合には、
その挿入行には15を付番するといった具合で、
10とびにしておくと、後からの追加修正が容易になるというルールがありました。

言語の記述方式は、
逐次的に処理の順番に従って記述しておき、
必要な場合にはGOTO文で処理ルーチンを跳ばすというかなり恣意的な記述ができ、
いちいちサブルーチンでまとめておくという必要はないという見方もできましたが、
プログラムの記述が冗長になり、いわゆるスパゲッティ・プログラムに成り果てて、
自分でも何をしているのか分からなくなるという、
従って、余り大きなプログラムは組めないという「限界」も、私なりに実感していました。

当時、Basic言語には「方言」があるというのも困ったことでした。
元々はMS-Basicを元に、各社のパソコンに移植されたものであったはずでしたが、
各社がそれぞれ「独自性」に固執して差別化を図ったためか、
PC8001で作成されたプログラム・リストが、
FMー7ユーザーの私には、何をやっているのか直ぐには把握できないといった事態です。

結局、ハードとしてのパソコンのシェアが圧倒的に獲得されれば、
そこに搭載されている言語が実質的に「標準」になるという、
そういう力業の世界であるわけですから、
圧倒的な多数派の側に身を寄せるか、
少数異譚の困難な道に踏み出すべきか、
パソコンの普及の黎明期において、早くも選択を迫られた気分でありました。

パソコンというものは、あくまでパーソナルなものですから、
世間の多数派か少数異端派かは関係なく、
自分の趣味嗜好に従って学んでいけば良いと、
この時期で既に決め込んだものでした。

富士通(株)というのは面白い会社で、
その後、OS-9/Basic09のマシンを販売して、
これはこれで非常に高機能で可能性に富んだシステムでありましたが、
MS-DOSの時代を迎えて、屈服を余儀なくされたという結果となりました。

                        (この項は次に続きます)



sokuhan

  • 新ユーザー
  • *
  • 投稿: 19
Re:入門の記 その2 TBasicと出会うまで
« Reply #1 投稿日:: 2019年 7月 20日 , 午前 08:58:42 »
(承前) MS-DOSの時代

MS-DOSの時代に至って、MS-Basicが使えるという話がありましたが、
本格的な言語学習をするならばC言語を習得すべしという意見が大勢でありました。
いわゆる「構造化プログラミング」を学ばないといけないというわけです。
何冊も教科書やマニュアル本、解説本を買い込んで勉強しましたが、
私が作ってきたプログラム、これから作ろうとするプログラムの趣旨目的に対して、
勉強しなければならない内容の量と範囲が膨大に過ぎて、
つまり、言い替えれば、プログラミングのプロになろうとしているわけではなかったので、
結局、選択したのは Turbo Pascal でした。
標準Pascalに対するサブ・セットという位置付けでしたが、
ほとんどフル・セットに等しいと思えました。

何よりも至便であったのは、
統合開発環境が使いやすく強力な機能を持ち、
簡にして要を尽くしたマニュアルの添付で、
また、詳細な参考書も多数刊行されたのでした。

最初にきちんとデータ型や変数を定義し、
プログラムの記述も、サブ・プログラムに小分けして、
それぞれを後で一本にまとめるという手順で進めることができて、
いわゆる「構造化プログラミング」の基礎を学べたと思えました。

当時は、構造化プログラミングという技法が強く意識された時代のせいもあったのでしょうが、
参考書や解説本において、
サンプル・ルーチンを説明するにおいて、
組み込み関数の機能説明の際にも、
アルゴリズムというものを懇切に説明する努力がなされていたように思います。
どういう場合にどのような文や関数を用いなければならないかは、
そのルーチンのアルゴリズムのありようによって決まるものです。
そのアルゴリズムはどのように決まるかは、そこでのデータ構造に関係づけられる。
従って、文や関数を幾ら覚えてみても、アルゴリズムが決められないとプログラムは作れない。
こういう点をしっかり学べたことが大きい。

もっとも、アルゴリズムといっても私らが実際に活用するのは「ソート(並べ替え)」で、
サンプル・プログラムを何度も打ち込んではいろいろ試してみるという、
「学ぶということは真似ることである」をひたすら実践していたわけでした。

以後、10数年、使い続けてきたのですが、
取引先が変わり、当方の業務内容も変わってきていましたから、
そろそろ本格的にプログラムを更新(作り替え)しないといけない。
しかしながら、このF-Basicは、いつの段階か、Windows のバージョン・アップに際して、
サポートを止めてしまって、
現在のWindows のバージョンに対応すべき改訂は行っていない、
そもそも、F-Basic それ自体、既に市場から撤退している、ということを告げられた。
今や「骨董品」と化したパソコンを騙し騙し使ってきていて、
もし呼称すればプログラムも何も一切お手上げになってしまう。
こういうことが平気で(平気かどうかは知らないが)行われるとは・・・、と、
歎いていても詮無いことなので、
何とか策を講じないといけない。

最終的に出会ったのが、このTiny Basic でした。

私の、新たに仕立て上げようとするプログラムというのは、
データを入力して、
そのデータを加工して、
書式データとしてデータの「並び」を作る。
そのデータの「並び」を、
ワープロ・ソフトの一太郎で作成した定型書式の「差し込み枠」に入れていって、
最終的にデータ項目枠にデータが埋まった定型書式としてプリント・アウトする、というもので、
それ以上のことを企んでいるわけではない。
もちろん、もっとさまざまな処理が実現可能な言語処理系であることは確かなようですから、
その後のことはその後に考えることとして、
取り敢えずは、現状の打開を考えるわけです。

takeuchi

  • 管理人
  • *****
  • 投稿: 96
Re:入門の記 その2 TBasicと出会うまで
« Reply #2 投稿日:: 2019年 7月 20日 , 午後 06:49:08 »
> 最初に購入したパソコンは、富士通(株)の8ビット・パソコン、 FM-7でした。

懐かしいお話どうもありがとうございました。

>シャープ(株)から発売されていたいわゆるプログラム電卓(商品名は忘れた)があり、
>仕事では結構重宝していたのでしたが、

私も シャープのプログラム電卓(恐らくCOMPET 364P) を使った思い出があります。
アセンブラのようなプログラムでした。

> 結局、選択したのは Turbo Pascal でした。

 私も Turbo Pascal(確か4.0が始めだったような気がします。) は愛用していましたというか,
旧版のtbasic (PC98MSDOS用)はTurbo Pascal で書きました。
当時のMSBASICのコンパイラ版に比べて高速コンパイルができるのと,安価であったのが魅力でした。

 現在のtbasic はTurbo Pascal の後継版である Delphi で書いていますから,私とTurbo Pascal
との関わりは随分と長いものになります。私はプログラミングの専門家ではなく,趣味でプログラミング
を行っていますが,昔は,Turbo Pascal からDelphi への進化についていくことが私のプログラミングの
勉強でした。Turbo Pascalには分厚い解説本が付属していました。それを読み,プログラムを書くことが,
構造化プログラミング,オブジェクトプログラミング,Windowsプログラミングの勉強になりました,

 現在はネットから得られる文献を読むことが,プログラミングの勉強の主なもですが,それに伴い,
C#でプログラムを書くことが多くなりました。勿論,tbasicは現在でも改良を続けているので,Delphi
との関わりは続いています。

 勿論,現在でも最も日常的に行っているプログラミングはtbasicです。小さなプログラムや簡単なツール
用のプログラムは tbasicで書いています。

>私の、新たに仕立て上げようとするプログラムというのは、
>データを入力して、
>そのデータを加工して、
>書式データとしてデータの「並び」を作る。

 tbasic は文字・数値データ処理ツールとしてはかなりの能力を持っていますので,恐らくこのような目的なら
ご活用できると思います。
(現在では,大きなデータ入力はファイルからが主なものと思います。しかし手元に多くの生データがあり,
それをスキャナー等で読めないものであれば,地道に手入力になるでしょう。それが)
もし,定型的なデータであれば,tbasic のコントロール画面を入力フォームを作るのも良いかもしれません。

 しばらく前,約1000件,1件40項目のアンケート結果があり,それを集計する仕事を頼まれたことが
ありました。集計自体は大したことではありませんが,入力と出力が問題でした。カードリーダーでの読み取りが
できないものでしたので,手入力しかできません。

 考えた結果,tbasicで入力フォームを作り,それで手入力しました。エディターで手入力より遥かに楽でした。
1件入力ごとにデータチェックルーチンも組み込むことで,後でのデータ修正も殆ど無くできました。
集計結果はcsvで出力し,それをExcelのマクロを使って,表とグラフ化したものを Wordへ貼り付けて,報告書
にしました。

 入力フォームはExcelで作ることもできますが,tbasicでもほぼ同じものが作れます。tbasicで全てを行うことは
無理ですが,得意な部分では活用することができるでしょう。慣れれば,結構使えるのではと思います。

 tbasicがお役に立てれば良いのですが。

sokuhan

  • 新ユーザー
  • *
  • 投稿: 19
Re:入門の記 その2 TBasicと出会うまで
« Reply #3 投稿日:: 2019年 7月 21日 , 午前 10:10:19 »
Oh!,Delphi!。

Turbo Pascal のプログラムはそのままDelphiで走らせることができるという話がありました。
本当かどうか確認しないまま終わってしまいましたが、
MS-DOSでの、キャラクタ・ベースでの80*20(25)行の画面と、
Windowsでの画面表示方法の違いを、
良く理解して消化するということが出来なかったという事情もあって、
結局は、早々に「挫折」してしまっていました。
「先取の気概」を喪っていたとは思いませんでしたが、
やはり、従前よりの姿勢から抜け出せなかったという守旧性に取り憑かれたということでしょうか。
今から考えると、つまらないことに躓いてしまっていました。

近年は、Java、Python、VisualBasic、Ruby・・・といった言語の解説本を読みあさったり、
C言語に先祖帰りをしてみようかと、いろいろ「摘み食い」をしていたのですが、
いざ、自分でプログラムを作成しようと踏み切ろうとすると、
どれだけの作業量になるんだ?と、
すっかり「へたって」しまっていました。

やっかいなことに、
TBasicに出会って、やっとここが安住の地になろうかと、なって欲しいとの期待が高まったのですが、
この時点で、なお、かつての自分の「守旧性」が頭を持ち上げたのでした。

「Basicプログラミングといえば、Locate文だろうが!
 Locate文なくして、確実なデータ入力ができるんかい?
 これでは使えそうもないやんかぁ!」

MS-DOS上でのプログラミング技法と、Windos上でのそれと、
違ってきていて当然とは考えることができなかったのでした。

自分のこの「守旧性」を如何に「克服」できたかは、
後日に反省を込めて述べていきたいとは思いますが、
過去を通じて修得し得た技能にトコトンこだわって、あるいはささやかな「成功体験」に固執して、
新たな世界になかなか踏み出せないというのは職人暮らしの習性(悪癖?)とも言えますが、
私もそのうちの一人でしかなかったということであります。

プログラミングというのは、
単に技術・技能のテクニックに終始するものではなくて、
実は、その根底には「思想問題」が横たわっているということなのでしょう。
プログラミング言語の体系というのは、やはり、1個の思想体系でもあると見ないといけない。
自分を省みれば、ある種の「革命体験」をくぐったと、言えそうです。
(ちょっと、大仰に過ぎる言い方で笑われそうです)

takeuchi

  • 管理人
  • *****
  • 投稿: 96
Re:入門の記 その2 TBasicと出会うまで
« Reply #4 投稿日:: 2019年 7月 21日 , 午後 10:36:42 »
>プログラミングというのは、
>単に技術・技能のテクニックに終始するものではなくて、
>実は、その根底には「思想問題」が横たわっているということなのでしょう。
>プログラミング言語の体系というのは、やはり、1個の思想体系でもあると見ないといけない。

 確かにその通りです。そして,その思想を受け入れなければ,活用はできません。

 私のプログラミング経験からすれば,新しい環境の利点を活用するためには,
その環境での流儀を,受け入れなければならないという感じです。まさに享受です。

 tbasicでもMSDOS版からWindows版への移行では,Delphi の流儀を学ぶことで,捨てるものと
新しく獲得するものの選択の葛藤がありました。その際の取捨選択の規準は,Windows での普通の
使い方に合わせるということでした。Windows に従うということです。
 行番号を使わないことや,実行画面の出力画面化,入力のダイアログボックス化,等々です。
その結果として,Locate の削除もその一つです。

>Turbo Pascal のプログラムはそのままDelphiで走らせることができるという話がありました。
>本当かどうか確認しないまま終わってしまいましたが、

 この話は,半分だけ本当と言えます。確かに,現在の tbasic のソースコードの中には Turbo Pascal
でのコードがそのまま残っているものもかなりあります。何割かはそうかもしれません。しかし,
Windows版を作るためには半分以上のコードは新たに書き直す必要があり,かなりの時間が掛かりました。
また,Windows版でも,Vistaになったとき,画面表示が大きく変わったため,それの対応にも
大きなコード変更が必要でした。
 また,同じDelphi でもかなりの頻度でバージョンアップが行われますが,その際,必ず,幾らかの
コード変更が必要になります。つまり,コンパイルするとエラーになります。ユニコード対応に
なったときも,大きな書き直しが必要でした。また,今回 Windows 10対応版の作成中にも,
Delphi のバージョンアップがありましたが,その時も,コードの変更が必要でした。

 つまり,同じ機能を実現しようとする場合,「OSが変わる,それがバージョンアップされる,
コンパイラが変わる,それがバージョンアップされる。」その時々に,それに対応した修正の必要が
生じます。その場合,時には,どうしても維持が不可能な機能もあり,その場合は残念ですが,
その機能は削除します。1.2から1.5への変更でもいくつかの機能が削除されました。

葛藤がありながらも
「新しい環境の利点を活用するためには,その環境での流儀を受け入れなければならない」
です。

 tbasic はそのような状況の中でも,なるべく従来の機能を保ちながら,新しい環境,最新OS上での
動作を目指しています。