毎日ブログを書くと宣言しておいて、2日目から続かないとは
自分でも思っていませんでした。

言い訳を言わせてもらうと、昼寝とか酒を飲んだりするといった
大事な用事があったので、ついつい後回しになってしまったのでした。

昼寝はいいですね。このごろ休みの日には昼寝をしています。
私は昔は昼寝ができなかったのですが、寄る年波といったところで
しょうか。

あくまでも私の場合ですが、清酒は腸によいので、夕方から
飲み始めます。二合も飲まないですけどね。でつまみを食べて
ご飯を食べたら、なぜか寝てしまいます。早い時間なのに。

このゴールデンウイークはほんと何にもしないということで
十分満喫しています。そう言いつつもちょこちょこプログラムを
直していたりして。でも本気というわけじゃないので、
気が向いて、ちょっと不便があったので、という感じです。

ストラウストラップの『プログラミング言語C++ 第4版』を読んで
いるのですが、連休中はほとんど進んでいません。

ただC++の進歩はすごいですね。とうとう変数の型宣言をしなくても、
というか’auto’という型で宣言するだけでよいようです。

もともとオブジェクトには型はあるけど、変数に型はいらない、という
意見もあったわけで、Lispなんかそうですよね、とうとうC++まで
という感じもします。

そしてSTL。コンテナと呼ばれていますが、型から独立した
データ構造がサポートされています。これはC++の大きなアドバンテージ
という気がします。CではなくてC++を採用する大きな動機となる
でしょう。

私は昔作ったライブラリで配列ではなくリストを使いました。
配列は最大値が決まってしまうのがおもしろくないのです。
まあ最大値を超えそうになったらrealloc()でもすればよいの
かもしれませんが。

STLでは配列のように使えるVectorというデータ構造をサポートして
います。配列のようにアクセスが速く、要素数は増えてもよい。
これだったら使っていたと思います。リストはアクセスが遅いのが
難点なんですよね。まあ少量のデータなら違いはほとんどないと
思います。リストにはリストのよさがありますが、ストラウストラップ
先生も書いているように、データ構造の最初の選択肢としては
Vectorだと思います。

なんかC++の話になってしまいました。じゃあもう少し続けます。

これだけデータ構造がサポートされていると、C++でプロトタイピング
ができるんじゃないかと思います。もちろんGUIについては
それぞれのライブラリに依るので、そこは何とも言えないのですが、
ロジック部分なんかは最初C++でプロトタイピングを書いてそのまま
製品版に採用ということもありうるのではないかと思います。
ストラウストラップ先生はそこは言及していませんので、あくまでも
私の感触です。

そしてC++はオブジェクト指向言語という範疇はすでに脱却している
ように思うのです。どちらかというとオブジェクト指向は添えもの
的な感じがします。もちろん重要な機能ではあります。STLだって
オブジェクト指向の言語でなければ使うことができません。

オブジェクト指向の言語は使うだけなら結構やさしいと思うのです。
オブジェクトを決めたらそれに備わっているメソッドを呼び出す
だけですからね。今はメソッドを補完してくれたりするので、
さらに楽です。初心者でもすぐ慣れると思います。

ただ自分でクラスを作るのは結構難しいので、そこは使うのに
十分慣れてから、ということになるでしょう。まあ構造体が
わかっていれば少しは楽ですが、でもやっぱり自分以外に
使ってもらえるもの、使いやすいものを作るのにはそれなりには
難しいです。ただクラスを作れないとSTLも宝の持ち腐れに
なってしまうので、若干無理してでも挑戦してみないと
いけないでしょうね。

あとC++はソフトウエア製品の品質を上げるのに嬉しい機能を
どんどん追加しています。これはストラウストラップ先生の
設計方針でもあります。例外が起きてもちゃんとデストラクタが
呼ばれるというスマートポインタとか嬉しいですよね。
メモリリークを心配しなくて済むのですから。

とは言え、ストラウストラップ先生はなるべくポインタを
使わないようにして、STLのコンテナの使用を勧めています。

あと標準のstring型ってreturnで返せるようになっています。
しかも効率はそれほど悪くないそうです。Cプログラマから
見ればなにそれって感じの便利機能ですよね。便利とまでは
いかなくてもメモリ管理について悩まなくて済みます。
文字列操作をサブルーチンに分割するのにも楽になりますね。

まあいろいろありますが本当に勉強になります。勉強というか
自分の考えていたことが合っているのか間違っているのかに
ついてアドバイスをもらえるような気がします。

ということでとりとめもない記事となりました。
こんなような雑談みたいな記事を今日はあと2つ投稿する
つもりです。

できるのか?