IBM i が次にサポートする新しい言語は?
プラットフォームに新しい言語がサポートされることについて考えをめぐらすと、ワクワクするものです。新しい言語は、新しい機能をもたらしてくれるのか、あるいは少なくとも既存の機能がより迅速に利用できるようになります。IBM i プラットフォームに暮らしの基盤を置いている者にとっては、次にどの言語がサポートされるのかは重要な問題です。
RPGは、IBM i プラットフォームにおいて大多数の開発者によって使用されている主力の言語の座を守っています。HelpSystems社の2019年の調査によると、同プラットフォームのプログラマーの84%がRPGを使用しているそうです。また、RPGの長年の相棒であるCOBOLも、CおよびC++コンパイラーとともに、Rational Development for IBM i (RDi)でサポートされています。さらに、Javaも、この何年の間に存在感が高まっています。
IBMは、2000年代中頃、PHPによって、また、そのオープンソース言語の支援者であるZend Technology社(現在はRogue Wave Software社傘下)とのパートナーシップによって、大成功を収めました。さらに最近では、PythonやPerlやNode.jsなど、さらに多くの言語をそのプラットフォームに導入してきました。現在は、Microsoftの.NETも、オープンソースのMonoプロジェクトを介してIBM i 上で稼働しています。これについては、先日、小誌の記事でも取り上げたところです。
(IBM i 開発者が、気付いたらWebベースの言語で作業していた、ということがよくあるかと思いますが、IBM i の世界はHTMLやJavaScriptを含めてこれら多くの言語をサポートしています。ただし、これらの言語は、サーバーではなくブラウザーで稼働するものであるため、実際にはIBM i サポート言語とはみなされません)。
では、Powerプロセッサー ライン上で実際に稼働できる言語の世界において、IBM i にとっての次は何でしょうか。次はGoかもしれない、という噂もあります。
Goは、もともと、コモディティX86ボックスのマルチ ノード クラスター全体にわたってパラレルで稼働するアプリケーションの開発を簡素化することを目的に、Googleが開発したものです。Goコードの設計は2007年に開始され、一般に公開されたのは2012年でした。それ以降、Goは世界で最もポピュラーな言語の1つになっています。
IBM i での新たな開発に現在どの開発言語を使用していますか
出典: HelpSystems「2019 Marketplace Survey」
Go(「Golang」とも呼ばれる)は、静的型付き、コンパイラー型言語で、構文的にはCに似ています。そのため比較的読みやすいとプログラマーは言います。Goは、メモリー安全性、ガーベッジ コレクションのような機能を提供しており、ユーザーによれば、Goがセキュアで高性能なプログラムを作成するのに役立つのだそうです。標準ライブラリーでリリースされていますが、他の多くのオープンソース ライブラリーも利用可能です。また、一部のユーザーによって高く評価されている、独自の組み込みのテスト ツールも特徴的です。
GoogleがGoを開発したのは、主にOracleによるJavaの買収を受けてのことだと言われています。OracleがSun Microsystemsを買収する以前、GoogleはJavaの大口ユーザーであったため、Javaの未来がOracleによって支配されることを憂慮していると伝えられていました。Goは、ある程度Cに似ていますが、C++のアンチテーゼとして開発されたと言われています。作成者が嫌っていたそうです。
ソフトウェア エンジニアのTyler Treat氏は、自身のブログ「Brave New Geek」で、Goの歩みを押し進めているものについて詳しく説明しています。「Goは、理解しやすいコードを書くのを容易にします」と彼は記しています。「多くのエンタープライズJavaフレームワークのような魔法もなければ、ほとんどのPythonまたはRubyコードベースに見られる、気の利いたトリックもありません。Goのコードは、冗長ではあるが読みやすく、洗練されてはいないが分かりやすく、単調で退屈だが意外性がない無難なコードです。」
一部のIBMerたちは、IBM i へのGoの移植に取り組んでいると述べています。それが本当なら、その移植はPASEを介してとなることはほぼ間違いないでしょう。PASEは、最近、このプラットフォームに新たなソフトウェア、特にオープンソースであるソフトウェアを導入するための、この巨大IT企業お勧めのルートとなっています。
IBM i にとって考えられる他の候補としてはErlangがあります。Erlangは、Ericsson社によってテレフォニー アプリケーションのためのプロプライエタリー言語として開発された言語で、そのルーツは1986年にまで遡ります。Erlangは1998年にオープンソースとして公開され、今日に至っています。
もうひとつの候補は、Appleの、オブジェクト指向の静的型付き言語である、Swiftです。Swiftは広範囲にわたってObjective-Cを構築の基盤にしています。そのObjective-Cも、Cを構築の基盤にしたAppleのプログラミング言語であり、iOSモバイル アプリ開発のための主要言語となっています。
ただし、Objective-Cとは異なり、Swiftはより広範囲にわたってサーバーで使用されています。実際、Swiftは2015年にApache 2ライセンスの下でオープンソース化されて以降、IBM Toolkit for Swift on z/OSを介してIBMのzSystemsメインフレームにも浸透しています。そのようなツールキットが、SwiftをIBM i に連れてきてくれるのでしょうか。
ゆくゆくはIBM i にサポートされるかもしれない言語は他にもあります。Groovy、Scala、KotlinのようなJVM互換の言語はかなりの注目を集めていますし、愛好家を増やしつつあるJuliaやRustなどの言語については言うまでもないかもしれません。また、IBMのAIXチームは、ClangおよびLLVMなど、新たなコンパイラー テクノロジーをサポートするための取り組みも行っています。これは今後のIBM i 向けの何らかのPASE-レベルの機能強化の予兆なのかもしれません。
IBM i に新たな言語がもたらされることは、良いことに思えます。結果として、それによってアプリケーション開発者は新たなツールを手にすることになります。と同時に、新たな開発者のグループが、IBM i 上で稼働するアプリケーションを書けるようにもなります。しかし、構文が多くなればなるほど、エコシステムは強力になるという考え方に、誰もがワクワクするわけでもないようです。
IT部門は、既存の開発者に新しい言語を学ばせるのではなく、データベース設計、プロジェクト管理、およびテクニカル ライティングのようなスキルで開発チームを補強した方がうまくゆくという声もあります。
最新の、最も広く採用されている言語を知っているということとは対照的に、アプリケーションを開発、展開、保守できる円熟した開発チームを持つことは、近頃、非常に多くのIT部門に欠けている重要な要素だと考える人もいるようです。
新たな言語をIBM i エコシステムに迎え入れたいとする立場でも、既存の技術を使用する円熟した開発者を増やすべきだという立場でも、IBM i プラットフォームにおけるアプリケーション開発戦略というトピックは重要なトピックであることに変わりありません。