Woxi 0.3 ejecuta cuadernos de Mathematica en un motor de Rust de código abierto

El intérprete de Wolfram Language de Adrian Sieber agrega compilaciones para Windows, ejecución en el navegador y un editor de notebooks nativo, aunque deja lagunas importantes.

By · 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.

Illustration of Woxi 0.3 running Mathematica notebooks on an open-source Rust Wolfram Language interpreter, showing code and live mathematical output.

Adrian Sieber (@AdrianSieber) lanzó Woxi 0.3.0 el 6 de agosto, cambiando su reimplementación de código abierto del Wolfram Language, que hasta ahora acumulaba funciones, a ejecutar cuadernos completos de Mathematica. La versión permite que su editor nativo Woxi Studio abra y ejecute una selección de Wolfram Demonstrations interactivas de principio a fin, además de añadir binarios precompilados para Windows junto con las compilaciones para Linux y macOS. (github.com)

Sieber es un desarrollador de software con base en Frankfurt y CEO de Airsequel, un servicio alojado de SQLite que genera APIs GraphQL, interfaces de hojas de cálculo y otras herramientas de bases de datos. Su historial de proyectos personales incluye un gestor de tareas de línea de comandos, una herramienta de contabilidad en texto plano y Feram, un servicio de análisis de código que cofundó en 2017. Woxi extiende ese patrón hacia un objetivo mucho mayor: un motor compatible e implementado de forma independiente para un lenguaje propietario desarrollado desde 1988. (github.com)

La apuesta de Sieber se centra en la distribución. El repositorio de Woxi empaqueta el intérprete como una herramienta de línea de comandos, kernel de Jupyter, paquete de Python, paquete npm y módulo WebAssembly. El mismo motor en Rust, por tanto, puede ejecutarse dentro de un script de shell, un cuaderno, un proceso de Python, una aplicación Node o un navegador. El entorno interactivo en el navegador de Woxi se ejecuta localmente, según su documentación, sin enviar los cálculos a un servidor remoto. (woxi.ad-si.com)

El paquete de Python alcanzó la versión 0.3.0 el 7 de agosto con ruedas (wheels) precompiladas para Windows, macOS y Linux. Expone evaluación simbólica, estado de sesión persistente y gráficos SVG a través de llamadas desde Python. Woxi está licenciado bajo AGPL-3.0-or-later, una elección que mantiene las modificaciones a las versiones desplegadas sujetas a los requisitos de reparto de código fuente de la licencia. (pypi.org)

From function count to notebook compatibility

La versión 0.3.0 se concentra en el comportamiento que los desarrolladores encuentran al abrir archivos reales .nb. Woxi Studio puede reconstruir widgets Manipulate almacenados, interpretar la entrada tipografiada del cuaderno como código ejecutable y renderizar controles interactivos que incluyen locators, botones, menús y animaciones. Sieber utilizó demostraciones que cubren la segunda ley de Kepler, espejos parabólicos, espirales de Doyle y péndulos amortiguados como pruebas de principio a fin. (github.com)

El trabajo gráfico va más allá de trazados básicos. La versión añadió o corrigió barras de error, rellenos, marcadores de trama, superficies tridimensionales, agujeros en polígonos, incrustación de fuentes SVG y ticks automáticos al estilo Wolfram. Sus añadidos en cálculo y álgebra incluyen más integrales simbólicas, casos de ecuaciones diferenciales, optimización con restricciones y resolución de ecuaciones. Las notas de la versión indican que varias rondas de fuzzing diferencial contra wolframscript expusieron diferencias silenciosas en aritmética, ordenamiento de expresiones y simplificación. Esas comparaciones son centrales en el enfoque de Woxi porque un nombre de función familiar tiene un valor limitado cuando la evaluación o la salida divergen del código existente de Wolfram. (github.com)

Woxi también toma varias decisiones deliberadas. Su comparación con Mathematica indica que el programa de línea de comandos puede evaluar directamente celdas de entrada de cuadernos .nb, cosa que WolframScript no soporta. Woxi Studio ejecuta automáticamente las celdas precedentes en lugar de permitir evaluaciones arbitrarias fuera de orden, en un intento por evitar que los resultados del cuaderno dependan de un estado oculto del kernel. El editor también omite la abreviatura % de Mathematica para el resultado anterior. (woxi.ad-si.com)

The compatibility gap remains large

La comparación con Mathematica sirve también como un límite alrededor del producto actual. La documentación de Woxi enumera la Wolfram Knowledgebase, machine learning, redes neuronales, métodos de elementos finitos, química, cómputo de video, procesamiento de señales y varias otras áreas como mayormente no implementadas. Características añadidas en Mathematica 15.0, incluyendo kernels para GPU, conectividad WebSocket, un motor de series temporales reconstruido y las herramientas de agentes de Wolfram, también permanecen fuera de la cobertura de Woxi. (woxi.ad-si.com)

El proyecto afirma que soporta completamente las 554 funciones integradas originales y el núcleo simbólico de Mathematica 1.0. Esa base histórica es útil, pero la Mathematica actual abarca décadas de bibliotecas de dominio acumuladas, sistemas de datos y comportamiento de cuadernos. La prueba práctica para Woxi es si puede soportar un conjunto más estrecho de scripts y cuadernos reproducibles lo bastante bien como para que los desarrolladores puedan integrarlos sin ejecutar un kernel de Wolfram. (woxi.ad-si.com)

Woxi también entra en un esfuerzo de código abierto ya establecido en lugar de crear el primer motor alternativo para Wolfram. Mathics3, una implementación en Python cuya historia de desarrollo se remonta a 2011, se describe a sí misma como un kernel de Mathematica de código abierto y tiene aproximadamente 1,200 estrellas en GitHub. Woxi tenía alrededor de 750 estrellas al 12 de agosto. La diferenciación de Sieber se apoya en Rust, binarios portables, la incrustación de WebAssembly y un solo motor que abarca la línea de comandos, el navegador y el editor nativo de cuadernos. (github.com)

El lanzamiento 0.3.0 da a esa estrategia un campo de pruebas concreto. Los cuadernos completos exponen incompatibilidades que las pruebas aisladas de funciones pasan por alto: orden de evaluación, tipografía, estado interactivo, diseño gráfico y comportamiento ante errores deben coincidir lo suficiente para que el trabajo existente se ejecute. Woxi ha comenzado a probar frente a ese estándar más exigente, mientras que su propia tabla de compatibilidad deja claro cuánto de Mathematica sigue fuera de alcance.

Reader comments

Conversation for this story loads after sign-in.