RPG(プログラミング言語)はどうして自分には読みづらいのか

最近考えたことの棚卸し。

PRGで書かれたプログラムのソースのやりたいことがさっぱり分からない。 コンピューターの性能がまだ低い時代の言語だから、人間にもわかりやすい表現で書くことが難しかった、と思ってるけど正しいんだろうか。

仮説なんだけど、コンピュータのリソースが貴重だったから専用の紙にプログラムを書いて、それからコンピュータに入力していたのでは。 そのせいで、文法がものすごく硬い。

調べたら、「自由形式」というソースの記述方法を使っていないらしい。 どうなるかというと、命令文がソースコードの特定の桁位置から始まる必要がある。

f:id:hiroga_cc:20170908070928p:plain

(wikipediaより)

最近のプログラミング言語がいかに恵まれているかもわかりつつある。 こんな仕様がない(または、あるけれど私の見るソースでは使われていないか、気づいていない)

  • 器用なIF文がない。 switch文とか三項演算子とかない。よってIF文がものすごく続く。

  • 便利なループ処理がない。 doループしか見た覚えがない。for,whileがない。mapとか当然ない。

  • エラーの例外処理。 try - catch- finallyとかない。

  • インデントが自由に使えない。 IF文とかFOR文の中身にインデントがかかってないのを想像してみて。

  • 戻り値を変数に格納しないで使ってるとこ見たことない。 if (getHoge()){ ~処理~ }; みたいな書き方はせず、毎回変数に格納する。あっちこっちの変数を経由するので何を指してるのか分からなくなる。

  • オブジェクト(最新の言語仕様にはあるらしい) 全部プリミティブ型。timestampを呼び出して年月を取得するみたいなことはできない。共通クラスとかない。

  • 標準ライブラリがない。 カレンダー型とかtimestamp型とかそういう便利なものを見た覚えがない(そもそもimportがないと思う)

  • ORMはおろか、SQLがない。 何を言ってるのか分からないと思うけど、DBMSがやっていることと同じ処理をやっている。 テーブルではなく、ファイルを1行づつ読んでる。

こうした理由から、処理が何を言っているのかさっぱり分からない。 いまのところのベストは設計書に補足を書きながら読み進めること。なんか面白い経験してるよね…