メインコンテンツへスキップ

HTMLに新機能登場!commandとcommandforがもたらすインタラクティブな未来とは

·2 分
2025/03 HTML インタラクティブ プログラミング ウェブ開発 新機能

HTMLに新機能登場!commandとcommandforがもたらすインタラクティブな未来とは

引用元:https://news.ycombinator.com/item?id=43292056

QuadmasterXLII 2025-03-07T17:51:36

プログラミング言語理論の研究者たちは80年代から“goto”のより強力な兄貴分“comefrom”について語ってたけど、Intercal でようやく実装されたんだ。Cみたいな言語よりは安全性、パフォーマンス、使いやすさが明らかに優れてるけど、商業市場に浸透するのが難しかったみたい。悪い方が良いってのが理由かも。Javascript がこの機能を取り入れたのは嬉しいし、これが丁寧なプログラミングの流行につながってくれたらいいな。

bunderbunder 2025-03-07T21:00:42

Haha、Intercal と“comefrom”をすっかり忘れてたよ。ほんと天才的な考えで、良いプログラミングデザインパターンを維持・サポートするのに苦労してた問題を40年も前に予測してるね。

harrison_clarke 2025-03-08T05:18:00

C#にも COMEFROM があるよ: https://github.com/dotnet/roslyn/blob/main/docs/features/int… 使うのは面倒だけど、不可能ではないね。

alterom 2025-03-07T18:04:36

>“丁寧なプログラミングの流行に繋がるといいな”とは言ったけど、でもあまり丁寧すぎるのもダメだね。コンパイラはそれを好まないよ。

esafak 2025-03-07T18:42:59

最近は“控えめ”がトレンドらしいよ。

BobbyTables2 2025-03-07T23:54:59

まるでガチの Sigma が、いいとも、そんなんだ。

krapp 2025-03-08T01:46:43

お母さんによろしく。

mock-possum 2025-03-07T22:21:24

うん。

fuzztester 2025-03-07T22:44:28

まあ、少なくともBooコンパイラは好まないだろうね。 https://en.m.wikipedia.org/wiki/Boo_(programming_language)

SAI_Peregrinus 2025-03-07T18:34:40

もちろんそうだね。おべっかを使うコードは本当にうるさい。

fuzztester 2025-03-07T23:10:55

ダウンロードサイトはどこ?Psycho fanatic言語、お願い!

Thorrez 2025-03-08T15:31:40

commandとcommandforってcomefromと似てるのかな?gotoとも似てる気がする。gotoはトリガーが何をするかを指定するけど、commandとcommandforもそれと同じだよね。comefromは何をするかがトリガーを指定する。これはJavascriptのdocument.addEventListener()と似てる。

ancyrweb 2025-03-10T03:42:36

いや、似てないと思う。gotoとは全く違うし、単なるメソッド呼び出しって感じで、gotoとは関係ないよ。

btown 2025-03-08T19:07:58

古いけど、comefromとgotoのPython実装(俺のじゃない)。これはpypyパッケージよりも前のやつだよ。やっぱり理由があるね!

stonogo 2025-03-07T22:02:30

Perlは数十年前からcomefromをサポートしてるよ!

fuzztester 2025-03-07T23:30:06

え、Perlはサンスクリットをサポートしてるの?それともRakuは?文法機能があるから、もしかするとサポートするかも。

chuckadams 2025-03-08T01:35:41

サンスクリットはデーヴァナーガリー文字で書かれていて、これを使う人は10億人近いから、Unicode識別子を扱える言語なら問題ないよ。挑戦したいならRongorongoやクシンゴンでどう?俺は実際のヒエログリフでコーディングしたい。

chrismorgan 2025-03-08T06:18:15

サンスクリットはデーヴァナーガリー文字で書かれる(今はほとんどそう)。ただ、ネイティブ文字はないんだって。Unicodeのスクリプトであれば大丈夫だよ。

shakna 2025-03-08T01:57:53

TeXはパーサーを再構築でき(ala TeXInfo)、Unicodeエンジンを使えばUTFも使える。TeXはフォントの埋め込みもできるし、Lyxを使えば埋め込んだフォントを書いて見ることができる。

fuzztester 2025-03-08T03:25:29

コメントにたくさんの誤りがあるね。インドに住んでるインディアンと話してるってこと、理解してる?サンスクリットの勉強もしてるんだから、意見をちゃんと考えた方がいいよ。まあ、Googleで調べてもいいけどね。Smartでデータを見てみるといいよ。

