C言語で挫折した私がAS400のRPGで続けられた理由

私は新卒で入社した当時、C言語の研修に行きました。しかし正直に言うと、周りについていけませんでした。プログラミングそのものに向いていないのではないか、と不安になったこともあります。

その後、社内配属で初めてAS400とRPGに出会いました。RPGの研修を受けたときに、「これなら自分でもやっていける」と感じました。そこから25年以上、流通業界の販売管理システムでAS400の開発・保守を続けています。

C言語で苦労した理由

C言語は自由度が高く、メモリやポインタなど、初心者には難しい概念が多い言語です。当時の私は、周りの理解の速さについていけず、自信をなくしました。

もちろんC言語が悪いわけではありません。ただ、私にとっては最初の入口として難しく感じました。

RPGは業務処理の流れが見えやすかった

RPGに触れたとき、C言語とは違う感覚がありました。販売管理や在庫管理のような業務処理では、ファイルを読み、条件を判断し、結果を書き込むという流れが見えやすかったからです。

  • どのファイルを読んでいるか見えやすい
  • 業務データの流れを追いやすい
  • 帳票や更新処理との関係がわかりやすい
  • 保守作業で見るポイントが比較的はっきりしている

AS400は仕事のコンピューターとして扱いやすい

私はAS400を、仕事で使うコンピューターとしては扱いやすいと感じています。派手さはありませんが、基幹業務を安定して動かすための仕組みがまとまっています。

もちろん、文字コードや他システム連携など面倒なところもあります。それでも、RPGやCL、ジョブログ、基本コマンドを覚えていくと、現場で何が起きているかを追えるようになります。

向き不向きはあるが、未経験でもチャンスはある

AS400は新しく入ってくる人が少ない分野です。若い人や未経験者が基本を覚えるだけでも、現場では重宝される可能性があります。

ただし、AS400だけを学べば一生安心というわけではありません。いつなくなるかは誰にもわからないので、他の言語や周辺技術も並行して学ぶ方が良いと思います。

よくある質問

C言語が苦手でもRPGは覚えられますか?

覚えられる可能性はあります。私自身、C言語研修では苦労しましたが、RPGでは業務処理の流れが見えやすく、続けることができました。

RPGは簡単な言語ですか?

簡単と言い切るつもりはありません。古い書き方や固定形式には慣れが必要です。ただ、販売管理や物流のような業務処理を追うには、考え方が合う人も多いと思います。

AS400だけ勉強すればよいですか?

AS400はチャンスのある分野ですが、他の言語やデータベース、Web系の知識も並行して学ぶのがおすすめです。AS400と周辺技術の両方がわかる人は強いです。

このサイトの運営方針と運営者の経験は、このサイトについて にまとめています。

AS400 / IBM i の学習・保守で迷ったら

RPG、CL、ジョブログ、文字コード、エラー調査などでつまずいた時は、記事内の確認ポイントを見ながら、状況を整理してみてください。

お問い合わせ

RPGで続けられた理由をもう少し具体的に言うと

C言語の研修で苦労した時に一番つらかったのは、ポインタやメモリの考え方だけではなく、「自分が何を作っているのか」を実務の画面としてイメージしにくかったことです。文法を覚える前に、頭の中で処理の流れが散らかってしまう感覚がありました。

一方でAS400のRPGは、帳票、ファイル、キー、レコード、更新処理など、販売管理システムの仕事と結びつけて理解しやすいところがありました。たとえば「受注データを読んで、得意先や商品を確認して、在庫や出荷につなげる」という流れを、業務の言葉とプログラムの処理で重ねて見られます。そこが自分には合っていました。

現場で感じたRPGの学びやすさ

  • ファイルを読んで処理する流れが、業務処理と結びつきやすい
  • 既存ソースを追いながら、保守で必要な読み方を覚えやすい
  • 画面、帳票、バッチ処理など、現場の作業とプログラムの役割がつながりやすい
  • ジョブログやメッセージを見ながら、原因を順番に追う習慣が身につく

もちろん、RPGなら誰でも簡単という意味ではありません。ライブラリ、物理ファイル、論理ファイル、CL、ジョブログ、バッチ処理など、覚えることは多いです。ただ、業務システムを直すという目的がはっきりしているので、学んだことが現場の作業に直結しやすいと感じています。

