IBM i でGitを使おう
Gitが正式にIBM iの一員になりました。先週、 IBM は、この広く使われているオープン ソースの変更管理ツールのIBM i バージョンのバイナリが含まれたPTF(Program Temporary Fix)をリリースしました。これは、今年すでにIBM i 7.3の一部として発表されていたものです。IBMはまた、Gitとともに、Gitと連携し、タブレットからフリーフォームRPGをコーディングするのに使用できる、新たなWebベースのIDEであるOrionのPTFもリリースしました。
3月に way back in March IBM i 7.3の発表とともにこのプラットフォームに加わることが初めて明らかにされてから、IBM i のコミュニティはGitの話題で持ちきりでした。先週、IBMがPTF SI61060を提供したことで、GitのIBM i バージョンのための使用方法は正式に終了しました。このPTFの詳細については、developerWorksのGitのページ Git page on developerWorks を参照してください。
ご存じでない方向けに簡単に説明しておくと、Gitは、 BitKeeperという別の分散型バージョン管理システムに不満を抱いていた、Linuxの生みの親、Linus Torvalds氏によって11年前に最初にリリースされた分散型バージョン管理システムです。Torvalds氏は、オープン ソース プロジェクトとして(BitKeeperはプロプライエタリでした)、大規模で分散したLinux開発者チームが、バージョン管理システムが邪魔になることなく、プロジェクトに取り組めるのに十分なくらい拡張性のあるものにするべくGitを開発しました。
Gitは、最初にリリースされた時から大成功を収めました。この成功は、ある程度は、 GitHubのようなリポジトリの成功によるものです。GitHubには、開発者はコードをオープンに、オープン ソース ソフトウェア プロジェクトの一部として保存できます。GitサポートがIBM i に加わったことで、ミッドレンジにおいてもさらに弾みがつくことが期待されます。
CVSや、サードパーティ ベンダーからのプロプライエタリ ツールのような、集中型変更管理システムの使用に慣れているIBM i プロフェッショナルは、最初はGitの分散型の方式が奇妙に思えるかもしれません。ローカル ライブラリに変更のデルタだけを保管して、セントラル サーバーにフル レポジトリを保管するのではなく、Gitでは、開発履歴全体をそれぞれのクライアントに保存できます(極度な圧縮状態ですが)。
IBM i のRationalのアーキテクト、Edmund Reinhardt氏によると、Gitの分散型の方式は、開発チームにいくつかの利点をもたらすとのことです。
まず、分散型の方式ですべてを保存しておくことにより、多数のディレクトリおよびサブディレクトリを管理する必要性から生じる問題の防止に役立ちます。作業中のプロジェクトに、おそらくオープン ソース プロジェクトから、すぐに外部コードを追加したい場合、「それらのサブディレクトリに触るとすぐに、ソース管理全体がめちゃくちゃになってしまいます」と、Reinhardt氏は、IBMテクニカル ライター、James Littlejohn氏との最近のYouTube video の中で述べています。
また、Gitが分散型であることにより、中央に障害点が生じることがなくなります。「セントラル サーバーがダウンしたとしても、それは問題になりません」とReinhardt氏は述べます。「Jamesと私が作業していて、私のコードがめちゃくちゃになってしまったとしても、最後にデリバーまたはプッシュされた時点までのすべてのコピーをJamesが持っています。」
処理速度は、他のほとんどのソース管理システムに勝るもうひとつの利点であると彼は述べます。「Gitは、直観に反して処理速度が速いです。これはすべてのバージョンの完全なコピーを持つためです」とReinhardt氏は述べます。「Gitは圧縮をインテリジェントに使うことで、実際にあまり多くのスペースをとらないようにします。そのため、実際にスペースを空けることができ、処理速度は断然速くなります。」
Gitでは、すべての開発者がコードのフル コピーを持つことが可能なため、ネットワークから切断されていても作業を行えます。「飛行機内で作業しているときでも、ネットワークを呼び出すことなく、完全なソース管理を使用することができます。接続できない環境での作業がより簡単になります。また、ネットワーク呼び出しがないため、処理速度はずっと速くなります」とReinhardt氏は述べます。
開発チームの一員であるGitユーザーは、頻繁に、作業を他のユーザーと同期させる、または、アップデートを「プッシュ」するように促されます。Gitでは分散型の方式で作業できますが、多くの開発チームは、無料で使えるGitHubのようなセントラル レポジトリを利用しています。
ソース コードを外部と共有したくないIBM i ショップは、プライベートのGitレポジトリを有料で利用することもできますし、または、レポジトリを自身で保存することもできます。ここでIBMのGitサポートの出番です。「ショップにあるすべてのサーバーの中で最も信頼性の高いサーバーは、もちろん、IBM i ですので、IBM i 上にGitレポジトリを置くことは理にかなっていると言えるでしょう。おまけにディスク領域の管理やバックアップなどもやってもらえます」とReinhardtは述べます。
IBM i 開発者は、IBM i 向けアプリケーションの作成に用いられる主要な統合開発環境(IDE)、Rational Developer for i(RDi)とともにGitを使用できます。RDiとの統合は、Git Team Providerを通じて行われる、とReinhardt氏は述べます。
ORIONを使う
RDiでもGitの一部のアクションを表示できますが、ほとんどすべてを表示できる別のIDEがあります。それがOrionです。
Orionは、IBMによって5733-OPSプロジェクトのOption 8に選ばれています。IBMは、近ごろ、PTF(SI60170)にOrionのバイナリを同梱しました。Option 8およびOrionの入手方法の詳細については、developerWorksのOrionのページ Orion page on developerWorks を参照してください。
Orionは、IBM i プロフェッショナルに、このプラットフォームのためにコーディングするもうひとつの方法をもたらします。Eclipse Foundationによって管理されているこのソフトウェアは、JavaScript、HTML、およびカスケード スタイル シート(CSS)などの、いくつかのWeb言語および技術に、完全なIDEエクスペリエンスを提供します。Orionでは、開発者は、コンテンツ アシスト、コード補完、エラーチェック、およびコード マップのような便利な機能を利用できます。
ただし、現時点でOrionには、PHP、Python、およびフリーフォームRPGなど、IBM i上で使われる他の言語のための、より基本的なサポートも含まれています。「OrionはそうしたネイティブなWeb言語にとって非常に強力な、妥協の余地のないエディターであり、他の言語にとっては、ハイライトとなる機能があります」とReinhardt氏は述べます。
それでは、RDiのようなより強力なIDEを利用できるのに、IBM iプロフェッショナルは、なぜ、Orionを使いたいと思うのでしょうか。Reinhardt氏の答えはこうです。「今ではブラウザでRPGを編集することができます」と彼は述べます。「デバイスの種類は問いません。Orionは、タブレットやスマートフォンで作業できるのです。Jamesと私は、タブレット上でRPGの編集を行いました。」
iPadやAndroidタブレットのWebブラウザでの、フリーフォームRPGの編集ということに興味をそそられたとしたら、数回のショート クリックだけでそれが行えます。ただし、OrionはオープンWebから利用可能ですが、タブレットでRPGを編集したい場合は、IBMバージョンを入手する必要があります。「フリーフォームRPGのハイライトとなる機能を持つのは、IBM i バージョンのOrionだけです。それこそが、IBM i バージョンを入手する利点なのです」とReinhardt氏は述べます。