NEWS
IBM i アプリの第二の柱 OSS IBM i アプリの第二の柱 OSS
2023.04.25

【OSS】第14回「IBM i で Node.jsを活用する」

【OSS】第14回「IBM i で Node.jsを活用する」
IBM i で Node.jsを活用する

今回はNode.jsに関する対談の抄訳をお届けします。Node.jsは2009年に初版がリリースされた長い歴史を持つJavaScriptのサーバサイド実行環境で、IBMは最近このプロモーションに力を入れています。IBM iでも利用可能なこのオープンソースは、習得が比較的容易でプログラムが短期間で作成できる、Webアプリ作成に適した言語です。Node.jsをRPGやSQLで書かれた基幹業務プログラムと連携させることで、IBM i上の既存アプリケーションを活用したWebアプリが容易に作成できます。(編集部)

2023年1月4日 チャーリー・グアリーノ

IBM のアドバイザリーソフトウェア開発者であるマーク・アイリッシュが、Node.js の使用を開始する方法と、JavaScript ランタイムが RPG および SQL とうまく連携する方法について説明します。

チャーリー・グアリーノ:ようこそTechTalk SMBの別エディションへ。本日のゲストはマーク・アイリッシュさんです。彼の肩書は文字通りこの30分程で変わり、IBMのアドバイザリーソフトウェア開発者になったばかりです。マーク、今日ここに来てくれてとても嬉しいです。

マーク・アイリッシュ:お招きいただき、ありがとうございます。

チャーリー:私の見るところ、今回の昇進はあなたがIBMだけでなくコミュニティー全体に貢献していることをIBMが真に評価している証と言えます。

マーク:ええ、これはIBMがプラットフォーム自体に投資したことの表れでもありますよね? IBM はこれらのリソースをIBM iの領域、特にIBM iのオープンソースに投入する必要があると言っています。

チャーリー:そうですね。これは明らかに私達のプラットフォームで最も急速に成長している分野の1つです。あなたがここにいる真の理由は、今高い関心が寄せられているNode.jsにあります。Node.jsはかなり前からありましたが、私の見るところ多くの人は実際にはそれほど頻繁にそれに触れていません。そのため、Node.jsを取り巻く多くの疑問が残っており、あなたがその空白を埋める助けをしてくれると考えています。

Node.jsとは何か?

チャーリー:私の最初の質問は、Node.jsとは正確には何かということです。

マーク:Node.js はJavaScript実行環境に過ぎません。それはコンピュータ上で実行されます。このポッドキャストを聞いているほとんどの人にとって、Node.jsはIBM iシステムであり、基本的にJavaScriptコードを実行できるようにしているだけです。そしてそのJavaScriptコードは、ファイルシステムとの対話、システムデバイスへのI/O呼び出しの作成、データベースとの対話、ネットワークリクエストの作成などコンピュータを操作できます。長い間、JavaScriptはある種ブラウザーの世界だけに分離されていましたよね?しかし、誰かが素晴らしいアイデアを思いつきました。「同じ言語を使用して、PHPやJava Webサーバーが実行するような作業、またはCやC++コードのような作業を実行できるとしたらどうだろう?」とね。つまり、それは長い間存在していた同じ言語ですが、今や新しい環境で様々な種類の作業を行っています。

チャーリー:つまり、Node.jsとJavaScriptの違いはサーバサイド対ブラウザーサイドの違いだということでしょうか?

マーク:それはとても公正な定義です。Node.jsはJavaScriptサービスだとよく言われます。80%~90%の時間、人々はNode.jsをWeb サービスとして使用し、ある種のWeb サービスやREST APIなどのバックエンドにコンテンツを提供しています。

チャーリー:では、Node.jsとJavaScriptを実際に区別できるのでしょうか?

マーク:Node.jsは、単にJavaScriptが実行されている環境の一種です。ですから、Web サイトにアクセスし、ブラウザーで何らかの JavaScriptコードを実行している場合、恐らくGoogleのV8 JavaScriptエンジンを使用しています。Node.jsは実際にはまったく同じエンジンで実行され、オペレーティングシステムにフックするように作られています。Node.jsを使用してバックエンドサービスとしてファイルシステムに直接話しかけたり、ネットワーク呼び出しを行ったりできます。

チャーリー:分かりました、それは興味深いですね。次の質問ですが、Node.jsはどのように、どこで使用されているのでしょうか? サーバー上で実行されていることは理解しましたが、最新のテクノロジースタックのどこに位置しているのでしょうか?

