C400

149. C言語ができる会社の製品を選ぶこと

ソフトウェア製品の開発も日本国内でも
多くなっているが製品の選定のポイントのひとつに
開発元の会社がC言語に精通していることが大切である。

■ スプール解析には C言語が必要

_

特にスプールや通信、印刷などを処理するソフトウェア製品では
必須である。
なぜならスフールや通信、印刷ではストリーム・ファイルと呼ばれる
UNIX互換のファイル、つまりWindowsでもよく使われている
ストリーム・ファイルを基本的に扱うことになるので
RPGでは開発できないからである。

■ RPGでスプール解析は無理

RPGはご存知のとおりデータ・ベース(DB2)のような
固定長のレコードのファイルを扱うことには適しているが
固定長を持たないストリーム・ファイルを扱うことは
できない。
_

RPGでスプールを扱っているとしたらスプール・ファイイルを
直接読むことはできていないので内部解析はできない。
SCSスブール内のAPW罫線の解析はできない。
RPGでスプールを解析するのはIBMのユーティリティに
頼っている製品であり技術的にはユーザーと変わりはない。
RPGでもAPIを駆使して頑張ればストリーム・ファイルの解析は
できないことはないがポインタ解析が必要になるので
結局 C言語の知識が必要になる。
それなら C言語を使ったほうが早いので結局RPGでは
スプールの直接解析はできないということになる。

■ Javaでは無理

_

オープン系というとRPGの開発者はJavaを想像するかも知れないが
Javaはポインタを扱えないのでRPGよりさらに無理である。
さらにJavaはインタプリタ言語であるので実行時に翻訳が走るので
パフォーマンが必要なソフトウェア製品の開発には向いていない。

■ APIの解析力が必要

製品を開発するにはAPI (=Application Programimg Interface)という
IBM提供のプログラムを使うことが多いのだが
最新のIBM APIのマニュアルはすべて英文だけであり
API自身が C言語での利用を目的として作られているために
RPGからでは扱いにくいというか扱えない場合が多い。
特にAPIのバラメータは C言語で使うポインタである場合が
多い。

■ 高度なC言語の知識が必要

_

しかも IBM の高度なAPIは 感なるC言語ではなく
C言語の中でも構造体のキャストという高度な利用方法が
必要になるので中途半端なC言語の知識では
高度にAPIを扱うことはできない。
IBMでは C言語のヘッダー・ファイルにキャストに必要なテンプレートを
API用に用意しているのはAPIのユーザーは高度なC言語のプログラマーであることを
前提としているようでもちろんこのことはIBMは何も説明していない。
C言語の構造体が理解できるプログラマーが見ればわかるからである。

■ 英語の読解力も必須

IBM API, Microsoft API, LINE API, Watson API, …

のように最新の技術はほとんど英文でしか公開されていない。
もちろんGoogle翻訳機能を使えば多少の日本語訳はしてくれるものの
やはり開発となると英語の原文を読む機会が多くなるので
英文のマニュアルくらいは苦痛なく読める能力は必要である。
 
しかし逆に言えば英語さえわかれば多くのITの仕様はインターネットで
公開されているので韓国のLINEのプロトコルでも
IBM Watson のプロトコルでも自由に誰でもがそれに対応するプログラムを
開発できる良い世の中になってきているのである。

_

このようにソフトウェア製品の開発はかなり高度な技術を
必要とする反面ユーザーの要望は高い。
そこで最近では脱落してソフトウェア製品の販売を途中で辞めてしまう
会社も少なくない。
最近では大規模な広告をしていたPDF化のソフト会社が 2社ほど市場から
撤退している。

ユーザーも開発会社の能力や将来を見極めて選定が必要である。