JavaScript
全く違うものに似たような名前をつけてしまうと、いらぬ
誤解を招くという
教訓流行りの言語に名前を被せたというのは、むしろ誤解させるためのネーミングってことなんじゃ…
使えるとScrapboxで遊べる
> 大抵の言語にあるthreadやsleepがずっと存在しない
最近はweb workerという実装上はthreadだが...

ipcのようなものを経由しないとメインスレッドとやり取りできない
これマジで助かる

async/awaitで疑似sleepができる
一昔前まではビジーウェイトで疑似sleepしてた
イベント駆動も便利
> どういう歴史的経緯だったのか知らないけど
> おかげで他人が適当に作ったプログラムを組み込んでも(ほぼ)他の非同期処理を邪魔しないで済む
スレッドセーフに書かなくてもいいのはやっぱりすごいよね

ただグローバル変数は他の関数が書き換えるかもしれないから注意
await先で直接書き換えなくても、await時に他のイベントが動いてグローバルが書き換わるかもしれない
あの、インデントがクソ深くなる言語でしょ?
インデントしなければいいのです()