この記事は新歓ブログリレー2024の41日目の記事です。
Hot Soup Processor(以下HSP)を知っていますか? おにたま氏の開発したスクリプト言語で、BASIC言語に似たスタイルを踏襲しています。
この動画でHSPを知った人も結構いるかもしれませんね(今の小中学生の生まれる前の動画!)
私は小中学生のころにHSPを触りました。残念ながら天才プログラマーにはなれませんでしたが、中学時代は昼夜問わず適当なコードを書き続け、アクションゲームを作りました。
この言語を紹介してみます。
良いところ
コードを書く→結果を見る という行為が非常にやりやすいです。
処理が遅くて待つ時間・命令の挙動がよく分からなくて調べる時間が少ないのが、この言語の最大の魅力だと思います。
「コードを書く→結果を見る」というサイクルが回っていくと、ほとんどの命令を理解して、どんなことを実現するコードも思いつけるようになります。コードを手足のように繰り出してロジックが書ける状態です。そうなると非常に楽しいし、コーディングの楽しさを感じられます。
エディタは瞬時に起動し, プログラムはF5キーを押した瞬間に実行
ノーストレスでエディタを開き、ノータイムで実行できます。
コードを実行したいと思ったらいつでも実行できます。
他言語(コンパイル言語でもインタプリタ言語でも)では実行に0.5秒以上はかかるかなといったところです。
命令がわかりやすい・覚えやすい
color 127,0,0
mes "こんにちは"
button "ボタン",*aa
stop
*aa
dialog "こんにちは"
stop
命令がめちゃくちゃ読みやすいと思います。素朴なキーワードで命令が形成されているので非常にわかりやすく、私が小中学生の頃にもすぐに覚えられました。(小中学生は命令が覚えられてもロジックで苦しむことになるのですが……)
F1キーを押すと瞬時にサポートが表示されるので便利です。
なお命令のわかりやすさとコードのわかりやすさはちょっと異なるので注意です。
エラーが読みやすい
よみやすい! 「コードがよくわからないところでエラーを吐いて、そのコードの内部実装のリンクが飛んできて、なにがなんだかわからない」ことを回避しています。こわくないよ。
微妙なところ
一応書いておくと、良いところが大きいと同時に微妙なところもあります。
小中学生にプログラミング言語の学習として勧めるかといえば判断が難しいところです。
個性的な言語仕様
関数はマクロで定義することになりますが、触っていたころの自分は敷居が高いと感じていました。
オブジェクト指向のサポートはあまりなされておらず、高度に構造化されたプログラムを書くことは難しいです。そのためコードが縦長でちょっと読みにくくなりがちです。
BASICと同様にgoto, gosub はあります。人によってはアセンブリ言語のjump命令を思い出すかもしれません。少なくとも今はめったに使われない処理ですが、これに頼っていると他言語への移行で困惑するかもしれません。
(メジャー言語と比べると)コミュニティが小さくて情報が得にくい
やはりマイナー言語なので、インターネット上や書籍で得られる情報も減ってしまいます。
見た目がちょっと古い
画像を見るとわかるかなと思います。たとえば標準のmes命令はアンチエイリアシングがかかっていません。
結論
HSP すき
余談ですがtraPにも毎年のように「中学時代にHSP触ってた」と主張している人がいます。メジャーなマイナー言語かも?
明日は@Alt--erさんの記事です たのしみ.hsp