New beta has preinstalled ROS by default.Take a look!
I can understand where do these assumptions come from but in this particular situation you’re fine using Python. You run Python scripts alongside ArduPilot which controls servos and motors that need a deterministic response time. Python doesn’t need to be realtime.
Realtime is a wrong term here! Sorry.
You can use other Mavlink bindings. There’s of course C bindings. Your application won’t benefit from using those, though.