Woxi 0.3はオープンソースのRustエンジン上でMathematicaノートブックを実行する
Adrian SieberのWolfram Languageインタプリタは、Windowsビルド、ブラウザでの実行、ネイティブなノートブックエディタを追加したが、重大なギャップを残している
By RuntimeWire Staff · Published
Primary source: Woxi
Why it matters
Woxi is testing whether Wolfram Language code can become portable infrastructure. Browser and embedded runtimes matter only if compatibility survives real notebooks, graphics and symbolic workloads.

Adrian Sieber (@AdrianSieber) は8月6日に Woxi 0.3.0 をリリースし、彼のオープンソースの Wolfram Language 再実装を、関数を蓄積するアプローチから完全な Mathematica ノートブックを実行する方向へと移行させました。このリリースにより、ネイティブの Woxi Studio エディタは一連のインタラクティブな Wolfram Demonstrations を端から端まで開いて実行できるようになり、Linux と macOS ビルドに加えて事前構築済みの Windows バイナリも追加されました。 (github.com)
Sieber はフランクフルト拠点のソフトウェア開発者で、GraphQL API、スプレッドシートインターフェースやその他のデータベースツールを生成するホスト型 SQLite サービス Airsequel の CEO です。彼の 個人プロジェクトの履歴 には、コマンドラインのタスクマネージャ、プレーンテキスト会計ツール、そして彼が2017年に共同設立したコード解析サービス Feram が含まれます。Woxi はそのパターンをはるかに大きな目標へと拡張しており、1988年以降に開発されてきた専有言語の互換性を目指した独立実装のエンジンを目標にしています。 (github.com)
Sieber の賭けは配布にあります。 Woxi repository はインタープリタをコマンドラインツール、Jupyter kernel、Python パッケージ、npm パッケージ、WebAssembly モジュールとしてパッケージ化しています。したがって同じ Rust エンジンはシェルスクリプト、ノートブック、Python プロセス、Node アプリケーション、ブラウザ内で動作させることができます。Woxi のブラウザプレイグラウンドはドキュメントによれば計算をリモートサーバに送らずローカルで実行します。 (woxi.ad-si.com)
Python package は8月7日にバージョン0.3.0に到達し、Windows、macOS、Linux向けの事前構築済みホイールを提供します。Python 呼び出しを通じて記号的評価、永続セッション状態、SVG グラフィックスを公開します。Woxi は AGPL-3.0-or-later 下でライセンスされており、導入済みバージョンへの変更がライセンスのソース共有要件の対象になる選択となっています。 (pypi.org)
関数数からノートブック互換性へ
バージョン0.3.0は、実際の .nb ファイルを開く際に開発者が遭遇する挙動に焦点を当てています。Woxi Studio は保存された Manipulate ウィジェットを再構築し、組版されたノートブック入力を実行可能なコードとして解釈し、ロケータ、ボタン、メニュー、アニメーションなどのインタラクティブコントロールをレンダリングできます。Sieber はケプラーの第2法則、放物面鏡、Doyle スパイラル、減衰振り子を扱うデモンストレーションをエンドツーエンドのテストとして使用しました。 (github.com)
グラフィックス面の作業は基本的なプロットを超えています。リリースでは誤差線、塗りつぶし、プロットマーカー、三次元曲面、ポリゴンの穴、SVG フォント埋め込み、Wolfram スタイルの自動目盛りが追加または修正されました。微積分や代数の追加には追加の記号積分、常微分方程式のケース、拘束付き最適化、方程式解法が含まれます。リリースノートによれば、wolframscript に対する複数回の差分ファジングにより、算術、式の順序付け、簡約の無言の違いが露呈したとのことです。既存の Wolfram コードと評価や出力が異なる場合、馴染みのある関数名だけでは価値が限定されるため、これらの比較は Woxi のアプローチにおいて中心的です。 (github.com)
Woxi はまたいくつかの意図的な差異を設けています。 Mathematica との比較 によれば、コマンドラインプログラムは WolframScript がサポートしていない .nb ノートブックの入力セルを直接評価できるとされています。Woxi Studio は任意の順序外評価を許可する代わりに先行セルを自動実行し、ノートブックの結果が隠れたカーネル状態に依存するのを防ごうとしています。エディタはまた前回の結果を表す Mathematica の % 省略記法を省いています。 (woxi.ad-si.com)
互換性の差は依然大きい
Mathematica との比較は現状の製品の境界線でもあります。Woxi のドキュメントは Wolfram Knowledgebase、機械学習、ニューラルネットワーク、有限要素法、化学、ビデオ計算、信号処理などいくつかの領域を主に未実装として列挙しています。Mathematica 15.0 で追加された機能(GPU カーネル、WebSocket 接続性、再構築された時系列エンジン、Wolfram のエージェントツール群)も Woxi のカバレッジ外にあります。 (woxi.ad-si.com)
プロジェクトは Mathematica 1.0 の元々の554の組み込み関数と記号コアを完全にサポートしていると述べています。その歴史的な基準は有用ですが、現行の Mathematica は何十年分の蓄積されたドメインライブラリ、データシステム、ノートブック挙動を横断しています。Woxi の実践的な試金石は、開発者が Wolfram カーネルを動かさずに埋め込めるほど十分に狭い再現可能なスクリプトとノートブックのセットをサポートできるかどうかです。 (woxi.ad-si.com)
Woxi はまた、最初の代替 Wolfram エンジンを作るのではなく、既に確立されたオープンソースの取り組みに参入しています。2011年に開発が始まった歴史を持つ Python 実装の Mathics3 は自身をオープンソースの Mathematica カーネルと表現しており、GitHub スターは約1,200です。Woxi は8月12日時点で約750のスターを持っていました。Sieber の差別化は Rust、ポータブルバイナリ、WebAssembly 組み込み、およびコマンドライン、ブラウザ、ネイティブノートブックエディタをまたがる単一のエンジンに依拠しています。 (github.com)
0.3.0 のリリースはその戦略に具体的な試験場を与えます。完全なノートブックは、孤立した関数テストが見逃す不整合を露呈します:評価順、組版、インタラクティブな状態、グラフィックスのレイアウト、エラー挙動が既存の作業を動かすのに十分に一致している必要があります。Woxi はそのより厳しい基準に対するテストを開始しており、自身の互換性表は Mathematica のどれだけがまだ到達不能であるかを明確に示しています。