2017.12.20
 

その18:RPG言語は好きですか? -4

初めて触れたプログラム言語は科学技術計算用のFORTRANでした。その後システム370や6800/8080/8086マイクロプロセッサのアセンブリ言語に触れ、さらに趣味のプログラミング用にC言語をよく利用しました。仕事としてAS/400に関わるようになった当初は、当然の事ながらRPGに全く触れたことが無く、AS/400を生業とする立場であったにも関わらず、社内のSE研修において選択したプログラム言語はC言語でした。あまりにも古さを感じさせるRPGを見て(当時の事ですからもちろんRPGⅢです)、「何なんだこれは」と思った事を覚えています。AS/400イコールRPGの時代ですから、研修担当の方から、何故こんなに変則的な選択をするのかと問われ、その場の思い付きで、流行っている言語なので一度きちんと学んでおきたいから、といい加減に回答しました。経験があるから最も楽に研修を終えられそうだし、今更古めかしい言語なんぞ学びたくない、といった本音を漏らさないだけの節度はあったようです。 現在はモダンな構文をサポートするフリーフォームRPGがあり、「何なんだこれは」は既に解決されています。多くのプログラマの方が、かつての私が抱いたような先入観にとらわれること無く、RPGに目を向けていただければありがたいです。

皆さん、こんにちは。これまでIBM i を中心にアプリケーション開発事情を考察してまいりましたが、今回は少し世間の事情にも視野を拡げてみようと思います。

今時最初に触れるプログラミング言語がFORTRANだという方はまずいないのではないでしょうか。この点に関して配信は2008年と古いですが、興味深いWeb記事があります。IT技術者が初めて本格的に学んだ言語を年齢年代別に集計したものなのですが、FORTRANは50代のカテゴリにおいてアセンブリ、COBOLに次いで第三位にランクインしています。20から40代のカテゴリではランク外です。言語がわかれば年代がバレてしまいますね。そしてビジネス用アプリケーションならCOBOL(COBOLはCOmmon Business Oriented Language: 共通化されたビジネス用言語)、科学技術計算用ならFORTRAN(FORmula TRANslation : 数式翻訳)、という、それなりの年齢の方ならば肌感覚として持っているであろう、ITの常識通りの結果が出ています。アセンブリはこれらに比べるとハードウェア・レベルの知識を前提とする、言い換えると人に優しくない言語でした。そのためにアプリケーション開発には膨大な手間がかかります。例えばJAVA の一行はアセンブリだと数行以上に相当するのではないでしょうか。コンピュータで「飯を食う」ためには、システムを理解するのに役立つかつての「必須科目」でもあります。極めて細かな制御が行えることから、コンパイラに頼ると避けられないであろう実行コードの無駄を可能な限り削ぎ落とし、パフォーマンスを追求する場合に利用されます。ただ、一言アセンブリとは言っても、稼働するシステム間の互換性が無いので、かつての経験が直ちに次の実用に結び付かないケースも多々生じます。このような低生産性と非互換性ゆえに、今ではプログラミングにおける入門的役割は汎用性の高いC言語に引き継がれていますし、さらに最近ではPythonがその役割を担う例も出てきています。

今、世間で最も人気のある言語は何なのでしょうか。「プログラミング言語」とか「人気ランキング」といったキーワードでWebサイトを検索すると、それらしいものがいくつも見つかります。その中で筆者がよく参照しているのは、オランダTiobe社のサイト(https://www.tiobe.com/tiobe-index/)です。集計方法など不明な点があり、客観性に多少の疑問符が付くのも事実ではありますが、見やすくて集計結果が自分の感覚に合っているようです。このサイトに掲載されている、当コラム執筆時点で最新の2017年11月版ランキングを眺めてみたいと思います。

ベスト10にランクインしているのは、1位から順に、Java、C、C++、Python、C#、JavaScript、Visual Basic .NET、PHP、Delphi/Object Pascal、Assembly Language(アセンブリ)です。Cとその派生言語(Java、C、C++など)が最上位を占めており、入門言語としての面目躍如といったところです。人は誰でも最初に経験した言語に愛着を覚えるものなのでしょう。年配者にとっては「故郷」が廃れてしまったように感じているかもしれませんが。

次に目立つのは、Python、JavaScript、PHP、さらには圏外ですが13位のRubyや15位のPerlなどといった、スクリプト言語のカテゴリに入る言語群の人気の高さです。特にPythonの4位は私の知る限りでは、歴代最上位ではないかと思います。「スクリプト言語」をWebで調べてみてもその定義はまちまちですが、簡易言語と同義とするものもありますし、さらにインタープリタ方式であること、という属性を併せて説明するところもあります。これならば、ソースコードを記述したらコンパイルして、次に必要となるライブラリを指定しながらリンクして、といった面倒がありません。書いたら直ぐに動かせる、という簡便性があります。「簡易」と表現するだけあって、かつては基幹業務に供するには性能・機能不足であり使い物にならない、という見方が一般的でした。今ではPC の能力がかなり向上しているのと、標準的な機能をライブラリの形で提供する、所謂フレームワーク製品の充実によって使い勝手が向上し、基幹業務アプリケーションを記述するのに使われるケースも出てきています。例えばPythonでは、高速な行列演算をサポートする数値演算ライブラリ(オープンソースのNumPyが有名ですね)が提供されるなど、AIアプリケーション開発環境も充実してきています。第13回目のこのコラムに書きましたように、新入生に最初に学ばせる言語をJavaからPythonに切り替えた大学が着目したのは、簡易言語ゆえの敷居の低さでした。Javaは意外に難しくて、初めてだとプログラミングが嫌いになってしまうケースがあったそうです。プログラミングを学ぼうと思っているのに、オブジェクトだのインヘリタンス(継承)だの概念ばかりをと延々と聞かされたら、辟易してしまいます。

IBM i コラム挿絵1

IBM i の視点からこのランキングを眺めてみましょう。先のベスト10の中でIBM i がサポートするのは、Java、C、C++、Python、JavaScript(サーバー側ではNode.jsになりますね)、PHP、Delphi(IBM i 版としてDelphi/400があります)の7つです。圏外ですが、RubyやPerlもあります。C#とVisual Basic .NETはマイクロソフト社独自言語、アセンブリはシステム固有言語という特殊性を考えると、オープンで人気のある言語のほとんどがIBM i 上でサポートされていることがわかります。昔からあるRPGやCOBOLだけでなく、新しくて人気のある言語を積極的に取り込んでいるのですね。実はIBM i のオープン性はこういったところにも表れています。

言語の話は一旦ここまでとし、次回はまた違う観点でお話を進めたいと思います。ではまた

ページトップ

ボタン