もっとコメントを表示(1)
chuckadams 2025-03-09T03:55:57

お前、冗談が通じてないんじゃね?治療を受けた方がいいぞ。

fuzztester 2025-03-14T00:01:48

お前の考え方は弱すぎるし、自分に劣等感があるのが丸見えだ。俺のコメントにいきなり攻撃してきたけど、みんなお前に何も期待してないから。お前みたいなクズの意見を気にするやつなんていない。社会人としての自覚を持てよ、そんなことで人を攻撃してる場合じゃないぞ。

zaphirplane 2025-03-08T03:28:04

それ面白い、俺はそれを冗談だと思ったよ。

ncr100 2025-03-08T04:06:09

同意だ。ちょっとオタクすぎる感じがする。

jayd16 2025-03-07T19:27:14

全体の理論がわからないけど、非JSデベの俺にはイベントにちょっとオブジェクト指向の甘さを加えただけに見える。ちょっと冗長な気もするけど、グローバルリスナーよりは良いかも。

gmueckl 2025-03-07T19:55:15

COMEFROMはIntercal言語の面白いジョークの一つだ。言語仕様書を読むことを勧めるよ。

Voultapher 2025-03-08T12:05:28

Intercalのプログラミングマニュアルを探してみたけど、comefromの記載が見当たらなかった。

mannykannot 2025-03-08T18:29:41

C-INTERCALと呼ばれる方言から来ていて、スペースを入れて書くと『COME FROM』になる。

DonHopkins 2025-03-07T19:00:10

逆計算の『gofrom』や『cometo』だって忘れちゃいけないよ。

mindcrime 2025-03-07T23:40:08

俺の新言語には『thataway』や『overyonder』『uptown』の構文を含めるつもり。

DonHopkins 2025-03-08T01:36:53

2のブギー、さあ跳んでみろ

edoceo 2025-03-07T23:10:44

呼んでるかい

yellowapple 2025-03-08T03:43:55

どこから来たのか

fc417fc802 2025-03-07T23:05:40

>”オプションの同義語について”
Leaveは分かるけど、「return from」は続きとして正しく描写されてると思うよ。対して「come from」は非局所のgotoじゃない?

fuzztester 2025-03-07T23:33:28

継続についての理解が始まる前に止まったわ

fc417fc802 2025-03-08T08:25:06

真剣かどうか分からないけど、継続は面白いから、誰かの役に立つかもと思って投稿するね。混乱するけど、慣れればそうでもないよ。スタックフレームを独立した状態としてモデル化するんだ。戻るとき、スタックフレームが残ることを考えてみて。その後、戻ったフレームにスタックポインターを戻そうとする。引数を渡すための規則も加えると、継続が分かるようになるよ。

bryanrasmussen 2025-03-08T11:00:37

戻ったフレームにスタックポインターを戻す?そこが継続が分からなくなるポイントだよね。

cyco130 2025-03-08T13:09:19

その部分が難しいよね。もうスタックはないんだ。関数のアクティベーションレコードはヒープに割り当てられて、必要なだけ残ることができる。

qwery 2025-03-08T04:32:27

>ボタンはウェブでのインタラクティビティの基盤だっていうのはすごくうまいまとめだと思う。確かに、インタラクティビティの基盤を提供するのはハイパーリンクだよね。

afavour 2025-03-08T05:24:11

ハイパーリンクはインタラクティブじゃない気がする。あれはブックマークのようなもので、リンクをクリックしてページ間を移動するだけだし。

もっとコメントを表示(2)
porridgeraisin 2025-03-08T05:32:13

ハイパーリンクとクエリパラメータでインタラクティビティを実現する例もあるよ。例えば、テーブルをソートする時にカラムヘッダーをリンクにして、?sort_by={colname}を追加してサーバーに知らせる、とか。

xg15 2025-03-08T09:58:10

確かに厳密に言えば、GETリクエストはサーバーの可視状態を変更すべきじゃないから、ソートはインタラクティブとは言えないかも。新しいコンテンツを追加するにはPOSTが必要だし。

social_quotient 2025-03-08T12:20:52

GETパラメータでのソートはサーバーの状態には影響しないけど、クライアントから見るとソートしたデータは意味があるよね。切り分けが難しいけど、このルールについてもっと知りたい。

xg15 2025-03-08T12:52:52

