どんなコンパイラを使うべきか?


 最近、開発言語として何を勉強するべきかという質問をよく受けたりすることが あります。このご質問に対する回答は、その前提により大きく変わります。 「SDKを使ってカスタマイズ機能を手っ取り早く開発したい」というケースと、 「プログラミング言語をしっかり勉強したい」というケースが考えられますが、 ここでは、前者であることを前提に書かせていただきたいと思います。

 こういう話は、結局慣れの問題が左右されるので偏見もあるのですが、解説書などが 充実していて、一番無難なのは、まずはC言語だろうと 思います。C言語は、その昔、高級アセンブラ (マシン言語にもっとも近い命令を処理する言語)と呼ばれ、ビットのハンドリングなど 他の高級言語では処理できないレベルまでも守備範囲にしていました。そもそもが UNIX(OS)の開発の途上で、そのスタッフらによって開発された言語で、Windowsも 含め多くのOSや開発言語自体も実はC言語で記述されていたりするわけです。
 たとえ世の中の標準OSがLinuxに移行していったとしてもC言語は無くならないで しょう。Linuxもその多くはCで書かれています。ちなみにTRYCUTの原型も当初は初期 Linux(Slackware)上のCで開発を始めました。現TRYCUT2000も、ほんの一部だけが C++の記述スタイルで、ほとんどがC言語で書かれています。本SDKで開発されるとこ ろのものでは、C++(と言ってもCと同じようなものでCの拡張版)ですら必須では ありません。もちろんC++の知識があればベターではありますが...(C++言語が 順調に普及してきた理由は、C言語の拡張版だったからです。)

 開発環境の.NET,ActiveX、また言語には、他にも JAVAやJ++,C#など、次から次へと次世代だというコンセプトを前面に出し世の中に アピールしてくるのですが、これらは全てMicrosoftやSunの覇権争いから始まった ようなテクノロジーであり、その多くはコンセプト倒れや、ひとりよがりな技術で あったことにより静かに消えて行くケースが多いのです。JAVA(Sun)は例外かもしれませ んが、JAVA潰しのJ++(Microsoft)などはそうです。このような技術の氾濫により、 ソフトウェア開発者が無駄な労力と投資をさせられてしまうことがよくあります。

 一番無難な言語という意味では、CやC++に変わる言語は、今後もなかなか出てくる ものではないと思われます。例えば、いくらマイクロソフトが新しい言語(C#)を 推奨していても、マイクロソフト自身が新しいプラットフォーム(最近では64bit版Windows)を用意するたびに、デバイスドライバー開発者向けに公開する言語(DDKコン パイラ)や、アプリケーション開発者向けに公開する言語(SDKコンパイラ)は、やっ ぱりC(C++)言語ですから...雑誌などでは新規性がないために取り上げられる ことも推奨されることも少ないのですが、逆にそういうものほど現実では主流だったり します。

 またプログラミング言語を研究するという意味では、 Delphi(PASCAL)もお薦めです。たぶんCやC++を熟知していれば非常に良くできた言語と 感じることでしょう。無償で提供されているDelphi 6 Personalの環境などは、ほんとに素晴らしいものです。あくまでも余裕があれば という位置付けですが。

 これからプログラミング言語を勉強してという方にはぜひ回り道をしていただきた くないということで...

 「...しかし...C言語とか、ちんぷんかんぷんだから...」というような 方もいらっしゃるかと思いますが、あまり真っ向から言語の勉強などするのはやめて、 雛型やサンプル例などを見て、一部改変などして行けばさほど難しくないと感じてい ただけるものと思います。というより、簡単に理解できるような良いサンプルの 公開にも努めます。何か実現したいことがあれば、ぜひ一度トライしてみて下さい。

SDKトップページへ
トップページへ