筆者は日経ソフトウエアでプログラミングに関する記事の編集/執筆をしている。言語やプラットフォームを限定しない総合誌なので,面白そうな話題なら何でも取り上げたいと考えている。もっとも,なるべくやさしく書くことを旨としているので,安定したニーズがあるのはやはりプログラミング言語の入門記事である。中でもC,Javaの二つが両巨頭だ。

 初心者が学ぶべき言語はどれかという問題には様々な意見があるだろうが,これら二つの言語を学びたいと考える人が多いことは実感できる。連載記事はコンスタントに人気があるし,特集のテーマとしてもそれぞれ単体で取り上げられるだけのニーズがある。

 IT Proの読者に向けてもあまり宣伝臭くならないと思うので安心して書くが,この二つの言語の連載記事は,直近の号(2005年7月号)で新連載を開始した。筆者はCのほうの編集を担当している。連載開始に当たってはいろいろと頭の中でどのような内容にするかを考える。そこでつくづく思うのは,OSがCで書かれている限りプログラミングの根本もCなのだということである。

.cfgファイルの作り方が分からない

 この種の記事の常として,第1回の中身はコンパイル環境のセットアップが中心である。さし当たり統合開発環境は利用せず,汎用のテキスト・エディタでソースを書き,コマンド・プロンプトからコンパイラを呼び出して利用する。プログラミングをきっちり学んだことのある人なら誰でも通ったと思われる道だ。パソコンはどんどん安く速くなっているし,今は高機能なコンパイラが無償で使えるのでプログラミングを始めるための敷居は低くなっているはずだが,実際のところはそうでもない。

 Cの連載ではボーランドが無償配布しているBorland C++ Compiler(BCC)を使って解説している。このコンパイラ・キットのインストーラは,コンパイラ本体,ヘッダー・ファイル,ライブラリ・ファイルなどを所定のディレクトリに展開してくれるが,そのままではコマンド・ラインでの操作が面倒なので,各種パスを設定する。具体的にはPath環境変数の設定と「bcc32.cfgというテキスト・ファイルを作り,そこにたった2行,デフォルトのインクルード・パスとライブラリ・パスを指定するコンパイル・オプションを書く」という作業である。実はこれがくせ者である。

 BCCを使った入門記事を載せると,必ずと言っていいほどこのファイルの作り方の問い合わせが来る。筆者もこの編集部に来てから,覚えているだけで5~6回はこの問い合わせに答えた。最近は用心深くなってきて,どういう操作をすれば間違いなくそれを作れるか,なるべく丁寧に誌面で伝えるようにしている。ほかにも,カレント・ディレクトリの概念,最低限のコマンド群の知識,そしてWindowsでファイルの拡張子をすべて表示する設定,間違って“hello.c.txt”や“hello.java.txt”を作ってしまわないための注意も一緒に盛り込む。

「Cがわかればすべてが分かる」

 設定ファイルなど,配ってしまうほうが手っ取り早いのは確かだ。それでもいちいち手間ひまをかけてもらうのは,今のコンピュータを乗りこなすにはそうした経験が絶対に必要だと思うからだ。買ってでも生産性を確保したい状況なら統合環境なりなんなりを使って,知らなくてもいい話にしてしまえば済む話である。しかし,いつまでもそうしたやっかいごとに向き合わなくて済むほどプログラミング環境は進化していない。

 連載の執筆をお願いしているピーデーの川俣晶氏は,生産性の向上は「様々な微妙な問題をプログラマから巧妙に隠すテクニック」の上に成り立っていると指摘している。その問題は時にプログラマの前に顔を出すので,対処するには何をどうやって隠しているかを知る必要がある。そのような「隠す技術」の裏側を知るには,Cが打って付けの言語である。

 「Cがわかればすべてがわかる」――これは1年ほどまえに日経ソフトウエアでCを特集したときのタイトルである。Cは誕生から30年以上がたち,大きなプログラムを書くための言語ではなくなったかもしれない。しかし,いつかソフトウエア技術が進化して「微妙な問題」が解決の日を見るまで「知っておいた方がよい言語」であり続けることは間違いない。その時,コンピュータやソフトウエアがどんな姿をしているのかは分からないが。

(斉藤 国博=日経ソフトウエア)