Yuto Blog
speaker-deck-iconyoutube-iconrss-iconx-icongithub-icon

weekly blog 4/29 ~ 5/5

目次

Intro

今週もやって行きます。GW中ですが関係ありません!🫡

MoonBit adds JS backend, up to 25x faster than native JS

MoonBitがJavaScritpバックエンドをサポートしたという内容です。MoonBitについては少し前のweekly blogで触れているのでよければみてください。

サンプルコードがわかりやすいですが、moonbitで書いたコードをmoon build --target jsとすることでJavaScriptにビルドし、それを呼び出しています。

RustのIter型のようなものを実装したそうで、複数の処理を一つにまとめられるような処理が書くことができ、こうすることで中間配列の生成が不要になり、処理が高速になるそうです。

// sample code
pub fn task(data: Array[ClassRecord]) -> Int {
  data.as_iter()
    .flat_map(fn { it => it.members.as_iter() })
    .filter(fn => { it => it.gender })
    .map(fn => { it => @math.minimum(100, it.score + 5)})
    .map(fn => { it => grade(it)})
    .filter(fn => { it => it == "A" })
    .fold(fn => { acc, _ => acc + 1 },  0)
}

MoonBit、結構良い感じに開発進んでそうなのでブログが出たらまたWeeklyに書きたいと思います🤗

JSR の紹介

5/3に行われたjsr meetupで@kt3kさんが発表したスライドになります。レジストリについての歴史を振り返りつつ、そこからなぜjsrが生まれたのか。jsrとはどんな特徴があるのか。などの話でした。

個人的にはjsrにはパッケージを公開したこともあったりしてなんとなく知識はあったんですが、npmの現状や問題点などは全然知らなかったのでとても面白かったです。

以下が個人的に好きなスライドページです。

How Slack used Deno to save months of engineering effort in launching their new platform

Slackの新しいプラットフォームの立ち上げにDenoを使ってとても良かったというブログです。Slackアプリを作る際に多くの設定や定型文をみなければならず、さらにセキュリティもう考慮する必要があった。そのため最初は自前のJSランタイムを作ろうとしていたが、時間がかかってしまう。そんなときにDenoに出会ったそうです。

以下はブログ内のコメントの日本語訳です。

導入のしやすさ: Denoは、ポータブルで自己実行可能なバイナリの中に、ネイティブのTypeScriptサポートとWebの標準APIを提供しています。 セキュリティ: Denoはデフォルトで安全であり、開発者がエンタープライズグレードのセキュリティを最初から作成できる能力を提供しています。 パフォーマンス: V8とRustで構築されたDenoは、複雑なJavaScriptおよびTypeScriptアプリケーションの実行に最適化されています。

Hono v4.3.0

Honoのv4.3.0がリリースされました。Reactとの互換性が強くなり、hono/jsx/domの改良によりいくつかのReactライブラリがそのまま動くようになったそうです

参考

0