CLab  はじめに
RPGプログラマーの為のC言語講座

 ちょっと前(V305以前)までは、AS/400のC言語は、特殊な開発環境というイメージで、実際にC言語を使ってアプリケーションを組もうとするケースは、ほとんどなかったと思います。開発環境および実行環境としてもOS/400のC言語環境は優れているとはいえませんでした。

 しかし、ここ最近のAS/400のバージョンアップにより、OS自体もC++で開発されていることもあり、C言語がOS/400の開発環境としては、最適となりつつあります。デバッガーの機能拡張、コンパイラーの最適化が進み、開発環境の整備とともに、実行環境自体もチューニングが進み、パフォーマンスは、バージョンアップのつど改善されています。この傾向は今後のバージョンアップによりさらに強くなるでしょう。

 OSとのインターフェースとしては、すでにILE−Cでのみサポートという分野がいくつか存在しています。socket,IFS(インテグレイティド・ファイル・システム),DSM(ダイナミック・スクリーン・マネージャー)、および、多くのシステムAPIについては、すでに、RPGのみではで使用できないか、あるいは十分に使いこなせません。

 これらのAPIの充実と、RPGの言語拡張とを比較すると、残念ながら、APIの拡充が圧倒的なスピードで進んでおり、OSの提供する新機能を使用したいと思ったら、RPGではもはや不十分でしよう。

 しかし、私はRPGのプログラマーは、皆、C言語に移行しろなんてことは、ぜんぜん言いませんし、思ってもいません。まだまだ、従来アプリケーション分野ではRPG言語が最適である場合は多いでしょうし、開発生産性に関しては、RPGの右にでる言語はないと思っています。AS/400RDB+RPG言語の組み合わせは今後も最強の開発環境の一つであることは、間違いないといえるでしょう。

 これからの、RPGプログラマーに要望されているのは、RPG言語自体のスキルアップとともに、RPGでサポートできない/しにくい分野をいかにして補完しつつ、従来RPG言語の持っていた利点、高い生産性とメンテナンスのしやすさを、維持していくかという技術/方法論の研究だと思います。

 クライアント/サーバー環境、インターネット環境、Java開発環境、および、LOTUS NOTESに代表されるグループウェア環境、これらすべての環境が、今やOS/400上でサポートされ、また、サポートされようとしています。しかし、皆さんもご存知のように、これらの環境は、OS/400以外のプラットフォームでも稼動し、むしろ、他のプラットプラットフォームの方が中心です。皆さんがRPGをすて、ゼロから他の環境のスキルをつけ、その分野のスペシャリストを目指すというのも1つの選択肢ではあるでしょう。しかし、今持っているRPGのスキルを生かすというのならば、皆さんは各環境の勉強+RPGとのインターフェースを常に念頭におくことが必要です。なぜなら、OS/400が新しい環境をサポートしたからといって、その上で作成するアプリケーションはすべてその環境で作成する必要はなく、必要な部分のみ実装し、それ以外の部分は、従来のRPG資産がそのまま生かせるからです。これは、AS/400のもつ最大の利点の一つでしょう。

 今回の講座をはじめるにあたって、一般の入門書の多くがそうであるように、C言語のすべてを、一から解説するつもりはありません。C言語の仕様自体がしりたいのであれば他の一般書をみてCの知識を得てください。

この講座の基本方針は、

C言語を使用してプログラムをかけるようになること

です。

多くの入門書のように、C言語の知識を身につけることは目的ではありません。

プログラムを作るのに必要な知識は、経験的いうと、全体の一部分であり、かなりのことがこれでできるようになるはずです。このプログラミングに必要な一部分というのは、実は皆さんが思っているよりも大変少ないというのが私の経験からの実感です。

RPGについても、全部の言語仕様を知っているプログラマーは数少ないですよね。

言語は実際に書いて動かさないとわからない

っていうのが、私の持論です。

極端な話、C言語はよく知らないけれど、とりあえず動くプログラムはかけるぞ!

っていう無茶な状態になるかもしれません。

この講座の中心は、

  • RPGプログラマーがC言語を理解する上で必要な最小限の事柄の解説(恐らく独断と偏見がいっぱい入ります、すべてを信用しないでください)
  • RPG言語とC言語の対比/連携方法
  • とりあえず動くものを作ること
で進めていきたいと思います。