1 ポイント 投稿者 GN⁺ 2024-06-27 | 1件のコメント | WhatsAppで共有
  • HyperCard Simulatorは、クラシックなHyperCardスタックを現代のWebに取り込んで実行して試せるWebベースのシミュレーター
  • スタックは順序を持つカードの束のように動作し、カードの追加・削除や、アカウントを通じたオンライン共有も可能
  • カードにはボタンとフィールドを配置でき、背景に作成した要素は複数のカードに繰り返し適用しつつ、カードごとのテキストは個別に保持できる
  • 編集はカード上で直接行う方式で、鉛筆・ペイントバケツと白黒・透明パターンによる簡単なペイントに対応
  • スクリプトなしでも使えるが、message boxとScript EditorでxTalkコマンドやmouseUpのようなメッセージハンドラーを扱える

Webで動くHyperCardスタック

  • HyperCard Simulatorは、クラシックなHyperCardスタックを取り込んでブラウザーで実行できるようにする
  • 作者はHyperCardの制作者たちに謝意を述べ、余暇に現代のWebでHyperCardがどのように動作するかを見るために作ったという
  • 関連リソースとしてhypercard.orgMerveilles HyperJamInternet Archiveがリンクされている
  • さらに多くのスタックを探す項目として、More stacksA Few More StacksThe "B–Roll"Collected StacksLots More StacksThe HyperCard Pantechniconが用意されている

カードと背景を中心とした編集モデル

  • HyperCardスタックは順番にめくるカードデッキに似ており、ユーザーはスタックにカードを追加したり削除したりできる
  • HyperCardはスタックを自動保存しており、このシミュレーターではアカウントを作成してオンラインで共有できる
  • 各カードにはボタンとフィールドを含められる
    • 適切なツールを選んだうえで、ドラッグとサイズ変更で編集する
    • ボタンとフィールドはカードまたは背景に作成できる
    • プロパティはダブルクリックまたは長押しで開ける
  • 背景パートは複数のカードに繰り返し適用される
    • 各カードは独自のパートとテキストを持てる
    • 各カードは1つの背景を持ち、背景はカード群の背後にあるレイヤーである
    • 同じ背景を使うカードごとに、背景フィールド内にカード別のテキストを置ける

ペイントとスクリプティング

  • ペイントはカード上で直接処理する
    • 鉛筆またはペイントバケツを使用できる
    • 黒はShift、白はOption、透明はOption+Shiftのパターンとして使う
  • スクリプティングは必須ではないが、シミュレーター自体のスクリプトを見ながら学べる
    • message boxはxTalkの式とコマンドを評価する
    • Script EditorはInformationダイアログから開くか、Command-Option-click、touch-hold、Shiftを押しながらのダブルクリックでアクセスできる
    • スクリプトはユーザーが送ったメッセージを受け取り、beepgo next cardのような動作を実行できる
    • サンプルのメッセージハンドラーは、on mouseUpbeepを実行して次のカードへ移動し、end mouseUpで終わる

