Development: Mogan vs GNU TeXmacs
This article focuses on the development differences between Mogan STEM and GNU TeXmacs, providing insights for developers and contributors.
Core Development Differences
| Aspect | GNU TeXmacs | Mogan STEM |
|---|---|---|
| Release Cycle | Not fixed | Monthly releases |
| Performance Focus | Stability | Speed optimization |
| UI Framework | Mainly Qt 4 (some Qt 5) | Mainly Qt 6 (some Qt 5) |
| Scheme Engine | GNU Guile 1.8.x | S7 Scheme |
| Version Control | SVN (Savannah) | Git (Codeberg/Gitee/GitHub) |
| Build System | GNU Autotools | xmake |
| Development Lead | Joris van der Hoeven (Mathematician) | Darcy Shen (Software Engineer) |
Development Workflow Comparison
Build Process
GNU TeXmacs:
- Uses traditional GNU Autotools
- Complex configuration process
- Slower compilation times
- Platform-specific setup required
Mogan STEM:
- Uses modern xmake build system
- Simplified configuration
- Faster compilation with parallel builds
- Cross-platform build consistency
Version Control and Collaboration
GNU TeXmacs:
- SVN-based centralized workflow
- Limited branching capabilities
- Slower integration process
- Single point of failure
Mogan STEM:
- Git-based distributed workflow
- Feature branches and pull requests
- Faster code review and integration
- Multiple repository mirrors (GitHub, Gitee, Codeberg)
Technical Architecture
Scheme Engine Evolution
The transition from GNU Guile 1.8.x to S7 Scheme represents a significant technical improvement:
- Performance: S7 Scheme offers better execution speed
- Memory: More efficient memory management
- Modern Features: Better support for contemporary programming patterns
- Maintenance: Active development and community support
Qt Framework Modernization
Mogan's migration to Qt 6 brings several advantages:
- Performance: Better rendering and UI responsiveness
- Modern UI: Contemporary look and feel
- Cross-platform: Improved platform integration
- Future-proof: Long-term support and updates
Plugin Development
Plugin Architecture Differences
GNU TeXmacs:
- Monolithic plugin system
- Limited extensibility options
- Complex plugin development process
Mogan STEM:
- Modular plugin architecture
- Support for multiple languages (Python, C++, Scheme)
- Plugin Center for easy distribution
- Language-specific plugins for internationalization
Development Tools
Mogan provides enhanced development capabilities:
- Debugging: Better debugging tools and error reporting
- Documentation: Comprehensive API documentation
- Testing: Automated testing framework
- Community: Active developer community support
Performance Optimization
Startup Performance
Mogan STEM implements several optimizations:
- Lazy loading of components
- Optimized initialization sequences
- Reduced memory footprint
- Faster file loading and parsing
Runtime Performance
Key performance improvements include:
- Efficient rendering pipelines
- Optimized mathematical formula processing
- Improved UI responsiveness
- Better resource management
Development Philosophy
GNU TeXmacs Approach
- Academic research focus
- Mathematical correctness priority
- Conservative feature adoption
- Stability over performance
Mogan STEM Approach
- Engineering-driven development
- User experience optimization
- Rapid iteration and improvement
- Performance and usability balance
Contributing to Development
For Mogan STEM Developers
- Repository: https://github.com/XmacsLabs/mogan
- Build System: xmake (simple
xmake build stem) - Documentation: Comprehensive guides for each platform
- Community: Active Discord and GitHub discussions
Development Resources
Future Development Direction
Mogan STEM continues to evolve with focus on:
- AI Integration: Built-in AI capabilities (Liii STEM)
- Cloud Collaboration: Real-time collaborative editing
- Mobile Support: Touch-friendly interfaces
- Extended Formats: Support for more document formats
- Performance: Continued optimization efforts
Conclusion
While both projects share the same foundation, Mogan STEM represents a modernized approach to scientific document editor development, emphasizing performance, user experience, and contemporary development practices. The engineering-focused approach and modern tooling make it more accessible for developers and more responsive to user needs.
For a comprehensive comparison including user-facing features, see the complete Mogan vs GNU TeXmacs comparison.