マーク:あなたと私が最も頻繁に会話するテクノロジースタックについて話すとき、RPGプログラムを実行し、恐らくPHPを使用したApacheまたは何らかのJava Webサーバーを実行するある種のフロントエンドWebサービスを使用することを想定しています。通常、Node.jsはそのApacheやPHPの部分またはJava Webサーバーの部分に位置し、RPGやCOBOL、その他のIBM i リソースとやり取りができます。そして、インターネットと非常に容易かつネイティブに通信し、コンテンツを提供するHTTP呼び出しを行うことができます。

チャーリー:あなたのセッションにいくつか参加して本当に感じたことの1つは、Node.jsへのあなたの情熱です。その情熱は何に由来すると思いますか? あなたが言ったようにそれに関して何か特別なことがあったのですか?

マーク:私が大学院生のとき、ある種のWebアプリケーションを開発しなければならない授業があり、Node.jsの使用が必須だと言われました。私は徹底的にそれに抵抗し、心の中でそもそも何故これを使いたいのだろうかと考えました。ApacheサーバーとPHPで同じことができます。しかし、その後暫くして再びNode.jsをいじり始め、その簡便さや使い易さが気に入りました。やりたいことがあればNode.jsプロジェクトを立ち上げ、ApacheやPHPよりも遥かに短時間で一から実行可能な最小限の製品を実現できることが明らかになりました。非常に簡単である理由の1つは、世の中で作り続けられているコードの再利用が数多く行われていることです。 NPM(ノードパッケージマネージャ)の一部であるNPMJS.comというWebサイトに行き、自分がやりたいことの多くの機能を実装した他人の書いたパッケージを見付けられます。人々はWebサービス全体を作成し、REST APIを実行するためのフレームワークを作成しているので、既にあるものを一から創り出す必要はありません。まずはビジネスロジックやアプリケーション、つまり自分で実装したいものに集中することができます。

チャーリー:興味深いですね。次の質問は、このポッドキャストの準備調査で私が何度も出くわした言葉、NPMです。この略語に言及せずにNode.jsの議論を行うことはできないように思えます。NMPとは何ですか?ノードパッケージマネージャと言われましたが、NMPをまったく知らない人にとってパッケージとは正確には何ですか?

マーク:Node.jsには多くのAPIが予め付属していますが、これらのAPI はとても単純です。それらは、ファイルシステムと対話したり、エラーを吐き出したり、HTTPリクエストを作成したりするようなものです。これらを自分で組み合わせる、つまりこれらのパッケージを作成する必要があります。これは再利用可能なコードの大小様々な塊であり、アクセスしてダウンロードし、独自のアプリケーションにプラグインしてそのAPI機能をすべてラップし、更に高水準の仕事をするいくつかの新しいAPIを公開します。つまり、ある種のREST APIサービスを作成したい場合、他人のライブラリー中の非常に単純なREST APIサービスを再利用するだけです。ライブラリーからパッケージをダウンロードして付属文書を読み、それをアプリケーションに統合するだけですぐに動かせます。

オープンソースの信頼性

チャーリー:では、次の質問です。CIOなどの多くの人々が懸念していることです。今や他人のパッケージを使用していますが、どうすれば他人のパッケージを信頼できますか? それがどれほど安全で高品質のコードであり、既存のアプリケーションやデータベースあるいは何もどんな場合にも破壊しないことをどうやって確認できますか?

マーク:誰かを信頼してコードをダウンロードし、それをビジネス上重要なアプリケーションで使用できるようになることは、間違いなくパラダイムシフトです。まず、NPMで公開されているすべてのコードはオープンソースです。ですから、ライブラリーを覗いてそれを丹念に調べ、そのコードがまさに行うことを理解できます。他の人もそれを見て、バグやセキュリティの脆弱性を見付けた場合には、パッケージマネージャだけでなくパッケージ維持管理者とNPM自体にも通知し、そのパッケージのセキュリティ勧告のようなものが出ます。時々、npm-auditというコマンドを実行することになっており、パッケージにいくつかのセキュリティ上の脆弱性があるとそれが通知されます。必ず最新バージョンをダウンロードしてください。私は人々が行うべき匂いテストの種類について考えるのが好きです。 6年間更新されておらず、毎週30回ダウンロードされているパッケージを見つけたら (これはNPMで直接見ることができるデータですが)、多分そのパッケージをダウンロードしたくないでしょう? 悪意のないパッケージでも、そのパッケージには高度なメンテナンスが行われていない可能性が高いので、未発見の脆弱性を含んでいる可能性があります。しかし、これらのNPMパッケージの多く、ExpressやHappy.jsなどの大きなWebサービスの多くは、恐らく1週間に何千万回もダウンロードされています。それらには恐らく数千人から数万人の貢献者がいて、配布されているコードのすべての行を見ています。ですから、こうしたものには多くの目が注がれており、オープンソースであることは怖いように思えるかも知れませんが、実際には見る権限のないブラックボックスで開発されたものよりもコード品質は遥かに高くなります。

