Help us understand the problem. What is going on with this article?

Zoweと戯れる - (4) VSCode Extension for Zowe

More than 1 year has passed since last update.

はじめに

ZoweデスクトップやCLIを使ってみた記事を書いてきましたが、Zoweは"オープンソースフレームワーク"である、と謳っているように、デスクトップ、CLIそのものがZoweの本質ではありません。
Zoweについては、デジタル・トランスフォーメーションとかAPIエコノミーとかエコシステムとか、なんだかはやりの言葉を使って色々語られていますが(そういうフワっとした実体が掴みにくい言葉はあまり好きではない...)、要は、メインフレーム上でもオープンソースを積極的に活用していきましょう、そのためのベースとなる環境を"Zowe"として提供しますよ、と。Zoweが提供しているものをベースに、メインフレーム上で新たな仕組みをどんどん作って、みんなで使いやすい環境を整えていきましょう、と、そういうことだと思います。

このことを非常に分かりやすく実装して見せてくれているのが、"VSCode Extension for Zowe"だと思います。これを使ってみたときに、「そうか、こういうことか」と、Zoweの可能性を垣間見た気がしました。

ということで、VSCode Extension for Zoweを使ってみた時のログです。

参考:
VSCode Extension for Zowe
Demo動画

関連記事

Zoweと戯れる - (1) インストール
Zoweと戯れる - (2) Zoweデスクトップ
Zoweと戯れる - (3) Zowe CLI
Zoweと戯れる - (4) VSCode Extension for Zowe

前置き

VSCode

VSCodeというのは、Visual Studio Codeの略で、Microsoftが開発したオープンソースのソースコードエディタです。Windows, Linux, MacOSなどをサポートし、各種言語のシンタックスハイライトやコードアシスト機能が利用できます。
Eclipseよりも軽量でサクサク動くイメージがあり、ショートカットなどのカスタマイズもやりやすいように思います。拡張機能(Extension)も豊富に提供されています。
VSCodeをベースにZoweを使った拡張機能として、VSCode Extension for Zoweというのが提供されている訳です。

ちなみに、人気のエディターのランキングなんかを見るとVSCodeは結構上位に入っており、最近特に勢いがあるようです。
参考:
Ranking the Top 5 Code Editors in 2019
What are the best programming text editors?
16 Best Code Editors for Windows and Mac (2019)
The 11 Best Code Editors for 2019

VSCode Extension for Zoweの前提

当然ですがVSCodeをインストールする必要があります。
また、Zowe CLIのインストール、構成を行っておく必要があります。

必須ではありませんが、ここでは、追加で以下のCOBOL Extensionというのを入れてみました。
image.png
これは、COBOLだけでなく、JCLやPL/Iなどの構文解析をしてくれるものです。

使用イメージ

VSCode上に、VSCode Extension for Zoweを追加する部分はガイドに従えばよく、他のExtensionと同様にサクッとできるので割愛。

画面構成

image.png

Zowe CLIを構成していると、MVSデータセットやSpoolの情報なんかが見れたりしたと思いますが、それをVSCodeに組み込んで、VSCodeからこんな感じで使えるようになります。
左側のメニューから、PDSメンバーを選択してソース開いて編集したり、JCLサブミットして結果を見たりすることができます。

一連の操作例

CICS-COBOLのソースを編集して、コンパイル/リンクするJCL流して、結果を確認する、という操作をVSCode上でやってみます。

COBOLソース編集

MVSデータセットから編集対象のCOBOLソース(PDSメンバー)を選択します。
ここでは、CICSTS55.@DBDC.PGMSOR(WTOPGM)という単純なCICS-COBOLのソースを選択して開いてみます。
image.png

COBOLのソースなので、COBOLとして認識させるために、右下のPlain Textと書かれているところをクリックすると言語の候補が出るので、そこからCOBOLを選択します。
image.png

そうすると、ソースがCOBOLであると認識され、構文の解釈が行われて、コードアシスト機能などが利用できます。
image.png

