・VC++のプログラムはどうしてこんなにわかりにくいのか(`Д´) ムキー! ― 2007/08/31 11:59
酢こんぶはWindowsで動くファイル整理のためのツールをいくつか作っている。プログラミング言語として使っているのはVisualBasic6.0(VB6)だ。最初にVB6でプログラムを作ったとき、あまりにも簡単にGUIのツールを作成できることに感激したことを良く覚えている。
しかし長い間使っているといろいろと不満も出てくるもので、その不満の最たるものは、一つのコマンドで長い時間がかかるものはその実行中ツールが無反応になってしまうことだ。
例えば1GBのファイルをコピーするにはHDD同士でも5分以上の時間がかかるが、この作業をしている間ウィンドウの書き換えはされないし、コピー中止をしようとしても中止ボタンを押すこともできない。中止したいなら右上の終了ボタンで強制終了するしか方法はない。これがどうにも美しくなくて、なんとかならないかといろいろやってみたのだが現時点で解決に至っていない。
で、VCでツールを作ればこんなことはないだろうと考えてVC++の勉強を始めてみたのだが、これがVBとは比べ物にならないわかりにくさだ。
VBでのプログラミングは、
(1)フレームにコントロールを配置する。
(2)コントロールの挙動を制御するコードを書く。
で基本的に終わりなのだが、VC++でのプログラミングは、
(a)フレームにコントロールを配置する。
(b)ヘッダファイルにクラスやら関数やら変数やらを定義する。
(c)cppファイルにコントロールの挙動を制御するコードを書く。
こうしてみるとあまり変わらないように見えるのだが、(b)の部分でどこに何を書けばいいのかがものすごくわかりにくい。そもそも変数定義と制御コードが別々の場所にあるというのがVBとは全く違う。これがC++の仕様なら仕方ないのだろうが、全体を把握していなくても少しずつ理解してなんとかツールを作れるVBに比べ、まず全体を把握してからでないと全く手もつけられないという感じだ。
さらに先のことを考えて憂鬱になるのがデバッグがしにくそうなこと。VC++のアプリ作成の基本は、アプリケーションウィザードで大枠を作っておいてそれに肉付けをしていくということらしいのだが、このスケルトンの中には自分が書いてないコードが結構含まれる。かなり慣れてからならともかく自分の書いてもいないコードを含んだプログラムのデバッグは簡単にできるものなのだろうか?作ってすぐなら内容を覚えてもいようが、半年経ってから理解できるのだろうか?自分が書いたコードならまだいいけど、他人が書いたコードを読まなくちゃいけないときはどうすればいいのだろうか?
ほんとにちょっとかじっただけなので慣れてくればなんでもないことなのかもしれないが、VBのときのようにはいかないなというのが、酢こんぶの正直な感想。
というわけでしばらくはVB6でいいかなあ。WIN32APIを使えば無反応になるのが回避できるかなあ。うーん、、、、。
------------------------------------------
このブログの本店「木全屋かるた堂」もよろしくです。
・ファーストガンダムのかるた売ってます。
・ファイル整理に便利な自作ツール置いてます。
・写真(コスプレ、ポートレート、動物)公開してます。
------------------------------------------
しかし長い間使っているといろいろと不満も出てくるもので、その不満の最たるものは、一つのコマンドで長い時間がかかるものはその実行中ツールが無反応になってしまうことだ。
例えば1GBのファイルをコピーするにはHDD同士でも5分以上の時間がかかるが、この作業をしている間ウィンドウの書き換えはされないし、コピー中止をしようとしても中止ボタンを押すこともできない。中止したいなら右上の終了ボタンで強制終了するしか方法はない。これがどうにも美しくなくて、なんとかならないかといろいろやってみたのだが現時点で解決に至っていない。
で、VCでツールを作ればこんなことはないだろうと考えてVC++の勉強を始めてみたのだが、これがVBとは比べ物にならないわかりにくさだ。
VBでのプログラミングは、
(1)フレームにコントロールを配置する。
(2)コントロールの挙動を制御するコードを書く。
で基本的に終わりなのだが、VC++でのプログラミングは、
(a)フレームにコントロールを配置する。
(b)ヘッダファイルにクラスやら関数やら変数やらを定義する。
(c)cppファイルにコントロールの挙動を制御するコードを書く。
こうしてみるとあまり変わらないように見えるのだが、(b)の部分でどこに何を書けばいいのかがものすごくわかりにくい。そもそも変数定義と制御コードが別々の場所にあるというのがVBとは全く違う。これがC++の仕様なら仕方ないのだろうが、全体を把握していなくても少しずつ理解してなんとかツールを作れるVBに比べ、まず全体を把握してからでないと全く手もつけられないという感じだ。
さらに先のことを考えて憂鬱になるのがデバッグがしにくそうなこと。VC++のアプリ作成の基本は、アプリケーションウィザードで大枠を作っておいてそれに肉付けをしていくということらしいのだが、このスケルトンの中には自分が書いてないコードが結構含まれる。かなり慣れてからならともかく自分の書いてもいないコードを含んだプログラムのデバッグは簡単にできるものなのだろうか?作ってすぐなら内容を覚えてもいようが、半年経ってから理解できるのだろうか?自分が書いたコードならまだいいけど、他人が書いたコードを読まなくちゃいけないときはどうすればいいのだろうか?
ほんとにちょっとかじっただけなので慣れてくればなんでもないことなのかもしれないが、VBのときのようにはいかないなというのが、酢こんぶの正直な感想。
というわけでしばらくはVB6でいいかなあ。WIN32APIを使えば無反応になるのが回避できるかなあ。うーん、、、、。
このブログの本店「木全屋かるた堂」もよろしくです。
・ファーストガンダムのかるた売ってます。
・ファイル整理に便利な自作ツール置いてます。
・写真(コスプレ、ポートレート、動物)公開してます。
------------------------------------------
最近のコメント