宇宙・生命・日本 1000年後のあなたに語りかけたい

巨大ブラックホールの衝突が新宇宙を形成⇒循環宇宙論、有機物質から人間への進化メカニズム(循環論理の評価)⇒戦略的進化論

最近のパソコンソフト(プログラム)状況2

2010年11月13日 17時31分01秒 | 思考空間

 JAVAやC++のパクリ(良いとこ取り)とも言われているC#なる言語をダウンロードし、試している。表記方法はJAVAやJAVA SCRIPTと似ている。開くと、いきなり白板のようなFORMが出てくるのはVBAの仕掛けとイメージがダブる。ある本の紹介では、C#は何でも作れる言語なんだそうで、新しいもの好きな私は何ができるのかを知りたくなった。ツールボックスからカレンダーをFORM1にドラッグするといきなりカレンダーができたのには驚いた。グラフも引っ張れた。新しい概念の言語を印象付ける。

 広島市内のフタバ図書・メガ店ではC#の本が少ないので、土曜の休日時間を利用して、天満屋の7階に行ってみた。(天満屋7,8階の丸善ほかの共同本屋は東京駅八重洲ブックセンターより専門書は多いような気がする) 何と、C#はC++/Cとは別の棚でかつ、独立棚でなく何となくまだ市民権を得ていないのかという印象。何冊かぱらぱらとめくってみたが、自分のニーズを実現するに、最適かどうかは判断つかず、目的と異なるAjax関連の本を購入した。(2千円以上購入しないと駐車場が2時間無料にならない)

 いまどき、C#でもJAVAでも何でも 「〇△ 入門」で検索すると結構な解説ホームページが作成されており、C#の場合も例に漏れずものすごい力作が並んでいる。従って、本を購入する必要がないとも思われるが、やはり、無料情報と有料情報との間には、総合的に判断してちょっとした差を感じる。しかし、本は経済性から最低限度に自粛し(VBAは20冊ぐらい買ってしまった:全部は読めないのに!反省)、加えて利便性から殆どはネット上で調べている。

 Ajax(エイジャックス:)はブラウザのユーザーインターフェイスとして非同期でサーバーをやり取りできるなど、速い・高機能ということらしい。本格的なページを作成する場合にはお世話になりそう。それにしても、DOMだとかXMLだとか頭は拒否反応を起こしそうな混乱を生じている。

 私の場合は、大昔のFORTLANからいきなり浦島太郎よろしくVBAに飛んで、エキーラなどの特殊言語をやり、そしてJAVASCRIPTをやり始めたので、CやC++、あるいはJAVAなどを使いこなしている専門家とは世界が異なる。(FORTLAN当時からCは機械語に近いとの印象があった) 数値計算や分析が主だったので、言語は何でも良かったし、使いやすさ、信頼性、スピードを求めている。

 VBAはより一般ユーザー向けという印象が有ると思われるが、使いこなしてみると、ただものじゃない。パソコンの高速化により、インタープリターのスピードのネックが解消され、使い込んでみるとデバッグの有利さなどが感じられる。兎に角、初期のBASICを知っているだけに、FORTLANを遥かに上回る言語を誰もが使えることには毎度、毎度感激の至りだ。

 例えば、一つの例を挙げると、前回紹介した select case で最後のケースに case else を入れておくと論理エラーなどがあると結構、ここに引っ掛かる。この case else に stop を入れると、エラーがある場合は当然ここで止まっている。この状態で、そのステージの変数の上にマウスで矢印を持ってゆくと、全変数の中身が見える。意外にご存知ない方が多い。(サブルーチンなどを呼んだ場合、先のステージでは見えない。サブルーチンでSTOPさせた場合は呼んだサブルーチンだけでなく元のメインなどでも変数の中身が見える)そこで、エラーを修正し、再度スタートすると何事もなかったように走り出す。

 1年に2回ぐらい会うC++ユーザーがVBAではステートメントでデーター列を簡易に入力できないと言うので、エクセルシートに書いたら良いよと伝えておいた。エクセルシートは無限に使える。ただし、複数のシートに書き込み、読むのには、私の場合、当初は苦労した。彼は元々プロだが、今はPHPで携帯からPCを制御し、データベースの中身を携帯で参照しようとトライしているらしい。ちょっとついてゆけない。

 JAVA(当初、JAVASCRIPTとの差が分からなかった。サンマイクロとネットスケープが提携していたので同じJAVAになったらしい)に取り組むのをやめて、JAVASCRIPTでゲームソフト(本に有った)の機能向上、論理的なバグの修復などをやってみたが何しろHTMLの知識が無いのが災いして頓珍漢なことになったりした。FLASHを使わなくても、結構な動画はできる。(FLASHは簡単にきめ細かく動画環境を作り上げられる) 変数に日本語を使用できるし、演算に個数++;ーーP などC++、JAVAの便利なツールが使える。関数を呼ぶのも簡便。

 余計なことだけど、C++の名称は++が使えるから?と、かのC++ユーザーに聞いたら返事がなかったが、私の推定通りだった。

 JAVASCRIPTにはGOTO文が無いのと(for ループ、switchなど を抜ける breakは有る)、多次元配列(疑似多次元)の定義が複雑なのがちょっと困ったが(JAVAやC#などでは解決している)、信頼できる言語ではある。サブルーチンを使えない代わりに、関数が代用し、結果の複数取出しにはGLOBAL変数が助けてくれる。ライブラリーはネット上に有るんだけど、JAVASCRIPTは他のスクリプトが干渉・関連するので簡単には適用できない場合が多い。

 強力なエディターが無いのもつらい。ホームページビルダー14で追いかけるが、エラー場所を示さないし、何が問題なのかが分からない場合が多い。ソフト開発の経験を活かして自分がエディター代わり。通はネットから入手した複数のエディターを使い分けているらしい。私は対策として、alertでどんどん表示させた 。VBAのMSGBOX に比べてすごく簡便だし、下手にprint とすると動画環境を壊してしまう。大文字と小文字を判別してくるのは気が付かない時は困った。

 それにしても、HTMLをベースにJAVASCRIPT、FLASH、PHPをミックスモードで使うというのも、実用的、現実的な使い方である。FLASHをHTMLに埋め込む方法が購入した本では理解できなかったが、悩むことは無かった。ホームページビルダーがFLASH(JAVASCRIPTからの発展)を読み込んで、HTMLに入れてくれた。(FLASHではパブリッシュでHTMLモードも吐き出せるようだ) 本当はJAVASCRIPTとC#がミックスモード可能であって欲しかった。であれば、目標を持ってC#を勉強できる。

 十分とは言えないJAVASCRIPTながら、やりたかった現在のニーズには合ってており、しばらくはおつきあい願うことになる。

 前の記事に関して774さんからたくさんご意見をいただいた。その後の検討で、修正しなければならないのは、JAVAやC++でもステートメントを1行づつ、ステップ実行できるという点だ。FORTLANでも区域を限定して、メモリーを吐き出すトレースという機能があったが、JAVAやC++ではインクリメントのように1行づつ確認できるらしい。VBAは元々インクリメントで1行づつ翻訳して走っており、エラーでの対応は早いが、コンパイル系はスピードが速く必要に応じて行単位でのチェックができるので甲乙つけ難い。

 ただし、デバッグの容易性という意味では圧倒的にVBAに軍配が上がる。前述した「変数の中身が全部覗ける点」に加えて、例えば検索と置換の機能(エクセルVBA)だ。長いプログラムになると、変数などの管理は容易ではない。エラーが出ると複数の人間が必死で1行づつ追いかけることになるが、VBAでは一人でも変数を検索し、必要に応じて部分的あるいは全部を瞬時に置換ができる。これは、ある部分で変数の使い方を担保できるという、ものすごい機能でご存じない方が多かったが是非ご活用いただきたい。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする