なぜHSPでプログラミングするのかという議論(Rubyの作者であるまつもとゆきひろ氏の日記)から派生しました。
元記事
反応リンク
2004-08-31
2004-09-06
2004-09-25
2004-09-26
2004-09-27
2004-09-28
2004-09-29
2004-09-30
2004-10-01
2004-10-02
2004-10-05
2004-10-06
2004-10-08
2004-10-31
2005-04-13
話の争点としては、
- HSP(という言語)だから評価されているのか
- HSP(という言語)なのに評価されているのか
なのですが、これを読んだ人はどちらだと思いますか?
- 僕は夏休み中気がむいたらのスタンスで
2、3冊Rubyの本を読んだのです、
確かにインタプリタとしてのRubyは充実していると思います。
でもアプリケーションを作成する環境はHSPですよね。
どっかでプログラムをRubyでコンパイルして早期のデバッグに入る
みたいなことを書いてあるのを目にしました。
Rubyでプログラムを組んでHSPの文法に置き換えてアプリケーションを作成するというのが
一番あって欲しいなあと思うことなんだけど、
(たぶんそれは僕の夢のままでしょう C言語に翻訳する方向だし)
Rubyの作者さんとHSPの作者さんで共有できるソースを共有して
共存していって欲しいなあとは思うんだけど
そっちの方向の文章ではなかった事は残念ですね。
LIST
- Ruby側は全部公開しているわけですから、必要なのはHSP側のアクションですよね Matz
- The Tcl Warの焼き直しかな?もちろんStallmanは「TclをやめてSTkにしよう」と呼び掛けるのですけど。
- HSP開発者はその気になればRubyを言語としたHSPを作ることができるわけだ。ライセンスのことがあるから話はそれほど単純ではないけど。
- HSP on Rubyは、作った所で使う利が薄い。ソースの共有も、言語の性格がかなり異なるから、益にならない。比べる事は有意義でも、無理にHSPとRubyを繋げる事はない。
- Rubyの開発者からすると、HSPへの慣れを完全にご破算にしてHSP on Rubyを習得するほうが良い。と考えているとも受け取れる。
- どちらでもない。言語仕様の評価以前の段階で勝負はついている。
あなたが思うHSPの良いトコロ
HSP VS Ruby論争から約半年。これを機にあなたがHSPを使う理由・あなたがHSPを始めたきっかけ・あなたが思うHSPの良いトコロ等を考えていきましょう。
- 僕がHSPを使い始めたきっかけはJavaScriptで簡単なテキストRPG作ってたのですが、簡単なテキストRPGにも関わらずJavaScriptなためソースが丸見えで、こりゃデータ改造して下さいと言ってるものだなと思ったことと、Cookieの保存の仕方がよくわかんなくて挫折(復活の呪文作ろうかとも思った)HTMLやJavaScript並に手軽な言語でありながらコンパイラであり(ソースが簡単には見えない)かつ簡単に保存ができるところからですね。今でも簡単なテキストRPG作ってます。(コンテストに応募するかは思案中)ブラウザRPGみたいなのを作ろうと思ったらHSPはホントに使い易い言語だと思っています。以上言い出しっぺとして、LISTでした。
- 一応、補足しておくとHSPはコンパイラ(言語)ではありません。分類上は元々のBASICなどのインタプリタまたはJavaなどの中間言語ですが「コンパイル」という言葉を使っているために非常にややこしいですね。HSPでの「コンパイル」とはHSPスクリプトソースから中間オブジェクトファイルを作成することなのでちょっと違います。まあ、Cなどのコンパイラが出力するオブジェクトファイルも中間ファイルなので微妙っちゃあ微妙なんですが・・・。最終的にEXEを作成しているのはリンカでコンパイラはオブジェクトファイルを作成することしかできない。HSPはプリプロセッサ,コンパイラ,リンカ(?)が一つ(hspcmp.dll)なので余計に分かりにくいですね。(コンパイラとリンカはHSPにおけるそれでありますがCコンパイラなどにおけるものとは全然違う性質のものです)
- Cのオブジェクトファイルはアドレス解決ができてないだけで、マシン語そのものです。リンカがアドレス解決をします。HSPコンパイラの出力は中間言語なのでアドレス解決が不要でリンカも不要です。
- HSPは、3になって関数を実装しましたが、この変化によって、まつもとゆきひろ氏の
HSPに対する評価は、少しは変わるでしょうか? くに
- HSPにとって、”まつもと氏個人"がどう思うかはあまり重要じゃないと思いますが、関数以外にも、まともに構造化できる様になったりしてるので、変わるかも知れません。しかし、それは良くなったというよりはマシになったくらいだと思います。言語としてみると、ローカル変数も限定的だったり、COMの様な環境依存のものを本体機能としてフィーチャーしたり、色々と未熟です。
しかし、善くも悪くもHSPはプログラミング"ツール"です。言葉(コード)の美しさも大事ですが、それ以上に簡単な事、便利な事が優先されます。そういった視点からは、HSPは他の言語よりも優れています。だから、言語屋である”まつもと氏個人"がどう思うかは重要じゃない、そう思うんです。(視点が違う。もちろん、言語屋さんから見たHSPという意味ではとっても貴重な意見。) もしかしたら、方向性を見失ってるHSPvsHOGEの方も、そういう視点で見直すと面白いんじゃないでしょうか。
- 確かに、HSPの機能は、便利だと思います。簡単に実行できますし。
ですが、言語として、改良の余地があるのなら、積極的にするべきではないでしょうか?
そういう意味で、HSPの言語的な弱さを分析して、そこを補強しようという意味で、
HSPvsHOGEを作ってみたのですが、プログラミング言語の比較は、難しいです。
今の僕には、ちょっと無理そうです。すいません。くに
- もちろん前述の通り、まつもとさんの意見も貴重だと思います。普通の人では気付かない仕様のマズさとかも気付ける人だと思います。また、なるべく単純・明快なものを目指す方でもあるので、HSPに興味を持ってもらえたなら、きっと改良の意見もいただけるでしょう。重要じゃないと書いたのは、ツール的簡単・便利さよりも言語的美しさが優先されそうなので、HSPとは方向性が必ずしも一致しないんじゃないかと思ったからです。
- どうでしょう。HSPはバージョンを重ねるごとに汚くなっていきますからね。HSP3に関数が実装されたのは、マイナス評価だと思います。なぜなら命令が残っているからです。一つの言語が二通りの書き方を提供するのは一番やってはいけないことのひとつです。もはやまつもと氏の眼中からは消えてしまったかもしれません(そもそも眼中になかったけどちょっとからかってやったといったところでしょうが)。便利さから見てもHSPは他言語の足元にも及ばないし、簡単さもどんどん失われていっていますね。これからHSPはどうなるのでしょう?
- からかってたわけじゃなく、言語的側面から見れば必ずしも優れてはいないのに、なぜユーザーを惹きつけるのかって事を言語設計者として興味を持ったんじゃないですか?そのときは。(そんな性格がひねくれた人じゃぁないでしょ。)関数に関しては、ユーザーの希望だったってのが相当大きいと思います。簡単・便利さに関しては見方によるかもしれません。特に導入やGUI、実行ファイル作成(=本来言語仕様として入って来ないツールとしての側面)では簡単・便利だと思いますが。(本格サバイバルナイフと、十得ナイフの違いみたいな。で、3.0で新たにハサミが付いたみたいな?)ついでに、作者や多くのユーザが日本人なので、質問しやすいとかも。
- HSPがユーザを獲得しているのは便利とか簡単とかではなく、一重に宣伝がうまかったからと言えます。本とか見てると、よく言うなぁと思う。(言語というのは別に製品ではないから、ユーザを多く獲得するのが目的ではないので)今までまともな宣伝がされてきませんでしたが、HSPはその点積極的にアピールしていったことはうまいと思います(実際、今まで小学生を対象にしたプログラミングの本なんてまずありませんでしたよね)。ただ、最近はエンドユーザプログラミングも決してマイナーではなくなって来ていて、他の言語も(というかその本を売りたい人たちが)どんどん攻勢をかけて来ているので、物が劣っているHSPはほかの戦略を考える必要があるかもしれません。
- だとすると、もし、HSPがあまり宣伝されていなかったら、他の言語が、
同じ地位に着いたのでしょうか? 僕は、Tcl/Tkや、Pythonなら、ありうりそうな気がしますが。くに
- う〜〜ん。まだそういう環境には無かったと思います。今でこそmission Cのような本(ゲーム?)もありますが、初心者に本格的な言語を使わせるのはなかなか難しいでしょう。
個人的には、これからはECMA Scriptが台頭するのではないかと思います。事実上Webの標準だし、Flashもかなり普及してきたし、JScript.NETは実行可能ファイルも作成できます。 プラットフォームもWindowsを離れてWebベースになっていくのでしょうか。
- 環境的には、どうなんでしょうか? 昔のことは、僕にはよく分からないです。
ただ、HSPは、他の言語よりも、先行して日本で使われ始めたので、その分有利だったのかもしれません。それは、ともかくとして、ECMA Scriptが台頭するかどうかですが、僕は、
ECMA Scriptと言うよりも、スクリプト系の言語が、CやJavaといったシステム系の言語に
取って代わりそうな気はします。また、Webベースと言うのも、ありうりそうです。
たしか、OSですら、サーバーからDLして、コンピュータを使うと言う話を
聞いたことがあったような気がしますから。くに
2006-12-9
- 再び、まつもとひろゆきさんの日記にHSPに関することが書いてありましたね。kuniさんってくにさんのことですか?まつもとひろゆきさんの日記へのコメントで出てきたからちょっとびっくりしました。しかも、そこで僕の書いたページへのリンクが書いてあって2度びっくり。オブジェクト指向は本しか読んでなくて、全然わかってなくて、そんな僕のスクリプトがオブジェクト指向プログラミングと銘うたれているRubyの作者様へのコメントにリンク書くなんて、なんたること。りすと?
HSPのRubyに対してのメリット
- VECTOR等を見ていてRPGツクールが2003からXPに変わってRPGツクールで作った作品がガクッと減ったと思いませんか?RPGツクールXPはRGSSを搭載して自由度はものすごく高まったというのに。理由は色々あると思うけど、僕はその一因として、できることが多いとプログラミングの成果が減るということを挙げます。色々できる→色々やる→目標としていたプログラムを作る時間が減る。こういうプロセスもあると思います。確かにHSPはRubyに比べて自由度は低いですが、その分色々とやらないのだと思います。HSPコンテストの盛況ぶりがその根拠に挙げられます。それに加えてHSPの敷居が低いこともHSPコンテストの盛況ぶりに一役買っていると思います。やっぱ一番情熱的にプログラミングをするのって、覚えたての頃かもしれません。僕もそうでした。歴が長い人イコールプログラミングに情熱を持っていないとは言いませんよ。やってる人はやっている。でもプログラミングから距離を置く人もいる。そういう事だと思います。りすと?
|