ごめん、ソートを忘れてた。クエリの結果をソートするのはサーバーサイドでGETリクエストでも問題ない。ただし、デフォルトのソート順を設定するのはNG。

neuroelectron 2025-03-08T12:10:16

GETリクエストはログが残るから、サーバーの状態が変わることもあると思う。ログの解析でエラーも起こるから、注意が必要。

xg15 2025-03-08T12:14:07

GETリクエストはサーバーでの可視的な状態を変更すべきじゃない。例えば、GETで投稿を追加するとルール違反になるんだ。

afavour 2025-03-08T05:38:24

技術的なことで言うと、ボタンとJSの結果は同じ体験だと思う。ただし、遅延があるけど。

lelanthran 2025-03-08T15:16:55

>ハイパーリンクとクエリパラメータを使うって、サーバー処理なしでもできるよね。ページが返ってきた後、クライアントで処理してテーブルを並べ替えられるし。

furyofantares 2025-03-08T06:45:13

そうだよね、でもそれもボタンとして実装されてたんじゃない?input type=”submit”は1993年にはボタンを表示してたと思う。JavaScriptなしでリンクのように動作して、でもボタンだったんだよね。

pmontra 2025-03-08T07:39:49

当時の一番目立つ違いは、リンクの行き先がブラウザに明示されてたのに対し、inputボタンは完全に不透明だったことだよね。画像を使ったボタンをa hrefタグの中に作って、GETリクエストを発生させてた。POSTリクエストをする唯一の方法は、フォームの中のボタンだった。

ancyrweb 2025-03-10T03:45:57

著者が言いたいのはおそらくハイパーメディアのことだね。ボタンとリンクはただの手段で、ユーザーがクリックしたりマウスを動かさない限りインタラクティビティは発生しない。クライアントだけのインタラクティビティについても話せるけど、その話題ではないね。

smac__ 2025-03-08T12:43:32

例外として考えられるのは、
- URLハッシュリンクとCSSの:target擬似クラス。
- iframeをターゲットにするリンク。
これらのパターンを乱用することを勧めるわけじゃないけど、軽いインタラクティビティには使えるよ。

spoaceman7777 2025-03-08T14:11:32

それらは単にハイパーリンクがボタンのように振る舞うための追加機能だよ。ただし、厳密な定義では「ハイパーリンク」は二つのウェブページをつなぐリンクだからね。

skobes 2025-03-08T13:06:03

著者がウェブのインタラクティビティの基礎について考えたのか、ただAIにいい感じのイントロを書かせたのかはよく分からないな。

msub2 2025-03-07T17:51:29

InvokersはChromeだけのものじゃないよ、気になってる人のために言っておくけど、すでにFirefoxのナイトリービルドにも入ってるからね。
https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonE

Kerrick 2025-03-07T18:00:04

WebKitは「サポート」立場を取ったみたいだね。
https://github.com/WebKit/standards-positions/issues/264

jt2190 2025-03-07T17:50:13

仕様について:
button要素, commandfor属性:
https://html.spec.whatwg.org/multipage/form-elements.html#at
button要素, command属性:
https://html.spec.whatwg.org/multipage/form-elements.html#at

hoc 2025-03-07T18:14:03

これはほんとにNextやBe、Appleが30年前に使用したアクション/メッセージングパターンなの?それとも何か見落としてた?有用だったけど、結局はインターフェースベースのコントローラーパターンに進化したと思う。多くの改善要求が出てくるだろうね。

wruza 2025-03-08T00:45:40

Webが15年遅れてると思ってたけど、実は30年古い技術に追いついてるんだなって感じ。こんなニュースはムカつくね。自分が使えるものになると思ってたけど、膝の変形性関節症になっちゃって、まだ使い物にならない。悲しい気持ちだわ。

9dev 2025-03-08T08:03:00

何が役立つものになる可能性があったのかな?

もっとコメントを表示(3)
dartos 2025-03-07T19:00:17

新しいアイデアではなく、ChromeとWebの仕様に実装されたってだけだよ。

nikeee 2025-03-07T19:58:36

>”新しいcommandとcommandfor属性が、popovertargetactionとpopovertarget属性を強化・置き換える。”
これって新しい基本機能になったってこと?置き換えるってどういう意味?将来的に不要になったら消されたりするのかな?今後追加されるものについて、開発者たちは本当にその影響を考えてるんだろうかって疑問に思う。

mubou 2025-03-08T02:34:23

