プログラミング言語C はやっぱり大切

プログラミング言語C はやっぱり大切。ただし、実際のアプリケーション開発ができるようになるには、Visual C++ や Objective-C についても知識も必要で、覚えることがたくさんありそうです。

仕事で使っていたせいか、BASICやLispに比べて難しいという印象を個人的には持っていないのだが、一般的には難しいというイメージがあるようだ。確かに、配列やポインタの概念を理解するのには時間がかかるかもしれないし、ポインタの誤操作によるメモリ破壊はしょっちゅうおきるので、そういった面では難しいといえば難しい。

それで、最近Windowsアプリを C/C++ で開発する機会があったのだが、Javaに慣れてしまったので文字列操作が面倒であったり、コレクションフレームワークがないため自作するか既存ライブラリを利用するか選択が必要となって、結構プログラミングの本質的な部分以外で面倒な思いをした。それで、C++を使おうかと思うのだが、こちらもいろいろ種類があって複雑なことになっていて困惑しました。

まず、文字列操作がASCIIだけでいくか、マルチバイトでいくか、ユニコードでいくかによって、プログラミングが変わってくるのが大変です。スタンダードな教科書にのっている iostream を使えばいいのか、Win32 APIを使えばいいのか、どうなのか、といったあたりから疑問。C, C++, Visual C++, C++/CLI 全体をよく知った上で何を採用するか決める必要がありそうです。

全部C++/CLIだけで実装なら話は単純なのですが、あるデバイスドライバを利用する必要があって、それはCのライブラリがあり、エラーメッセージをやりとりするためには char を使います。しかし、Direct X も利用する必要があって、そちらはWin32 API を利用しますから単純に char というわけにもいきません。必要な部分だけラッパクラスを用意して対応するという方法でもいいのですが、それほど時間をかけて開発をしているわけにもいきません。

利用用途は限定されているので、必要とされている性能を出すことを優先して実装しましたが、これからの開発者に必要な知識は多くて、専門知識を持つ人は限定されていくのかなぁ、と感じました。プログラミング言語C の流れを持つプログラミング言語を利用できるようになるには、C について理解した上で、他の言語も使えるようになる必要がありそうです。C++/CLI を 使えるようになろうとしたとき、C を知らなくても済むならいいのですが、実際の現場では知らないとプログラミングができない気がするのですね。

そういえば Objective-C もMacOS X 関係の開発では必要だようなぁ、と思って、Wikipediaで調べてみました。Objective-C – Wikipediaとかに書いてあります。Microsoft Visual C++ – Wikipediaとかもあったので読むと、全体像の把握がなんとなくできます。利用できるライブラリや機能について、これはどこの範囲に含まれるのか意識しながら開発すれば、なんてことはないのですが、それなりに気を使う必要がありそうです。

同じタグの記事: C
同じタグの記事: C/C++
同じタグの記事: Objective-C
同じカテゴリの記事: Program