IBM i用NPMパッケージ

チャーリー:IBM iの環境で固有のパッケージは何かありますか?どのパッケージを検討または扱う必要がありますか? 例えば、それらは何という名前で、どこで入手できますか?

マーク:誰もがNPMでパッケージを配信するのとまったく同じ方法で、IBMもNPMで直接パッケージを配信します。つまり、IBM iオープンソースソフトウェアチームが維持している4つのメインパッケージがあります。恐らく最も古いものはidb-connectorと呼ばれるものです。いわゆるCLIインターフェースに基づくデータベースコネクタで、Db2を呼び出す方法です。このパッケージの問題は、IBM iでしか動作しないので、Linuxマシンで開発している場合、Linux マシンでは動作しないことです。それはIBM iのポータルアプリケーションソリューション環境(PASE)で実行する必要があります。IDBP-connector と呼ばれる、そのパッケージの上に位置する別のパッケージがあります。このコネクタは多くの同じ機能を再利用します。実際、idb-connectorが必要ですが、接続プールのサポートや接続のpromiseサポートを追加します。これは非常に難しいNode.js概念であり、ここではあまり詳しく説明しませんが、Node.jsプログラミング方法を少し現代化したものです。それはRPG対フリーフォーマットRPGのようなものと考えることができます。それは一種のもっと現代的なやり方です。これらは、私達がCLIコネクタと呼んでいる2つの主要なコネクタです。どちらもIBM i上だけで動きます。

チャーリー:では、どちらを使用しますか?

マーク:IDBP-connector を使用すると、idb-connectorがダウンロードされます。依存関係として必要であることを認識していますので、その一部としてダウンロードされます。それが必要です。

チャーリー:でもその逆ではない?

マーク:その逆はありません。データベースコネクタに関してはODBCコネクタもあります。ODBCは30年前から存在するデータベース接続APIです。これは、データベースベンダーがドライバーを実装できる一種のデータベースに依存しないAPIで、マイクロソフトが管理しています。それは非常に普遍的で多くの人が使っています。IBM i用のODBCドライバーがあり、NPMでこのODBCパッケージを維持管理しています。つまり、それをLinux、Windows、macOSまたはIBM iマシンにダウンロードでき、これらすべてのマシンで同じアプリケーションが実行できます。どのマシンでも同じように実行されるので、IBM iと通信したいIBM i以外のサーバーがある場合は、このパッケージを使用して通信を行うことができます。ローカルワークステーションで開発したい場合、私は自分のLinuxワークステーションでNode.jsプロセスを実行し開発します。その後本番環境に移行したい場合は、それをIBM iシステムに配置します。アプリケーションをドラッグアンドドロップするだけですべてが機能します。
4つ目のパッケージはitoolkitと呼ばれ、IBMが提供するHTTPライセンスプログラムの一部であるXMLSERVICEを単にラップしたものです。それは基本的に大きなXMLペイロードを介してIBM iシステムと通信する方法に過ぎません。itoolkitはこのペイロードを生成し、Node.js側でそのペイロードを解析します。

チャーリー:分かりました。それでは、別な質問をさせてください。好みはありますか?このようなプラットフォーム非固有のドライバーを使用する理由はありますか、それともIBM i 用に開発されたドライバーを使用することに本当の利点はありますか?

マーク:これはとても難しい質問です。idb-connector と IDBP-connectorの良いところは、それらがそのまま機能することです。他のソフトウェアをインストールする必要はありません。ODBCコネクタの場合、ODBCドライバーマネージャとODBC ドライバーがあることを確認する必要がありますが、それ以外はうまく機能します。70 種類の接続文字列オプションがあるので、データベース接続を希望どおりに調整してからXMLSERVICEを作成できます。XMLSERVICEはある種時代遅れであり、いつか代替品が登場することを願っています。それが実現したら私達が提供するツールキットもそれをラップする形で更新されるでしょう。

