Show HN: Woxi - Open-source Mathematica / Wolfram Language reimplementation
Woxi is an ambitious open-source reimplementation of the Wolfram Language in Rust, offering a free, fast, and embeddable alternative to the proprietary Mathematica. Its release sparked significant discussion on Hacker News regarding the value of open-source clones, intricate compatibility challenges, and the potential to democratize powerful computational tools. The project aims to provide broad access to a language often lauded for its consistency and comprehensive capabilities.
The Lowdown
Woxi is a new open-source interpreter for the Wolfram Language, meticulously crafted in Rust, positioning itself as a direct competitor and accessible alternative to the proprietary Wolfram Mathematica. It boasts several key advantages over its commercial counterpart, notably its free and open-source nature, extremely fast startup times (milliseconds vs. seconds), and versatile embeddability across various platforms, including web browsers via WASM.
- Integrated Environment: Woxi includes Woxi Studio, a Mathematica-like graphical user interface built with the
icedtoolkit. - Versatile Access: Users can interact with Woxi via a command-line interface, Jupyter kernel, Python package, npm package, or as a WASM module.
- Robust Conformance: The project ensures high compatibility through approximately 26,000 unit tests and 900 Wolfram Language script snapshot tests.
- Development Focus: Current efforts are concentrated on refining edge cases, enhancing performance, and expanding its community.
- Local Execution: All computations run locally, ensuring data privacy and no data transmission.
- Showcase: The project demonstrates its capabilities with examples of plotting, charting, and graph/tree visualizations.
The author actively solicits feedback from Wolfram Language users on compatibility and missing features, encouraging contributions and bug reports to further refine this promising open-source endeavor.
The Gossip
Compatibility Concerns and Computational Capabilities
Commenters enthusiastically inquire about Woxi's compatibility with existing Wolfram Language codebases and its performance for symbolic mathematics. Users ask if it can run specific powerful modules like Rubi, and the developer confirms that Rubi mostly works, with ongoing performance optimizations. There's a keen interest in comparing Woxi's symbolic math speed and accuracy against established tools like SymPy and Sage, with some noting Woxi's initial promising results in complex algebraic problems. Specific technical issues, such as discrepancies in `$VersionNumber` and `$InputFileName` variables, are also highlighted, indicating the detailed scrutiny Woxi is undergoing.
Open-Source vs. Proprietary Philosophy
A lively debate emerged concerning the merit of open-source reimplementations versus novel open-source creations. Some argue that simply cloning proprietary software, no matter how well executed, stifles true innovation, suggesting open source should focus on entirely new approaches. Others counter that reimplementing successful tools democratizes access to powerful technology, breaks proprietary 'moats,' and allows for new embeddability and workflows. The developer clarified their motivation: the Wolfram Language's design is largely excellent, and the goal is to make that excellent design accessible without the prohibitive cost, while still leaving room for future innovation in user experience.
Feature Wishlists and Future Directions
Users offered suggestions for Woxi's future development and expressed hope for specific features. Requests included adding a control systems module, noting its superiority to Matlab's equivalent in Mathematica. There was also a suggestion to enhance the Python API by allowing it to return and accept structured tree representations, drawing parallels to similar successful integrations. The developer acknowledged previous improvements since an earlier post, highlighting significant commit activity and feature expansion, and welcomed further bug reports for performance bottlenecks.