ピッシーのメモ帳

気になった情報の保管庫

知識は使わないと思った以上に忘れる

ここ最近PowerShellから離れていたが、先日以前作成したPowerShellスクリプトを修正する機会があった。そこでコードをいろいろと眺めていたが、「これどういう意味だったっけ…」と考える箇所が何個かあった。少し調べてみると、全然大したことのない内容だった。

私は大学時代、C言語やVBといったプログラミング言語を勉強した。今でもExcel VBAを使っているのでVBの文法はある程度分かるが、さすがにC言語の文法はすぐには出てこない。恥ずかしい話だが、「scanf関数ってどう書くんだっけ…?」となってしまった。とはいえ、一度勉強したからかネットで調べてみると「そういえばそういう書き方だったな」と思い出すことはできる。

最近では、IBM i(AS/400)*1を触る関係でRPGというプログラミング言語を使う機会が増えている。RPGには大きく分けてRPGⅢとRPGⅣ(ILE-RPG)の2種類があり、私が最初に触ったのはRPGⅢの方。この言語はコードが固定フォーマットになっており、決められた桁に命令や値を入れるようになっている。例えばこんな感じ。

      FCITYPF  UF  E                    DISK                    
      C                     DO   *HIVAL                         
    C                     READ RCITYPF                  10  
    C           *IN10     IFEQ *ON                          
      C                     LEAVE                               
      C                     ENDIF                               
      C           TCODE     IFEQ 'B1'                         
      C                     MOVEL'京都'      TFSK                 
      C                     UPDATRCITYPF                        
      C                     ENDIF                               
    C                     ENDDO                                    
    C                     MOVEL*ON       *INLR              
      C                     RETRN  

このように、C言語やPythonといった有名なプログラミング言語とは全くコードの書き方が異なる。*2ちなみに、このコードは以前の記事で紹介したものをRPGⅢで書きなおしたもの。

gd-pishi.hatenablog.com

正直この言語今の仕事でしか使わないと思うので、しばらく離れると完全に忘れてしまいそう。

それにしても、しばらく使っていなかったとはいえPowerShellの初歩的な内容を忘れてしまっていたのは悲しかった。簡単な内容でも、しばらく使わないと思った以上に忘れてしまうものなんだなと思った。

*1:IBMが開発した業務用コンピュータのこと。オフィスコンピュータ(オフコン)と呼ばれることもある。正しくはコンピュータ本体がPowerサーバー、OSがIBM i だが、私の体感ではどちらも「AS/400」と呼ぶ人が多い。

*2:固定フォーマット以外にも、RPGでは「標識」というブール型変数のようなものを多用する。先ほどのコードだと、「10」と「LR」が標識。