Node.js の入手と更新法

チャーリー:ではNode.jsを使い始めるとして、IBM iシステムに今すぐロードしたいのですが、どこに行けばよいでしょうか? どのようなプロセスになりますか?

マーク:Node.jsをまったく初めて使用する場合は、IBM iにすぐにインストールしないことをお勧めします。Windows、Macまたは Linuxなど、開発に使用するシステムにインストールすると、その環境でそれ使うことによって得られたあらゆるスキルがIBM iに移転します。学ぶ必要があることの大半は、NPMエコシステムの理解と、パッケージをアプリケーションにインポートする方法及びJavaScriptコードの開発法の理解です。これらのことを行い、非常に小さなサンプルアプリケーションを作成すれば、それらのスキルは IBM iに移転するでしょう。

チャーリー:同じようにスキル移転されますか?

マーク:ええ、そうなる筈です。IBM iのNode.jsは、WindowsやMacのそれと同じです。Java仮想マシン同様、プロセッサより上の層ですべてのコードを実行し、プロセッサが理解できるコードに変換します。

チャーリー:素晴らしい。ということは、方言自体はありませんね。

マーク:方言はありません。そして、その次の質問はIBM iでそれをどのように取得するかですよね? そのためにyumと呼ばれるオープンソースのパッケージマネージャがあります。システムにインストールする最も簡単な方法は、Access Client Solutions(ACS)をインストールすることです。更に最近のバージョンの場合は、システム管理の下の左側の窓にオープンソースパッケージマネージャとか何とかいう表示がされています。それをクリックするとポップアップが表示され、「システムにオープンソース環境がインストールされていないことに気付きました。インストールしますか?」と言います。「はい」と答えると、2 分以内にNode.jsを含むオープンソースパッケージを提供するIBMサーバーと通信する様に構成されたオープンソース環境が完成します。次に、そのボタンをもう一度クリックすると、小さな GUI が表示されるのでNode.jsを選択し、システムにダウンロードします。このスクリプトを実行してシステムにソフトウェアをダウンロードするには、*ALL オブジェクト権限が必要だと言っておくべきでしょう。

チャーリー:それは妥当な考えだと思います。アップデートやパッチはどうですか?ACS と同様のプロセスですか?

マーク:ACSには、利用可能、インストール済み、更新またはその類の3つのタブがあります。基本的に、インストールしたソフトウェア、更新版が利用可能なソフトウェア、そして更新保留中のものがあることが表示されます。何を更新したいかを正確に伝えるだけでソフトウェアがダウンロードされます。私達は非常に機敏で、広いコミュニティーで発生する更新に対応できるよう努めています。通常、機能の追加または脆弱性に対処するためにNode.jsに何らかの更新が行われます。Node.jsの維持管理者はそれをプッシュします。私達はできるだけ早くそのコードをダウンロードし、それをIBM i用にビルドしてユーザーがシステムを更新できるようにし、不必要に長い間危険に晒されないようにしようとしています。

チャーリー:更新についてもう1つ質問があります。それは更新間隔についてです。つまりIBM iのTRのような予測可能な更新間隔がないということです。Node.jsは独自の独立したものであり、独自のエコシステム内にあります。

マーク:普通のパッチの更新のようなものは必要に応じて出てくるだけですが、Node.jsは非常に一貫して提供されるテクノロジーであり、とても大きな企業に支えられています。そのため、非常に一貫したリリーススケジュールがあり、長期サポートバージョンとなるNode.jsの新しいメジャーバージョンを提供しています。つまりIBMがメジャーリリースを提供する方法と大変よく似ています。IBM i 7.3 や7.4 が非常に長い間サポートされ、3年ごとに新しいバージョンを提供するのと同様です。IBMが約束したのと同じ約束を、Node.jsコミュニティーも約束します。Node.jsは特定の組織によってサポートされているわけではなく、Open JavaScript (OpenJS)財団という組織に支えられています。この財団は Microsoft、Google、IBMなどによってサポートされています。これらの会社は、皆年間100万ドル以上を支払って理事会に参加しています。ですから、地下室にいる小グループの開発者ではなく、世界最大級のテクノロジー企業の支援を受けています。

