今回は、日本で人気のプログラミング言語HSP(Hot Soup Processor)を紹介します。HSPは、ホビー向けのプログラミング言語で、ゲームやツールなどの用途で多く使われています。日本での知名度が高く、関連書籍もたくさん発売されています。今回は、HSPの紹介、および、開発者のおにたまさんへのインタビューがあります。それでは、HSPについて見ていきましょう。

HSPの概要

HSP(Hot Soup Processor)とは、1995年から開発されているホビー向けのプログラミング言語です。ゲーム開発やちょっとしたツール開発など、ホビー用途の開発ツールです。開発者のおにたまさんは、本職でもゲーム開発のお仕事をされていて、そのエッセンスが存分にHSPに反映されています。国内でHSPを利用して多くのゲームやツールが開発されています。これまで、主にWindowsに特化した機能を提供していましたが、最近では、オープンソースでHSPが公開されており、HTML5、iOSやAndroid、LinuxやRaspberry Piと様々な環境でHSPが動くようになっています。

  • HSPのWebサイト『hsp.tv』

    HSPのWebサイト『hsp.tv』

HSPのWebサイト
[URL] https://hsp.tv

今回は、機能が豊富なWindows版(HSP3.5)を利用してみましょう。上記Webサイトのこちらのページから、ダウンロードできます。インストーラーをダブルクリックして、[次へ]のボタンを押していくと、インストールが完了します。

HSPでHello, World

HSPは、BASIC言語に似ており、非常にシンプルな言語仕様です。簡単なプログラムを実行してみましょう。スタートメニューから[Hot Soup Processor 3.5 > HSPスクリプトエディタ]を選んでクリックします。すると、HSPスクリプトエディタが起動するので、そこに、HSPのプログラムを記述します。

以下のプログラムは、画面に「Hello, World!」と表示するプログラムです。

 mes "Hello, World!"

[F5]キーを押すとプログラムを実行できます。以下のように、表示されます。

  • HSPでHello Worldを実行したところ

    HSPでHello Worldを実行したところ

プログラムを見てみましょう。HSPのプログラムは、命令の後ろにパラメータをカンマで区切って並べるというスタイルです。ここでは、命令「mes」の後ろにパラメータとして、"Hello, World!"を記述しています。

HSPでFizzBuzz

次に、簡単なFizzBuzz問題を解いてみましょう。これは、1から100までの数字を画面に表示します。しかし、3で割り切れる場合は「Fizz」、5で割り切れる場合は「Buzz」、両者で割り切れる場合は「FizzBuzz」と表示するプログラムを作るという課題です。

HSPでは、以下のようになります。HSPスクリプトエディタに記入してみましょう。

 res = ""
 for i, 1, 101
     if i \ 15 = 0 {
         res += "FizzBuzz\n"
     } else : if i \ 3 = 0 {
         res += "Fizz\n"
     } else : if i \ 5 = 0 {
         res += "Buzz\n"
     } else : res += "" + i + "\n"
 next
 mesbox res, 640,450, 0

[F5]キーを押して実行すると、以下のように表示されます。

  • HSPでFizzBuzzを実行したところ

    HSPでFizzBuzzを実行したところ

このように、プログラムを眺めてみると、BASIC言語に似つつも、HSPならではの味わいを感じる事ができます。繰り返しプログラムを実行するのが、for ... nextで、割り算の余りを求めるのが「¥」です。そして、特にHSPらしい部分が、最終行にある「mesbox」命令です。640x450のサイズでメッセージボックスを作り、そこに変数resの内容を設定します。

おにたまさんにインタビュー

HSPの開発者のおにたまさんは、とても紳士的で優しい雰囲気の方です。プログラミング言語作者つながりで、何度かお会いしたことがありまして、今回、インタビューをさせていただきました。

クジラ飛行机(以下、筆者):おにたまさん、自己紹介をお願いします。

おにたまさん(以下、おに):おにたま(onitama)です。『オニオン ソフトウェア(http://www.onionsoft.net/)』という名前で、30年以上に渡ってオンラインソフトや同人ソフトなどを製作しています。普段は、ゲームを開発する小さな会社で普通のプログラマーとしてひっそり暮らしています。雑誌や書籍でソフトウェア製作講座を担当したりと、原稿執筆も多く行っています。プログラミングを通した技術者育成にも力を入れており、HSPを使った教育なども積極的に行なっています。

筆者:それは、素晴らしいですね。HSPは、私も大好きなのですが、開発者として、HSPはどんな言語か教えてください!

おに:HSPは、個人用、ゲームやツール開発などのホビー向けに利用されており、国内で広い認知と幅広いユーザー層を得ています。解説書籍が20冊以上出版されており、ダウンロード数も30万件以上と、多くのユーザーが手にしています。そして、簡単に覚えられる強力な命令セットと付属エディタにより初心者でもすぐに使い始めることができます。さらに、作ったプログラムは実行ファイルに変換して自由に再配布が可能です。
筆者:やはり、HSPは便利ですね。どんな用途に使われていますか?

おに:ビジュアルノベルから本格的な3Dシューティングまで様々なジャンルのゲーム作成や、システムツール、試作やデータ変換などを手早く行なうツールの作成、デスクトップアクセサリ、スクリーンセーバーの作成などです。

筆者:HSPを使うと、手軽にいろいろなことが実現できますよね。それでは、どうして、HSPを作ったのでしょうか。

おに:もともとプログラミング言語を作ろうと思っていなかったのですが、1995年当時、シングルタスクのOSであるMS-DOSから、マルチタスクのWindowsに時代が変わっていく中で、古くからパソコンが持っていた手軽で気楽なプログラミング・スタイルを残したかったという意識があったのだと思います。MSXやPC-6001など初期の低価格コンピューターが持っていたプログラミングの「楽しみ」のエッセンスとなる部分を伝えていきたい…というのは大げさですが、自分に合った方法でプログラムを作りたかったわけです。

筆者:それは、とても共感できます。私がなでしこを作ったのも同じ理由でした!プログラミングはもっと気軽で楽しいものであるべきですよね。それでは、最後に、HSPについて一言お願いします。

おに:HSPは汎用性や大規模システムを支えることを目指しているのではなく、すべての人にプログラミングの機会を与えることを目標としています。優れた若い年代がプログラミングを学ぶことで、ソフトウェアを使うだけでなく、これまでなかったものを新しく創造するという発想につながっていくと考えています。HSPがソフトウェア技術者という観点だけでなく、広い意味で本当の情報テクノロジーを活かした世代の育成に貢献できたらと思っています

筆者:ありがとうございました。

まとめ

以上、今回は、HSPの雰囲気を紹介し、開発者のおにたまさんへのインタビューをお届けしました。インタビューにもあったように、HSPは、大規模ソフトウェアの開発には向いていませんが、その分、初心者に取っつきやすく、いろいろなことが手軽に実現できる楽しい言語になっています。開発開始から20年以上経過していますが、今もコツコツと開発が続いているHSPです。きっと、これからも、ホビー向け言語として、愛されていくことでしょう。

自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2005年IPAスーパークリエイター認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。