変更が済んだら保存して終了します。
image.png

コンパイル/リンク用JCL編集

次に、上のCICS-COBOLソースを、トランスレーション、コンパイル、リンクするJCLを開きます。
こちらは言語としてJCLを選択します。
image.png

必要な修正を加えたら保存して終了します。

コンパイル/リンク実施(JCLサブミット)

上で修正したJCLをサブミットします。
左側のメニューで目的のJCLを右クリックし、Submit Jobを選択します。
image.png

実行されたJOBのJOBIDが右下にポップアップで表示されます。
image.png

結果確認

一定時間経過するとメッセージは消えてしまいますが、右下のベルのマークをクリックするとメッセージが表示されます。
image.png

JOBID部分がリンクになっているのでクリックすると、左側のメニューのSPOOL FILESにJOBLOGのDDリストが表示されます。そこから見たいDD名を選択して、JOBLOGの結果を確認できます。
image.png

コンパイルエラーなどがあった場合は、ソース修正、コンパイルし直し、というのを繰り返すことになります。

おわりに

コード修正、コンパイル/リンク実施という一連の流れを、VSCode上で割とスムーズに行えそうなことが確認できました。こういうのがオープン系で使われているツールの上に乗っかっていて、フリーでサクッと使えるというのが素晴らしいですね!(ホスト側のセットアップは別にして...)
データセット検索するところとかは若干モッサリなのですが、まぁそこは最初だけなのであまり気になりません。ホスト系のツールにしては珍しくちょっと感動しました。

競合する所では、Eclipseベースのz/OS Explorer(無償)、IBM Developer for z Systems(有償) 辺りになるかと思います。
z/OS ExplorerはMVS系の操作については、ほぼVSCode Extensionとできることは似通っていると思います。ただ、現状だと、z系の各種ツールのプラグインがEclipseベースで提供されているものがあるので(z/OS ConnectのAPI Toolkitや、CICS Explorerなど)、そういうもののプラットフォームとしてEclipseは一日の長があります。ただ、この辺ももしかすると、今後はZoweベースに向かっていく可能性はあるでしょう。
それから位置づけとしてはIDz(IBM Developer for z Systems)は"統合開発環境"、VSCodeは"テキストエディター"ということになりますし、IDzは有償版だけあって機能が豊富に提供されています。コードアシストもCOBOLだけではなくEXEC CICSやEXEC SQLなんかもサポートされたり、COPY句で取り込んでいる情報も見られたり、デバッグツールと連携できたりします。特に大規模開発になった場合、RTC(Rational Team Concert)やUrbanCode Deployなどのツールと連携しやすいといったところは重要な違いになってくるかもしれません。ただこの辺りも将来的にはZoweベースで機能が提供されていくかもしれません。
Zoweで一番大きなネックになりそうなのは、ホスト側のメンテナンスコストやH/Wリソースへの負荷(CPU, Memory, Disk)といった所が挙げられるでしょうか。特にUSS自体ほとんど利用実績が無いという所も多そうなので、そこの設計からきちんとやらなければならないというのは結構大きなハードルになるのではないかと。

まとめるとこんな感じでしょうか。

VSCode (Zowe) z/OS Explorer (Eclipse) IDz (Eclipse) PCOM
ライセンス 無償 無償 有償 有償
操作感 コマンド/ショートカットを駆使した操作が可能 ある程度マウス操作が必要 ある程度マウス操作が必要 新人:なんですかこれ? / ベテラン:慣れれば早いよ
機能
z系Plugin/他ツール連携 中?
ホスト側負荷

※あくまで個人の見解ですので念のため。

tomotagwork
*おことわり* このサイトの掲載内容は私自身の見解であり、必ずしも所属会社の立場、戦略、意見を代表するものではありません。 記事は執筆時点の情報を元に書いているため、必ずしも最新情報であるとはかぎりません。 記事の内容の正確性には責任を負いません。自己責任で実行してください。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away