チャーリー:これは自信を植え付けるだけでなく、自信を維持するものでもあります。このテクノロジーを使用して企業向けの強力なアプリケーションが確実に実行できることをご存知でしょう。

マーク:もちろんです。私はフォーチュン500社のすべてがテクノロジースタックのどこかでNode.jsを使用しているという主張を見てきました。私にはそれを確かめることも否定することもできませんが、少なくとも 80% の人がそうしていたとしても驚きません。

Node.jsとIBM i 既存プログラム

チャーリー:そうですね、私達はNode.jsについて話してきましたが、それを人々がどのように使っているかは全く議論していません。それがIBM iで動き、実行可能なテクノロジーであることが分かりましたが、現場で何を見てきましたか? 人々は実際にこれをどのように展開し、どのようなアプリケーションに使用していますか?

マーク:世界は本当に動いており、ここ数年この種のマイクロサービスのような世界に移行しています。つまり、これらの小さなアプリケーションは必要なことの小さな部分を実行し、恐らく各マイクロサービスには1つまたは2つのAPIエンドポイントがあって、データベースと通信し、データを取得し、データを送り返す、などの小さな仕事をします。私は多くの人がNode.jsプロセスを単なるこうしたマイクロサービスとして使用しているのを見てきました。これらのAPIはIBM iシステムのデータ層であるデータベースと通信し、恐らくプロシージャを介してRPGプログラムを呼び出します。そのRPGプログラムは、30年間行ってきたいくつかのビジネスプロセスを実行して何らかの結果を返し、APIを呼び出した人に渡します。そのAPIはパブリックAPIつまりインターネット全体、全世界に晒されるものである必要はありません。これは、社内のプライベートAPIである可能性があります。Amazonのアプリはそのように設計されていると思います。そこでは人々が開発して提供するものはすべて、ともかくAPIとして使用可能でなければなりません。

チャーリー:つまり、あなたが私に説明しているものは、非常に強力なツールで私が言う言語でもありますが、私の知る限りRPGやSQLなどに取って代わることを意図したようなものではありません。つまり、それらは一緒にうまく機能し、平和に共存するアプリケーションですね?

マーク:それらは完全に平和に共存しています。つまり、Node.jsは間違いなく、通常の RPGのような世界の上に位置するテクノロジーです。RPGはデータ操作やビジネスプロセスの実装に非常に優れています。データベースにすべてのデータがあり、そのデータを取り出し、何らかのビジネスプロセスを実行し、データを送り返すなどのことをします。Node.js はそれらの結果を取得し、それらを他のAPIに送信し、Webサイトで非常に簡単に使用できるようにするなど、多くの21世紀型の仕事をします。3行のコードでSMS テキストメッセージの送信などを行うためのNPMパッケージがあり、RPGプログラムを呼び出して結果を返し、警告などがある場合には誰かの電話に送信することができます。しかし、Node.jsはRPGとSQLの完璧なパートナーだと思います。実際には、過去30年間に人々が作成し、その維持に企業が何百万ドルも投資して情報基盤となっているRPGコードを非常に簡単に取得できるテクノロジーであり、それを使ってWeb 2.0 の世界でもっと機敏なことができるようにします。

チャーリー:パートナーというのはここでは重要な意味を持つ言葉です。

マーク:ええ、それらは絶対に互いに戦おうとするべきではありません。アプリケーション全体をNode.jsで記述してデータを取得し、Node.js実行モジュール自体の内部ですべての処理を行うこともできますが、Node.jsやJavaScriptは厳密に型指定されていないので、データが何であるか、どのような操作を行う必要があるかを理解するのが非常に遅くなります。それに対してRPGはうまくやってのけることができ、既に長い間使用されてきた実際の作業ワークフローがすべてある場合、コードを書き直す必要はまったくありません。

Node.jsをどう学ぶか?

チャーリー:分かりました。では、私達または会社がこの方向に進みたいという決定を下したとして、以前の経験がまったくない場合、真に生産的になり始める前に学習曲線として何が期待できますか?

