bow-simulation / virtualbow

Software for designing and simulating bows
http://www.virtualbow.org/
GNU General Public License v3.0
23 stars 3 forks source link

Hypothetical use of the Rust programming language #215

Open stfnp opened 3 years ago

stfnp commented 3 years ago

Motivation

A few years ago I started a small prototype where I tried implementing some parts of this program in Rust. The language and its tooling are, in my opinion, very well designed and a great improvement over C++. But I also realized that the ecosystem of libraries was not yet mature enough for the task. Especially the options for scientific computing and GUI programming were lacking when compared to mature C++ libraries like Eigen and Qt.

There have been a lot of improvements since then, but many roadblocks still remain. So this issue is meant for keeping an eye on Rust, tracking any relevant developments and thinking about possible routes for a gradual transition.

Lacking areas

GUI Programming

Scientific Computing

None of those, as far as I can tell, have anything similar to Eigen's expression templates.

Good areas

Serialization

Tooling

Utilities

Possible routes for transition

Rewriting the whole thing in Rust at once doesn't make much sense. But since VirtualBow's solver, pre- and postprocessor have been split into three separate components, it would be possible to try and switch them one by one. The solver would be a good first candidate for this, because it needs no GUI and is ripe for a major overhaul anyway.