オフコンユーザが使用するオープンシステムのプログラミング言語は?

COBOLやRPG等の開発言語を使ってオフコンや汎用機のシステムの開発・メンテナンスを行っているが、オープンシステムに移行した場合、どの開発言語を使用するか迷ってはいませんか。ここでは、オフコンや汎用機のユーザーがオープンシステムに移行した時に使用すべきプログラミング言語(開発言語)をご提案します。(ここでは、Windows系のOSを前提としています)(2024.04.08更新)
オフコンや汎用機のシステムからオープンシステムへの移行が進まない要因のひとつは、プログラミング言語(開発言語)の選択問題ではないでしょうか。
新しい言語を覚えて現在と同じように使いこなすまでには、時間がかかるでしょう。また、現在使用している開発言語以上に工数が必要になる言語やロジックを記述することが難しい開発言語では、使用することに踏み切ることは難しいでしょう。
今回おすすめする言語は、Visual Basic .NET になります。Visual Basic .NET を含むソフトウェアは、統合開発環境 Microsoft Visual Studio で、最新版は、Microsoft Visual Studio 2022 になります。
なお、統合開発環境 Microsoft Visual Studio では、Visual C++、Visual C#、Visual BASIC などの言語が使用できます。また、Microsoft .NET Framework 対応言語でもあります。
(Visual Basic .NET は、VB.NET と略されることが多いため、ここからは、VB.NET と記述します)
さて、 VB.NET は、Visual C++、Visual C#、JAVA などと比較すると、習得しやすく簡単と言われています。しかし、VB.NET は、 Visual C++、Visual C# と同じように、Microsoft .NET Framework 配下で動作し、実行する速度も、他の言語とかわらないとも言われています。
また、VB.NET では、Windows アプリケーション、Web アプリケーション、モバイル アプリケーションなどを開発できる機能があります。
VB.NET の特徴を下記の点について、簡単にご説明します。
変数
手続部分
画面作成
帳票作成
ファイル
制御言語
画面の動作
アプリケーション
変数
変数の宣言は、どこでも記述できますが、COBOLと同じように、手続部分より前に記述するようにしておくとわかりやすくなります。
変数の型は、COBOLでは、数値・英数字項目になりますが、VB.NET では、数値・文字(列)になります。Dim を書いて定義します。
数値 変数AA Dim AA AS Integer
文字列 変数BB Dim BB AS String
変数などに値をセットする場合は、COBOLでは、
MOVE A TO B (変数Aを変数Bにセットする)
のように記述しますが、VB.NET では、
B = A (変数Aを変数Bにセットする)
という記述になります。
手続部分
COBOLのPROCEDURE DIVISION にあたる部分の書き方を簡単にご説明します。
条件判断
If文やSelect文があります。
If 条件 Then
条件を満たした処理 をここに書きます
Else
条件を満たさない処理 をここに書きます
End If
Select Case 式
Case 比較式1
式 = 比較式1 の条件を満たした処理 をここに書きます
Case 比較式2
式 = 比較式2 の条件を満たした処理 をここに書きます
・・・・・・・・・・・・・・・・・・・・
End Select
配列
COBOLのOCCURSにあたります。
Dim QQ(2) As Integer
QQ(0) = 100
QQ(1) = 200
QQ(2) = 300
変数Qの最初に100をセットし、変数Qの2番目に200をセット、変数Qの3番目に300をセット
繰り返し
Dim K(3) As Integer
For K = 0 To 3
MsgBox(“K=” & K )
Next
これを実行すると、
K = 0
K = 1
K = 2
K = 3
が表示されます。ほかに、DO~LOOP もあります。(MsgBox は、括弧の中を表示します)
このような命令等を使用して、COBOLとほぼ同じように、自由にロジックを構築できます。
画面作成
デスクトップアプリケーションの場合は、VB.NET のユーティリティ(オフコンや汎用機と同様)を使用して、画面を作成します。画面上でテキストボックス(画面の入力・出力項目)やボタンなどを設定することができます。
帳票作成
デスクトップアプリケーションの場合は、レポーティングのミドルウェアを使用して、作成します。(オフコンや汎用機と同様)あるいは、直接、出力する項目の印字位置を指定して出力項目を出力することもできます。
ファイル
テキストファイルやCSVファイル、EXCELなどを取り扱うことが可能です。
また、データベースのソフトウェア(SQL Server など)を使用することができます。データベースのソフトウェアの画面上で、データベースの項目名、タイプ・桁数などを定義し作成します。(オフコンや汎用機と同様)アプリケーションから、データベース上に作成したテーブルの検索・修正・削除が可能です。
制御言語
制御する言語等はありませんので、アプリケーションの動きを制御する場合は、バッチファイルを使用してアプリケーションの起動を制御するか、制御用のアプリケーションを作成します。
画面の動作
デスクトップアプリケーションで、画面を扱う場合は、画面の項目毎にデータの処理を行います。画面の項目移動はENTERキーの押下で行います。また、ファンクションキーの使用も可能です。
画面を使用するアプリケーションは、イベントが発生した場合(画面の項目でENTERキーやファンクションキーの押下・ボタンの押下など)の処理を記述する必要があります。
アプリケーション
構造化・共通化
COBOL では構造化されたアプリケーションを作成していましたが、VB.NET でもアプリケーションを構造化することができます。
VB.NET では、イベント(キー入力やENETERキー押下などの事象)が発生した時にアプリケーションが動作します。たとえば、画面のテキストボックスにカーソルがある場合にENETERキーが押下された、あるいは画面のボタンが押下された場合などです。
このような共通で使用するイベントに対応する記述を個々で記述することは、メンテナンスの面から見ても望ましくありません。できるだけ、アプリケーションを共通化・構造化して作成するとよいでしょう。
まとめ
オープンシステムで使用する開発言語として、Visual Basic .NET を簡単にご紹介しました。オープンシステムで使用するプログラミング言語(開発言語)の第一歩として試してみてはどうでしょうか。
オフコン・汎用機をCOBOLでサポートしていた方には、とくに取得し易い言語ではないでしょうか。
※Windows は米国 Microsoft Corporation の米国およびその他の国における登録商標です。
※SQL Server は米国 Microsoft Corporation の米国およびその他の国における登録商標です。
※Microsoft .NET Frameworkは米国 Microsoft Corporation の米国およびその他の国における登録商標です。