C/C++ models are central to Basilisk due to their performance, but they introduce usability challenges. Developing or modifying these modules requires recompiling Basilisk, which creates a high barrier to entry. This is especially restrictive for users who install Basilisk via pip, since they may not have a configured development environment or access to the full source tree.
Python-based models mitigate these issues by allowing users to create and run modules without recompilation or direct interaction with the Basilisk source. However, this flexibility comes at a significant performance cost compared to C/C++ implementations.
[numba](https://numba.readthedocs.io/en/stable/user/overview.html) provides a potential middle ground. It is a Python package, installable via pip, that compiles a subset of Python code to optimized machine code with performance comparable to C. Leveraging Numba could enable a new class of Basilisk models that retain the rapid development and accessibility of Python while achieving near-native execution speed.
C/C++ models are central to Basilisk due to their performance, but they introduce usability challenges. Developing or modifying these modules requires recompiling Basilisk, which creates a high barrier to entry. This is especially restrictive for users who install Basilisk via
pip, since they may not have a configured development environment or access to the full source tree.Python-based models mitigate these issues by allowing users to create and run modules without recompilation or direct interaction with the Basilisk source. However, this flexibility comes at a significant performance cost compared to C/C++ implementations.
[numba](https://numba.readthedocs.io/en/stable/user/overview.html) provides a potential middle ground. It is a Python package, installable via
pip, that compiles a subset of Python code to optimized machine code with performance comparable to C. Leveraging Numba could enable a new class of Basilisk models that retain the rapid development and accessibility of Python while achieving near-native execution speed.