Duniter needs to be rewritten, because:
- it has deep conception problems we can solve using the experience we gained with Duniter and other cryptos
- we want protocol changes that would be difficult to implement in the current codebase
- NodeJS is slow and heavy
- NodeJS can be very complicated to install and use
- we would benefit from using a powerful, flexible framework rather than a homemade engine
- the developer who maintains it now is more skilled with Rust than with JS
- Substrate is a good candidate
- performance, security, safety, easier than C
Absolutely not (speaking of clients. The nodes will be forced to use at least a WASM lib built by Rust, which is included in the blockchain.)
There are pure JS libs, and the node has a JSON API so you can use whatever you want for a client.
I think lots of the critics addressed to building Rust also address to running JS. Rust needs power to build. JS needs power to run. Rust is just moving the need of power to the right place: compile-time. To my mind, big softwares written in interpreted languages are a big mess.
But I sadly agree on the Rust’s lack of portability. (however Duniter-JS is not very portable so maybe DuniterV2 will be even more portable)