マーク:それは素晴らしい質問です。Node.jsの学習曲線は、バックエンドで使用するPHPやJavaなどの他の言語よりも確実に少ないと言えます。JavaScriptは非常に理解しやすく、簡単に習得できる言語です。最も難しい部分は、JavaScriptがより広い種類の Node.jsランタイムでどのように機能するかを理解することです。知っておかなければならない落とし穴がいくつかありますが、1か月以内に Node.jsで非常に印象的なことを行えると思います。学習したい人のためにリソースを用意しています。ibmi-oss-examplesというリポジトリがあります。それはGitHubにあります。そこにはNode.jsのサンプルがたくさんあり、ダウンロードして実行しコードを丹念に調べることができます。Node.jsチュートリアルを探してください。そこで読んだことはすべてIBM i 開発にも同様に適用できるので、IBM i 固有の例を見つけようと心配する必要はありません。

チャーリー:あなたは1か月と言いましたが、それは私にとっては決して長い時間ではありません。

マーク:開発者にとっては違います。

チャーリー:そう、開発者にとっては。しかし、あなたはそれを理解する必要があると前に言いました。従来のRPG/COBOL開発者にとってパラダイムシフトが大き過ぎ、これを理解するのに時間がかかるのでしょうか? それとも、自然に理解できるのでしょうか?

マーク:彼らが慣れ親しんだものとは少し違うと思います。Node.jsには非同期コードの概念があり、これは非常に大きな概念です。基本的に、何かが実行されバックグラウンドで実行されることを意味し、その間に何をすべきかをNode.jsに伝える必要があります。そのため、理解しなければならない落とし穴がいくつかあります。しかし、そのパラダイムに慣れるには少し時間がかかります。

チャーリー:私がこの議論から得た大きな知識のいくつかは、まずNode.jsは間違いなく普及しているということです。Node.jsは安全ですし、安心して使用できます。これは非常に大きなことです。しかしここで私が強調したいのは、Node.jsを学び始め人は一人ぼっちではないということです。初心者が利用できるリソースはたくさんあります。あなたは1か月程度で習得できると言いました。そして、それも含めてすべてコミュニティーがサポートしているのだと思います。

マーク:ええ、そのとおりです。Node.jsには2つの素晴らしい点があります。1つ目は、間違いなくNode.jsはどこにも行かないこと。2つ目は、Node.jsのオリジナルの開発者を含め「Node.jsについて嫌いな点はたくさんある」と言う人達がいることです。彼等は何か違うものを作りたいと思っていて、Node.jsの暫定的な置き換えを作成しました。Node.jsは今後10年で放棄されるような技術ではないことは保証できます。世の中にはたくさんのリソースがあります。Node.jsの学習に興味を持っている人がとても多く、Node.js を理解してあなたに教えたいと思っている人も非常に多くいます。

チャーリー:分かりました。これは確かに私にとって相当な教育であり、このポッドキャストを聞いている人全員にとってもそうだと思います。本当に良い情報がぎっしり詰まっています。今日はお時間を割いていただきありがとうございます。伝統的なRPGプログラマーだけでなくこのテクノロジーを取り巻いているように見える暗い影に幾らかの光が射すことを望みます。恐れる必要はないというのがこれに対する最後の言葉だと思いますが、間違っていませんよね?

マーク:もちろんです。そして私が言ったように、Node.jsをワークステーションにダウンロードし、それをいじって小さなサービスを作成し、Hello, World! を作ってください。まったく何もない状態から、開発に3分もかからずに本当にイケてる状態に移行することがいかに簡単かを見てください。

チャーリー:どうもありがとうございました。

マーク:どういたしまして。

いいねと思ったらシェア
twitter
facebook
hatena
IBM i アプリの第二の柱 OSS 目次を見る

この連載は…

IBM i アプリの第二の柱 OSS
関連記事
【OSS】第8回「Nginxを使ってウェブコンテンツを素早く動かす」
【OSS】第8回「Nginxを使ってウェブコンテンツを素早く動かす」
【OSS】第11回「簡単なGrafanaダッシュボードのデプロイ方法」
【OSS】第11回「簡単なGrafanaダッシュボードのデプロイ方法」
【OSS】第4回「IBM iのPythonを始めよう」
【OSS】第4回「IBM iのPythonを始めよう」
あなたにオススメの連載
できるIBM i 温故知新編
7記事
できるIBM i 温故知新編
IBM i の”新”必須言語 〜FFRPG入門〜
14記事
IBM i の”新”必須言語 〜FFRPG入門〜
IBM i アプリの第二の柱 OSS
15記事
IBM i アプリの第二の柱 OSS
PAGE TOP