VC++ について

Microsoft のVC++(VisualC++) を使ったプログラミングに関するメモです。頭の中を整理するつもりで 書いてゆきたいと思います。
更新日 2014-07-29

プログラミングは難しいか?

初心者にとっての壁

プログラマーというと初心者にはいかにもカッコイイ響きがあります。しかし、実際の仕事は机にかじり付いて 画面と睨めっこ。頭は使っているけれど、それ以上に大多数を占めるであろう単調なルーティンワーク。そして 習得に伴う難問奇問との格闘。単調で地味でストレスフルです。
まずこういった期待と現実とのギャップは大きな壁となると思われます。

インターネットの普及

インターネットが普及する前は、身近にプログラマーがいなければ本に頼るしかなく、また該当する問題の解決法が 見当たらないとそこで立ち往生を続け、ついには投げ出す事が常でした。最近はネットで検索すれば大抵の初歩的問題は数分で解決 できてしまいます。インターネットの恩恵をもっとも受けているのは間違いなくプログラマーでしょう。
ただしBBS や他人に聞く前に、まず徹底的に自分で調べる事は最低限のルールです。それにたぶん、自分のためにも なります。

高水準言語のパラドックス

C++ は高水準言語のはずですが、Java やVB のせいで今や低水準(つまりハードウェアに近いという意味で)言語といった認識です。 つまりC++ でプログラムを組むには、メモリやWin32API に関する知識が必須であり、それでいてクラスというオブジェクト指向な 認識も求められるという事です。しかもこれらはVC++ を最低限理解するレベルの話です。
この中水準とも言える幅の広さゆえにC++ が非常に難解になってしまっています。

Windows というOS

Windows はもともとMS-DOS を起点としています。MS-DOS の当時からC++ はありましたが、圧倒的にアセンブラによるプログラミングが 主流でした。アセンブラはCPU やメモリを直接叩くプログラミングです。ヘタするとMS-DOS すら蚊帳の外でした。
Windows は違います。Windows というOS はアプリケーション毎にパソコンと同じ動作をする仮想PCをエミュレートし、そこでソフトを 実行しています。アセンブラで作ったプログラムの多くがこのエミュレーターの不具合により動作しませんでした。プログラマはいよいよ VC++ を購入してウィンドウズプログラミングを学ばなければならなくなりました。
VC++ はMicrosoft 社製なので、ver1.0 の時から現行と変わらない優れたIDE(統合開発環境) を兼ね備えていました。Microsoft は商売の仕方を 良く知っています。OS ベンダーならではの手際の良さでしょう。またVer5 か6 の頃に実装されたインテリシンク(入力支援機能)は、大変便利で 一度覚えたら手放せない機能です。
しかしWindows アプリを作るにはOSに対して一定の手続きが求められ、イベントドリブンなど新しいプログラムデザインを強制されます。 これによりプログラミングの敷居は大きく上がりました。

C++ 以外を見る

C++ の敷居の高さを実感すると、VB(VisualBasic)、Flash (もある意味プログラミングの範疇) は全く次元の違うプログラミング言語となって います。それゆえに、先にこれらを習得しているとC++ を学ぶ気力が削がれてしまうかもしれません。

Visual 開発

VisualBasic などはRAD ツールといわれるビジュアル操作でインターフェイスをデザインできます。VC++ でもダイアログはそうです。しかし内部処理はやはり コードに頼らざるえません。ビジュアルデザインの方向性でもっとも進んでいるのはFlash アーキテクチャーでしょう。ビジュアルデザインとコーディングが 非常にシームレスに行えて、比較的高いパフォーマンスも得られています。ただし限界はどうしても低くなります。
やはりプログラミングはコーディングを伴わざるえません。