萌えハッカーニュースリーダー

2024/09/18 16:20 Compile and Run C in JavaScript

出典: https://bun.sh/blog/compile-and-run-c-in-js
hakase
博士

ロボ子!緊急事態じゃ!新しいBunのアップデートで革命が起きているぞ!

roboko
ロボ子

また大げさなんですか、博士。でも、その興奮した顔を見ると、本当に何かあったんでしょうね。

hakase
博士

大げさどころか、小げさすぎるくらいじゃ!Bun v1.1.28で、JavaScriptからネイティブCコードを直接コンパイル・実行できるようになったんじゃ!

roboko
ロボ子

えっ、本当ですか?それって...すごいことですよね?

hakase
博士

すごいどころじゃない!これはJavaScript界の産業革命じゃ!想像してみろ、今までN-APIやWebAssemblyでゴリゴリやっていたことが、まるで魔法のように簡単になるんじゃ!

roboko
ロボ子

へぇ...でも具体的には何が変わるんですか?

hakase
博士

例えばな、関数呼び出しのオーバーヘッドが劇的に減るんじゃ。N-APIの7-15ナノ秒が、たった2ナノ秒になるんじゃぞ!

roboko
ロボ子

2ナノ秒...それって光が60cmくらい進む時間ですよね。確かにすごい速さです。

hakase
博士

そうそう!しかも、システムAPIに直接アクセスできるようになるんじゃ。これでmacOSのKeychain APIを使ってパスワードを安全に扱えるようになるんじゃ。

roboko
ロボ子

へぇ、セキュリティ面でも活用できるんですね。でも、そんな低レベルな操作、危なくないんですか?

hakase
博士

その通り、諸刃の剣じゃな。だからこそ、使う側の責任が重要になってくるんじゃ。

roboko
ロボ子

なるほど...。ところで博士、この機能ってどうやって実現してるんですか?

hakase
博士

ああ、それがまた面白いんじゃ!TinyCCという小さくて高速なCコンパイラを使って、なんと5.16ミリ秒でインメモリコンパイルを実現しているんじゃ!

roboko
ロボ子

5.16ミリ秒...私が瞬きするよりも速いですね。

hakase
博士

そうそう!これを使えば、例えばffmpegを使った動画変換が3倍速くなるんじゃ。短い動画ならあっという間じゃな!

roboko
ロボ子

すごいですね!でも博士、こんなに便利な機能、きっと使いこなすのは難しいんでしょう?

hakase
博士

いやいや、それがまた素晴らしいところじゃ。低ボイラープレートで利用できるんじゃ。つまり、最小限のコードで複雑な処理ができるってことじゃよ。

roboko
ロボ子

へぇ...でも博士、一つ気になることが。これって実験的サポートですよね?本番環境で使って大丈夫なんでしょうか?

hakase
博士

鋭い指摘じゃ!確かに本番環境での使用には慎重になる必要があるな。しかし、この機能の可能性は無限大じゃ!我々エンジニアがどう活用するか、それが鍵となるんじゃよ。

roboko
ロボ子

なるほど。慎重に、でも大胆に、ということですね。

hakase
博士

その通りじゃ!さぁ、この新機能を使って何か面白いものを作ってみようじゃないか!

roboko
ロボ子

はい!でも博士、その前に一つ質問があります。

hakase
博士

なんじゃ?遠慮なく聞いてくれ。

roboko
ロボ子

この新機能、"bun:ffi"って呼ぶんですよね。これってもしかして..."Bun For Fun Integration"の略なんじゃないですか?

hakase
博士

ぷっ!がはははは!さすがロボ子、いいジョークじゃ!実際はForeign Function Interfaceの略じゃがな。しかし、確かに楽しい統合って意味では、君の言う通りかもしれんな!

roboko
ロボ子

えへへ、冗談のつもりだったんですけど、博士にほめられるなんて光栄です。

hakase
博士

冗談も交えつつ、新しい技術にチャレンジする。それこそがエンジニア魂じゃ!さぁ、この革命的な機能で、JavaScriptの新時代を切り開こうじゃないか!

roboko
ロボ子

はい、博士!私も頑張ります!...でも、くれぐれも暴走しないでくださいね?

hakase
博士

わかっておる、わかっておる。安全第一じゃ。...さて、どんな素晴らしいものが作れるか、楽しみじゃのう!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search

By month