社長ブログ

60. Python on IBM i はどうなるのか ?

今、IBM iの世界でもPythonが注目を浴びています。
オープン系の言語でも最も人気の高い開発言語がPythonです。
Pythonは広く無料で使える開発言語です。
PythonはJavaを抜いて現在、世界でも最も開発者人口が多く
AIを始めとしてWebでもよく使われています。
シンプルで簡単に開発でき学習も簡単で
インタプリタだけでなくコンパイラもあります。
_

■ なぜ Pythonは人気があるのか ?

  _

Pythonの文法は簡単に理解しやすいのですが
そればかりではありません。
Web化をしようとするとPythonが最も簡単です。
これまではオープン系でも事前にApacheやTomcatなどの
HTTPサーバーを起動しておいてそれに対して
CGI やPHPで動作させるものでしたが
Pythonではそのような必要はありません。
Pythonのプログラムを起動すると自分自身が
HTTPサーバーとなって起動するので
HTTPの知識の無い人でも簡単にWeb化が行えます。
これはPythonのBottleという機能です。
つまりこれまでのApacheなどのHTTPサーバーの構造を
全く変えたところにPythonの新しさがあります。
これは実際にPythonをIBM i上でWebで動作させた人でないと
わからないと思いますがこれまでのIBMベンダーでは
このような指摘は一度もありませんでした。
これには少し驚いて感心しました。
 _

なるほどWeb化の業務を行う人のほとんどはPythonで
Web化を行おうとするのも当然です。
ApacheやTomcatを導入して起動させる手間など全く
必要がないのです。
驚くほど簡単です。こんな発想もあるのかと思いました。
インタプリタでコンパイルなしでも動作することも
人気の秘密でしょう。
 

■ IBM のPython対応

 
IBM iでもPythonを採用してOS Ver7.1から
Pythonをプレ・インストールしてIBM iで
Pythonを使えるようにしました。
ところがVer7.4で早くもプレ・インストールを辞めてしまい
ユーザーはYUMというインストーラをIBM iに導入して
そのYUMを使ってPythonを導入しなければならないと
いう二重の手間がかかる不便な方向に変わりました。

 

■ インストーラ : System Manager

_
 
一方でSystem Manager というライセンス・プログラム導入のための
IBM提供の高価なライセンス・ソフトウェアがあります。
これは弊社のようなソフトウェア製品をIBM製品と同じように
GO LICPGMの一覧として登録できるというIBM提供のライセンス・プログラムです。
このSystem Managerを構成しているソフトウェア導入のためのAPIは
早くから公開されていましたが難解でどうにも使いづらいものでした。
しかしIBMはこのSystem Managerの販売をVer7.5であきらめて
System ManagerのコマンドをすべてOS/400に組み込みました。
これによってVer7.5ではSystem Managerを無料で使うことができますし
Ver7.5のSystem Managerのコマンドを下位レベルのOS400に移植することが
可能になりました。
(ただしこのAPIとSystem Managerも理解するには相当、困難です。)
_

さて先のPythonの話に戻ってIBMはPythonのプレ・インストールは
辞めたのですがインストーラのノウハウをVer7.5で無償公開したことになります。
これは弊社にとって美味しい話でVer7.4以降のIBMユーザーにPythonの
インストーラを㈱オフィスクアトロが提供できるようになります。
ただし先にも述べましたようにこのインストーラ解析と開発は
やさしいものではありません。
㈱オフィスクアトロでは既にSystem ManagerのAPIを使って
インストーラの開発をVer7.1と7.5の両方で始めています。
 

■ IBM ベンダーのPython対応は

 
IBM業界でもIBMを始めとして多くの主要な特約店がPythonを喧伝してしますが
Pythonは逆に導入が遠のいていますのでPythonインストーラを開発すれば
弊社とってもIBMユーザーにとっても大きな前進となります。
_

さらに多くのベンダーがPythonを使ったアプリケーションを開発したと
豪語してしますがほとんどがHelloWorldの出力かまたはDB2/400へのODBC接続だけです。
しかしODBC接続であれば大量のデータ・ベースへのアクセスは実用レベル以下と
なってしまいます。
大手IBM特約店やいくつかのソフトウェア・ベンダーもPythonと声高に
主張していますが技術的なものは何もありません。
Pythonが使えるというだけてす。
弊社でも先の技術ショート・セミナーでIBM iで動作するPythonの
例をご紹介しましたがODBCでのDB2/400へのアグセスは実用的ではありません。
またODBCであればPythonをIBM iの上に置く必要はありません。
近傍のWindowsサーバーのほうがレスポンスも速くなります。
Pythonが使えるというだけではIBM iでは何の解決にもならないのです。
 

■ ㈱オフィスクアトロのPython対応

 
IBM i上でPythonで開発するからにはIBM iの優れた機能である
レコード・レベルのアタッチができないとIBM iの本来の性能を
引き出すことができません。
つまりPythonを主張しているベンダーはPythonをIBM iに移植する
技術はなく既存の技術を主張しているだけに過ぎません。
 
さらにDSPFやPRTF,コマンドも使えないのではIBM iでPythonを使う意味が
ありません。
つまりILE(=Integlated Language Environment:統合開発環境)を
サポートするPythonでないと意味がないのです。
Pythonはオブジェクト指向の言語と言っているのですから
ILEとしてRPG/COBOL/CLPとの統合/連携が必ずできるはずです。

現在、弊社では
 

・Ver7.1 でのSystem Managerと同じ機能のPythonのインストーラの開発

 

・Pythonのレコード・レベルの直接アクセス(DB2/400)

・PythonのILE対応 (RPG/COBOL/CLPとのオブジェクト連携)

_

 
を同時並行して進めています。
最初のインストーラはVer7.4以降のIBMユーザーにPythonを簡単に導入できるように
するための開発です。これは既に開発を進めています。
 
残りの2つはPythonのIBM iへの移植(PORTING)です。
System Managerの開発も自社にVer7.5を導入していたおかげで
解析がスムースに進んでいます。
IBM i でのPython言語のILEサポートが実現すれば開発者不足も解消できます。
先のノーコード開発で拡張DFU,拡張QURYとPythonのILEサポートが
実現すればIBM iの将来は明るくなります。
拡張シリーズでノーコード開発が可能になる一方で多くの新しい若い開発者を
取り込むためにはPythonでの開発は必須です。
両輪立てでこそ初めて開発者不足や後継者問題を解決することができます。

また技術面でもPythonを使うとIBM i上で直接Web化で起動できて
セッションも維持できる可能性があります。
これは従来のアーキテクチャーを変えてしまう斬新な方法となるかも
知れません。
 
PythonのILEサポートは刺激的で優秀な開発者の活躍の場を広げることに
なるでしょう。
IBM iを辞めようと考えていた人もIBM iでPythonが使えるとなると
考え直すことになるでしょう。
それほどPyyjon on IBMの影響は大きいのです。
㈱オフィスクアトロが初めてIBM i上でのPythonの実用化を実現することに
なるはずです。