00:00
このポッドキャストは、ギークのお二人が興味がある技術や熱中していることについて語る番組です。
オクです。
ゾイです。
オクですね。いわゆるJSとTS、JavaScriptとTypeScriptのランタイムのDenoを追いかけてきて、かれこれ4年ぐらいになりました。
はい。
今Deno 1なんですけど、そろそろやっとDeno 2が出そうというアナウンスが、かれこれ出始めて大体半年ぐらいになったんですかね。
今度こそ出しますみたいな文言が出てきまして。
はい。
今までこの約数年、まだ出ない、まだ出ないみたいなことを続けてたんですけど、今度こそ出そうだっていう感じなんですよね。
なるほど、なるほど。
今回公式がメッセージを出したって書いてるんですよ。さっき言ったんですけど、出したメッセージっていうのが、
Will be releasing Deno 2 September this year. For real this timeって書いてるんですね。
はい。
これざっくり訳すと、Deno 2は今年の9月にリリースすることにします。今回は本当にって書いてるんですよ。
はい。
今回本当にに関しては、もう笑っちゃったんですけど。
なんか出そうだったり、出そうで出ないみたいな状況が結構長かったって感じですかね。
長かったですね。2023年中には来るのかなと思ってたら、全然出ないみたいな感じだったので。
今回は本当にがわかる人は多分ずっと追いかけてるとか、ずっと待ってるみたいな。
Denoと本体と気持ちが並走してた人ほど笑ってるんじゃないかなっていう気がするんですよね。
はい。
この1.0の公開から約4年経ちまして、最初期Deno独自なところとか特色として認識されていたようなものっていうのの事情もちょっと変わってきてます。
はい。
特徴として挙げられてたようなものとして、トランスファイル不要でTypeScriptが動きますというところ。
パーミッションシステムとかって要素もあったんですけど、Node.jsでTypeScriptを動かせるようにしたりとか、パーミッションシステムも音って動きが始まってて、部分的にはもうほぼ取り込みが決まって、今動いてますみたいな感じになってます。
なるほど。Denoだけの特徴っていうのがだんだんなくなってきたみたいな感じってことですね。
そうですね。
03:01
あとはリリース当初から高速なWebサーバーをランタイムに持ちますよという特徴もあったんですけど、今だと板がいたりとか、必ずしもDeno一挙ではないみたいな形っていうのになってきてます。
サーバーサイド、TypeScript、JS方面でDeno以外のものも出てきた。
そうですね。
何なら結構いい性能してるってことですよね。
そうですね。やっぱり4年も経つと、特にDenoが始まってからかもしれないですけど、自分が追ってるニュースもあると思うんですが、新しいランタイム出ましたみたいなニュースもよく目にするようになったのもあって、必ずしも一挙じゃないし、
あと場所によるところですけど、例えばAWSのラブダで動かすことを前提に、すごい高速化されたJSのランタイムとかそういうのもあったりするので、一概にっていうところには今なってますね。
こんな中、いろいろあったところでも一番大きなところっていうのが、HTTPへモジュールのインポートをするっていうところもDenoの特徴だったんですけど、そこをある種諦めたことっていうのは結構大きいかもしれないです。
はい。
これに関しては、例えばインポートするときに、いわゆるHTTPで書いたときに、HTTPコロンスラスラ、ドメインパスみたいな感じで読んでたときに、インポートが長くなりすぎることとか、依存関係の重複の部分を理想通りいかない部分が大きかったみたいです。
例えば、この重複の部分っていうのは、何かのモジュールの1.00、1.0.0と1.0.1を完全に別なものとして取り扱いをされて、それを全体をビルドしたときに全体の容量が増えたりっていうことですね。
パッケージジェイソン、いわゆるノードJSでパッケージジェイソンを使ってると、1.00と1.0.1で、1系の最新版をどっちも結局取りに行くみたいな記述としてセムバーってやつもあると思うんですけど、これに対応してないっていうことですね。
結果、今はセムバーに対応したJSRって新しいレジストリができて、NPMレジストリのスーパーセットとして登場したって感じになってます。
今だとHTTPインポートではなくて、こちらを使うのが推奨って感じになってます。
06:04
もちろん推奨なので、Dino本体のところで公開してた標準ライブラリも全部JSRでの公開に今なってますって感じですね。
これに関して述べられてる記事はリンクに貼っておきたいなと思うんですけども。
仕様感っていう、このJSRってレジストリを使っていくっていう仕様感もNode.jsでNPMコマンドを使う感じに寄ってってまして、
例えばNPMインストールパッケージ名みたいなコマンドあると思うんですけど、それがDinoアットパッケージ名で今インストールできるようになっていて、また逆に外すコマンドもありますっていう感じになってます。
この辺りが用意されるようになったのもJSRに関連して既存のNode.jsのユーザーを取り込んでいきたいという意図も見えて変わってたところですね。
確かに将来的にはインポートはなくなりそうとか、まだそこまで決まってない。
あ、HTTPインポートがなくなるかってとこですね。
今のところなくなるっていう感じではないですね。
多分大きいのは、一番最初にDinoが公開してたDinoland SLAXっていうところに、みんなレジストリとしてパッケージ公開してたんですけど、
必ずしもみんながそこに移管してくれたわけでもなくて、おそらく未だにそちらの方にHTTPのインポートでパッケージ取りに行くアクセスが一定量あるんじゃないかと思っていて、
それが一定のレベルより下がるみたいなことがないと、切り捨てられることは当面ないんじゃないかなと思ってますね。
なるほど。公式には別になくすみたいなことは言われてないってことですね。
そうですね。今のところそれは出てない。言及されてないはずです。
なるほど。
その中でも大きいのはDinoで公開してるフレッシュ、Webのフレームワークですね。あれがまだJSRに乗っかってないっていうのは結構大きいと思います。
JSRにフレッシュが乗ってきたらもういいよねって言って、切り替える機運って結構高まるかもしれないですね。
こういったメインストリームの進化っていうのがあって、その脇で私もDino軸、主軸のOSSの活動を続ける中で、
09:05
書いたイシューが反映されるとか、関連したモジュールの関連パッケージ作ってたりとか、みたいなところもあって、
そういったところでも関われてるってことに喜びがあって、結構楽しく過ごしてますっていうところがありますね。
またDino2で様子がちょっとずつ変わってくるので、今作ってるものもDino2用に合わせたりとか、そういった対応も近々にしていこうかなと思ってます。
というわけで、今回はDino2が出ますよというところで話してきました。おそらくDino2公開されるのが予定通りだと9月中には出るのかなというところなので、
もし興味あれば触ってみていただけると面白いのかなと思います。