1件のコメント

 
GN⁺ 2024-06-27
Hacker Newsのコメント
  • HyperCardが自分の世代より前のものだったのが少し残念。子どもの頃に知っていたら、ほかのことは何もしなかった気がするし、エミュレーターで触ってみるとかなり面白かった。
    人々がプログラミングに簡単に触れられるようにしようとした初期の試みが好き。ずっと弱い形ではあるけれど、最初に使ったときのFlashアニメーションツールにも似た感覚があって、C++でOpenGLやSDLを組み合わせようとするよりはるかにすぐ取っつきやすく、何かを作ること自体が純粋に楽しかった。Flash以降、開発していてそれほど楽しかったツールには出会えておらず、GameMakerもすばらしくて今でも楽しいけれど、Flashほど滑らかでも「何でもできる」という感じでもない。単に自分が年を取っただけかもしれない

    • 今でもHyperCardこそが、エンドユーザー向けアプリを作るための史上もっとも生産的な開発環境だと信じている
    • それにMacromedia Directorもあった。最近はソフトウェアに恋をすることなんて本当にめったにない
    • 手軽なデジタル・インタラクティブを探しているなら、p5.jsが気に入るかもしれない。 https://p5js.org/
      Flashは代替が現れるより早く消えてしまい、Flashがなくなったとき、当時のHTML5が未来であり即時の代替だというのなら、私たちは終わっているのだと非常にはっきりしていた。次に何かを作れるツールを探すなら、FlutterはFlashのように単一のコードベースでどこでも動くという約束を受け継いでいるように見える。ほかに期待している技術はWebAssemblyと、ある程度はRust
    • P5jsProcessingを見てみると、その渇きを少し満たしてくれるかもしれない
  • リンクにマウスを載せるとカーソルが手のアイコンに変わる仕組みは、HyperCardから直接インスピレーションを受けたもの。多くの点で、ブラウザはHyperCardスタックの発展形と見なせる

    • HyperCardにネットワーキングが組み込まれていたなら、それでもWebは生まれていたのだろうかと気になる
  • 子どもの頃、HyperCardSuperPaintは自分にとってのレゴだった。父は計算を走らせるためにMacintoshを必要としていた科学者で、当時、家にコンピューターがあるほとんど唯一の子どものひとりだった。
    HyperCardで小さな仕掛けを本当にたくさん作ったし、白黒モニターのアプリや、単色だけでパターンを生み出していた面白いやり方に強い愛着がある

    • 似たようなものだった。両親は教師で、父はMac実習室を担当していたが、Macに特別詳しいわけではなかった。それでも夏になるとコンピューターは遊んでいたので、1台を家に持ち帰ることができ、最初はApple IIe、その後は初期のMacを使っていた。HyperCardで本当にたくさんの時間を無駄にして遊んだ。
      最初のコンピューターだったApple II GSも、「Apple for a Teacher」プログラムで教師が大幅割引で買えた。カラーモニター付きのMacの前身のようなマシンだった。3-2-1 Contact誌の創作ライティングコンテストで好きなゲームを5本賞品としてもらい、その後しばらくそれで遊ぶにはコンピューターが必要だと両親を説得できた
  • 参考までに、右上のウィンドウ最大化ボックスを押すとHyperCard Editorへズームアウトする。
    まだ空のデッキから始める方法を探っているところで、腕が確実に鈍っている。この環境でHyperCardベースのWebサイト全体をどこまで作れるのかも気になる

    • ハンバーガーメニューに「New Stack...」がある。
      ログインもできる。
      https://hcsimulator.com/mmphosis/Stack
    • 新しいカードを作って、次のカードや線形カードスタック内の好きな場所へリンクするボタンを作ればいい。トランジション、エフェクト、タイミングは、栄光に満ちたピクセル感あふれるエディターで扱える
  • HyperCard時代を体験するには若すぎた立場として、その中核的な魅力が何だったのか気になる。技術のアクセシビリティだったのか、それとも単純に実行が本当によくできた製品だったのか?

    • 両方だった。HyperCardは単純な比喩と文法によって、GUIの力をユーザーの手に渡した。言語は書きやすいと感じられる程度には英語に近かったが、実際にはできないことまでできると錯覚させるほどではなかった。Inform 7を思い出す。
      ウィジェットにコードを視覚的に結び付ける方式だったので、ボタンをクリックしたりテキストフィールドに入力したりすると、このコード片があの動作を生んでいるのだという感覚がはっきりしていた。しかもHyperCard環境はオブジェクト永続性も実装していたため、ファイル処理コードや「状態保存」機能を自分で書く必要がなくて便利だった。もちろん、その意味論のせいでスタックを壊すと原因を見つけて直すのが難しくなることもあったが、全体としては透過的なオブジェクト永続性が大きな長所だったと思う。
      そしてMacを持っていれば、文字どおり最初からそこにあった。Appleは一時期これを49.95ドルの単体製品として販売したあと、約10年間、すべての新しいMacにバンドルし始めた。System 6、7、8、9が入ったMacならHyperCardがあり、その時期にはApple IIGSにも含まれていた。制約はあったにもかかわらず、かなり本格的なアプリがHyperCardで実装されていたのも見た記憶がある。
      何よりHyperCardは、コンピューターがBASICインタープリタに直接ブートしていた時代のあとに失われていたやり方で、パーソナルコンピューティングを再び個人的なものにしてくれた。そしてそれはとても良いことだった。この説明で足りなければ、この抜粋を見ればよい: http://www.cvxmelody.net/HyperCard%20IIGS%201.1%20-%20The%20...
    • 5年生のとき、HyperCardは自分にとって初期のソフトウェア開発のようなものだった。放課後に何時間もかけてゲームや選択式アドベンチャーを作り、goto文、ループ、アニメーション、「クリックしたらこの音を再生してこのページへ移動する」といった単純な関数などを入れられた。完全に夢中になっていて、たぶんBBS開発への情熱にもつながったと思う。
    • WebやFlashが存在する前のことだった。非プログラマー向けの比較的シンプルなマルチメディア/インタラクティブ制作ツールで、WYSIWYGレイアウトを備えていた。データベースとやり取りするものから、子ども向けの学校の物語まで、ありとあらゆるものをHyperCardで作れた。
    • HyperCardと、そこで結び付けられたカードという概念に初めて触れたとき、つまりハイパーテキストが頭を吹き飛ばすような感覚だった。多くの人にとっても、自覚していないだけでハイパーテキストへの最初の入口だったのではないかと思う。当時のAdobe Flashだった。
    • そうだと思う。
      制限はあったにせよ、GUI作成をPowerPointを使うくらいの複雑さまで下げてくれるRAD要素付きの、よくできたSmalltalk風の言語だった。「賢い」子どもに与えても、ごくわずかな説明だけで少なくともインタラクティブフィクションは作れた。HyperCardスタックの大半は、非線形のPowerPointスライドデッキと見なせるもので、ボタンがgoto文を呼び出して別のカードへジャンプするカード群だった。
  • 90年代に子どもで、家族用Macで動いていたいくつもの小さなゲームやプログラムについてぼんやりした記憶がある。最初のMacはたぶんMac SEだったと思う。今にして思えば、それらはおそらくHyperCardプログラムだった。
    黒猫についてのインタラクティブな絵本のようなものが1つあったが名前は忘れてしまった。ただMacintosh Gardenにあるのは知っていて、99% HyperCardだったと思う。父がSorobanというプログラムをくれたのだが、基本的にはそろばんで、簡単な算数の問題を出して、それをそろばんで計算して答えを出すようなものだった気がする。父が自分で書いたのかもしれないが、確信はない。残念ながら今はそろばんの使い方を覚えていない。当時出会った、あまり知られていないHyperCardプログラムには何があったのか気になる。

  • 参考になるかもしれない: Carson GrossはHyperCardに触発された言語である_hyperscript[0]を作っており、この言語はブラウザで解釈される。
    同じCarson Grossがhtmx[1]も作った。両者は別プロジェクトだが、一緒にうまくかみ合う。
    [0]https://hyperscript.org/
    [1]https://htmx.org/

  • なんと、ここには30年前に自分が作ったスタックが入っている! 残念ながらシミュレーターではちゃんと動かない。

    • どんなスタックなのか気になる。懐かしさで触ってみたいなら、今でもほかの実行手段はいくつかあるし、HC Simulatorの作者もちゃんと動かないものを直すのにはかなり素早く反応してくれる。
  • ずっと気になっていた疑問がある。当時 HyperCard がしていたことを、今日そのまま実現する現代のツールは何だろうか? HTML/JavaScript だろうか?

    • HTML/JavaScript は、HyperCard と同じ意味での「ツール」ではないと思う。
      HyperCard の本当の強みは、一般ユーザー、つまりプログラマーではない人たちが、ポインティングとクリック、そして英語に似たスクリプト言語である HyperTalk を通じて、自分のアプリ、HyperCard の用語で言えば「スタック」を作れるようにしたことにあった。
      私たちは、ユーザーが自分のアプリを作れるべきだという考えをおおむね捨ててしまったため、HyperCard に相当する人気のある現代的アナロジーはない。それでも作り続けている人たちはいる。たとえば LiveCode は HyperCard から直接着想を得た商用製品で、CardStock は英語に似た言語の代わりに Python を基本スクリプト言語として使うオープンソースの HyperCard クローンだ。
      https://livecode.com/
      https://github.com/benjie-git/CardStock
    • 多くの人がこの質問をしてきた。Web 向け GUI ビルダーを含め、単純な GUI ビルダー系ツールはいくつもあるが、HyperCard が満たしていた 需要と供給の絶妙な交点 のため、どれも大衆化していない。
      HyperCard が登場したとき、それはすべての Mac に同梱されていて無料であり、Mac 上にはそれに近いものが存在しなかった。代替手段は、GUI ビルダーなしでコードで UI ウィジェットを配置するか、後には CodeWarrior のようなプロ向け IDE に大金を払うことだった。予算のない入門ユーザーが Mac 用 GUI ビルダーを望むなら HyperCard を使うしかなく、そうでなければ何も使えなかった。この構図が HyperCard 愛好家コミュニティを生んだ。
      また当時の Mac は標準画面解像度を持っていた。販売されるすべての Mac の解像度が 512x342 ピクセルだったので、どの Mac でもカードがどう見えるかを確実に把握できた。リサイズ可能な GUI のサポートは、どんな GUI ビルダーでも最も難しい課題のひとつだ。画面がスマートフォンのように極端に小さくなったり、16:9 モニターのように非常に横長になったりしたとき、ボタンをどう配置するかといった問題があるからだ。今日の Xcode は、開発者が GUI でリサイズ可能な UI を作れるように高度な制約ソルバー/定理証明器を使っており、かなりうまく動作していると思うが、「ボタンを画面にドラッグして置けば、どこでもそのまま正確に見える」というほど学びやすくはありえない。
      現代の HyperCard 志向ツールにとって本当に致命的な最後の理由は、Web GUI ビルダーから生の HTML/CSS へ移るまでの距離が短いことだ。プロ級の HTML、CSS、JavaScript にアクセスするために大金を払う必要はない。学ぶのが簡単とは言えないが、子どもにインタラクティブな Web ページの作り方を教えること自体は問題ない。
      そのため、単純な GUI ビルダーへの需要は HyperCard 時代より低く、ユーザーを引き留めてもすぐに製品を卒業してしまう傾向があり、競合も非常に多いため、どのツールも実際に勢いのあるコミュニティを作るのが難しい。
    • HyperCard はもっと制約が強く、その制約が創造的な解決策を強制する役割を果たしていた。同時に アクセシビリティ は HTML/JS をはるかに上回っていた。それでも最も近い比喩は HTML/JS かもしれない。
      HTML だけに限っても、作る楽しさは HyperCard に遠く及ばない。
    • ひとつの例としてはこれがある: https://internet-janitor.itch.io/decker
      基本的には HyperCard に少し似て見える。低解像度風だが、内部的には色もある。
    • 私の考えでは、そういうツールは存在しない。HyperCard がしていたことに「似たこと」をするツールが今ないからではなく、そうしたツールがあれほど自然に、そして中核的に適合する パーソナルコンピューティング環境 がもはや存在しないからだ。
      HyperCard は、パーソナルコンピューターの利用者が、コンピューターを使うとはどういうことかをまだ学んでいた時代に現れた。まさにその瞬間こそが、エンドユーザープログラミングと HyperCard のような改変可能なシステムが主導できる時代だった。OpenDoc についてもある程度同じことが言えるが、少し違う。
      企業の視点から見ると、HyperCard はいったい何だったのだろうか? コンピューター利用者が自分の基本アプリをそのまま作れるようにする方法だろうか? では、どうやって継続的に収益を上げるのか? コンピューターの開発者コミュニティはどうなるのか? こうした商業的懸念のために、今日ユーザーがパーソナルコンピューティングに関わる方法や、私たちがコンピューティング環境を操作するツールは、どれも消費モデルによって強く規定されており、ユーザーとプログラマーの間には強い分断が存在する。
      今日、本当の意味での HyperCard の対応物が存在しないのは、パーソナルコンピューティングが別の方向へ進んだからだ。
  • これは Decker と比べるとどうだろう?
    https://beyondloom.com/decker/index.html

    • HyperCard Simulator は、歴史的な HyperCard スタックと HyperTalk スクリプト言語との互換性を目指す、中央集約型の Web ベースサービスだ。
      Decker は HyperCard とある面では似ているオープンソースのスタンドアロンアプリだが、APL に由来する独自のスクリプト言語を使うなど、細部ではかなり異なる。Decker は HyperCard スタックとの互換性を持つようには設計されていない。
    • このシミュレーターを腰を据えてしっかり使う機会はまだなかったが、Decker と HyperCard の両方を使ったことがある立場からすると、Decker は初心者にとって学習曲線がずっと急だ