C言語でつまずいた点と、RPGで理解しやすかった点

私の場合、C言語が難しく感じた理由は「文法が難しい」だけではありませんでした。ポインタやメモリの考え方に加えて、研修課題の処理が実際の業務と結びつきにくく、何をどう直せば仕事につながるのかをイメージしにくかったことが大きかったです。

RPGは逆に、販売管理システムの処理と結びつけて考えやすい言語でした。受注、出荷、在庫、売上、請求のような業務データを、どのファイルから読み、どの条件で判断し、どこへ更新するのかを追いやすかったからです。

当時つまずいた点C言語で感じたことRPGで理解しやすかったこと
処理の目的研修課題としては理解しても、実務の画面や帳票と結びつけにくかった販売管理のファイル更新、帳票、バッチ処理と結びつけて考えやすかった
データの扱いポインタやメモリの考え方で混乱しやすかった物理ファイル、論理ファイル、レコードの流れとして追いやすかった
保守時の見方どこから読めばよいか当時は迷いやすかったF仕様書、使用ファイル、更新処理、ジョブログの順に確認しやすかった
現場との距離文法学習と業務知識が自分の中で分かれがちだった業務を覚えるほどソースの意味も見えやすくなった

販売管理システムでRPGが役に立った具体例

私が長く担当してきたのは、卸売業やアパレル業の販売管理システムです。現場では、RPGは一部の特殊な処理だけでなく、基幹業務のかなり広い範囲で使われます。

  • 受注データを読み、得意先・商品・数量・納期を確認する処理
  • 在庫引当、出荷指示、物流連携につながる更新処理
  • 売上計上、請求、締め処理など、後戻りしにくいバッチ処理
  • 店舗連携や外部システム連携のための中間ファイル作成

こういう処理では、文法だけを知っていても足りません。たとえば売上計上の処理を直すなら、どのタイミングで在庫が減り、どの段階で請求対象になり、どこからやり直せるのかを知らないと危ないです。RPGが読めることに加えて、業務の順番を理解していることが保守の品質を左右します。

RPG保守で最初に見るところ

RPGの修正依頼を受けた時、私はまずF仕様書や使用ファイルを見ます。ただし、そこだけ見れば終わりではありません。結局は、プログラム全体を見て、どの入力を使い、どの条件で分岐し、どのファイルを更新しているのかを確認します。

確認ポイント見る理由
F仕様書・使用ファイルどの物理ファイル、論理ファイル、画面、帳票に関係するかを把握するため
更新処理販売管理ではデータ更新の影響が大きく、後続処理にもつながるため
配列定義件数が増えた時に配列上限を超えてアベンドすることがあるため
呼び出し元CLライブラリリスト、パラメータ、実行順、後続処理を確認するため
ジョブログ実際にどこで失敗したか、周辺メッセージを含めて判断するため

特に配列は、RPG保守で見落とすと危ないポイントです。作成当初は十分だった配列数でも、年月が経ってデータ件数が増えると、ある日突然上限を超えてプログラムがアベンドすることがあります。こういう事故は「今まで動いていたから大丈夫」と思っている時ほど起きやすいです。

初心者が最初に意識するとよいこと

AS400のRPGを学ぶなら、文法だけを追うよりも、まず「このプログラムはどのファイルを読んで、何を更新して、どの業務に影響するのか」を見る方が現場では役に立ちます。プログラム単体ではなく、業務の流れの中で読むことが大事です。

私自身も、技術だけを追いかけていたら長く続かなかったと思います。販売管理の現場で、受注、出荷、在庫、売上、請求の流れを少しずつ覚えたからこそ、RPGのソースを読んだ時に「ここは業務上こういう意味だな」と考えられるようになりました。

次に読むなら、AS400初心者向け学習ロードマップAS400のRPG保守で最初に見るポイントAS400のジョブログ確認手順を順番に読むと、RPGを現場でどう扱うかがつかみやすいです。

RPGは古いだけでなく、業務を読み解く入口になります

AS400のRPGは、一般的なプログラミング言語と比べると独特です。ただし、販売管理、在庫、請求、出荷、EDIの処理が長年積み重なっているため、RPGを読めるようになると業務そのものを理解しやすくなります。ソースが読みづらい場合でも、ジョブログ、ファイル定義、呼び出し関係を合わせて見ると道筋が見えます。