@491
First, Rust. Rust is for Ammo, which is going to push the boundaries of what anyone has done if I succeed. It's also very popular in sighted game land, and it's not like Synthizer is supposed to be blind-person only. Rust is fine for audiogames. It's not like C/C++, you're not going to shoot yourself in the foot. Ammo is World of Warcraft for the blind: if I succeed it needs to run way more than 5 maps concurrently, and being as I'm going to promote it and not do stupid stuff like fail to write tutorials and make you install old DirectX and do antivirus exceptions I think I can get peaks of 100 players, and you can have 1 player per map, and if you have 100 maps that's 100 maps you have to run. That's a unique problem as far as audiogames go. Maybe something like Survive the Wild has pushed that boundary or something, but I bet anyone who has is laggy.
But Rust is not a newbie-friendly language. You're a newbie as far as I can tell. Beyond most here, but not at the point where you can go "you know it sounds like it might be fun to make world of warcraft" and have the biggest problem be "shame I only have weekends and art is going to be hard to get". A lot of the answers around what you should be using and what you can be productive with change once you're at the point where you can build anything and the only limit is time. Rust isn't like any other mainstream language and it has a lot of unique stuff, but functional programming doesn't frighten me and lifetimes are easy enough and when my language says "I am opinionated, abstract how I want or else" I'm not spending several months readjusting all of my thought processes away from object oriented programming or whatever else. Plus I have been using it at work continuously for 9 months and have contributed to their compiler so any learning curve that there was is something I got over a long time ago.
If you want to pay the Rust learning cost you can, but I don't see what it gets you. I see what it gets me. Maybe you will use it one day, but wait until you have projects that need it. Unless you really truly enjoy learning technologies, there's no point learning technologies before you have a use for them. If you were going to do a systems language Rust is probably what you would want to do, and it's actually less crash-prone than even Python believe it or not. But it's expensive.
Second: C#. I'm not going to include bindings generators in CI for you. If you want that you can run your own CI on the Synthizer repository. GitHub actions is free. Python has special status because I need something which is easy to test with, but nothing else is getting that privilege, even code by myself. The new Rust bindings also live outside the repository. In general you're supposed to run bindings generators yourself and then commit the code they generate, anyway.
Third: Synthizer is semantic versioning. 1.0 means stable. If I break things we bump to 2.0 and so on. I'm not promising no more breaking API changes after 1.0. I'm only saying that the goal is to try to not have breaking changes between now and 1.0. There are lots of things I want to add which I'll be doing as I or someone else needs them, but the current goal is to get a stable, non-beta release.
My BlogTwitter: @ajhicks1992