私もそれは変だと思った。先にメディアコントロール向けに実装してから、後でpopovertarget属性を統合する方が理にかなった気がする。これってウェブ機能の最速廃止記録かも。

mpalmer 2025-03-07T21:10:40

私の脳の働きなのか、美的な問題なのか分からないけど、文字列でプログラミングするのが全然ダメ。特にアクセシビリティの利点は理解できるけど、要素IDを使うことにはあまりワクワクしないな。

qwery 2025-03-08T05:20:05

文字列のコードは私のお手本のようなコード臭。できるし、正しく書けばうまくいくけど、結局は問題を先延ばしにしてるだけ。HTML要素は文書を表すものなので、自然に文字列的だけど、複雑なアプリケーションでは物足りない。これはハックだよ。とはいえ、話題の機能が悪いわけではない。ただのハックだと思う。

ximm 2025-03-08T08:38:52

それには同意するけど、少なくとも一貫性はあるよね。’for’、’list’、’aria-labelledby’、’aria-describedby’などの属性もこういう風に機能するから。

hdjrudni 2025-03-07T21:27:46

私もあまり好きじゃないけど、フレームワークでカバーできるし、フレームワークが合わなければ良い構成要素にはなると思うよ。

mpalmer 2025-03-07T21:34:50

そうだね、間違いない。ただし、イベントは素晴らしいと思うし、これは既存のフレームワークあってもシンプルになると思う。テンプレートを使わない限り、Epipenをしまえるよ。

conartist6 2025-03-08T00:14:48

あなたの言いたいこと、わかるよ。

gred 2025-03-08T21:02:12

2025:>”HTMLはボタン用にonclickハンドラーを提供するけど、これらはCSPルールの関係でデモやチュートリアル以外では禁止されることが多い。”
2033:>”HTMLはボタン用にcommandとcommandforハンドラーを提供するけど、これらはCSPルールの関係でデモやチュートリアル以外では禁止されることが多い。”

darth_avocado 2025-03-07T17:54:31

僕の失読症の自分は、HTMLのcommandにワクワクしたよ。

DeathRay2K 2025-03-07T19:14:44

今日、Red AlertをThree.jsに移植しているプロジェクトを見つけたよ:
https://github.com/chongdashu/CnC_Red_Alert-ThreeJs

k6hkUZtLUM 2025-03-07T18:29:41

僕もそう思った。ボタンについて読んでいて、ゲームはどこにあるんだろうって思ったよ。でもボタンは面白いね。

netghost 2025-03-07T18:22:54

ボタンについて読んでいる時、これがCommand and Conquerを新しい形でトランスパイルするのにどう機能するのかを期待してたよ。新機能は本当にありがたいけど。

vFunct 2025-03-07T18:10:03

完全なAPIなしで実装したのはどうかと思う。5つのコマンドだけじゃなくて、HTML経由で全てのJavaScript機能を実装できる可能性があるから、数千のコマンドにもなるかもしれない。

PokestarFan 2025-03-07T19:17:41

実装は難しくないと思うよ。コマンド文字列をこう変換すればいいんじゃないかな:
1. ダッシュで分割して配列にする
2. 最初の配列の最初の文字を小文字、他は大文字にする
3. くっつける
4. document.getElementById(element.commandfor)[concatenated]()を使う。もちろん、要素が存在するか、メソッドが存在するか、パラメータがないかのチェックはしてないけど。でも、カスタムコマンドも簡単にできるようになるよ。

rafram 2025-03-08T12:37:10

これはインラインJSの安全な代替品を目指しているから、任意のJSを実行するのは逆効果だと思う。

Someone1234 2025-03-07T19:08:28

実際の力はカスタムコマンドとそれを実装する標準的な方法にあると思う。標準のコマンドは常に便利なだけで、多くの人が複雑さが増すとカスタム版に変えるからね。閉じるコマンドのようなものも、–my-closeみたいになるし、dialogEl.close()を呼ぶ前にいくつかのチェックが入るよ。

ericyd 2025-03-07T18:50:07

確かにそう思う。複雑なUIでもJSが必要なケースが思いつかないな。段階的に導入できる道筋を示してるのかも。

gatinsama 2025-03-07T18:12:05

HTMLが改善されているのは良いけど、まだまだ先は長いね。HTMXの人たちには面白いアイデアがいくつかあるね。

記事一覧へ

海外テックの反応まとめ
著者
海外テックの反応まとめ
暇つぶしがてらに読むだけで海外のテックニュースに詳しくなれるまとめサイトです。