What's wrong with C#? It seems like you like the language and are only concerned about the software costs, so Mono would be an obvious option to look into. And the compatibility has improved quite a bit, to the point that there are quite a few projects that support multiple platforms: