I'm currently working on a project which requires to support multiple languages as first class citizens and I'm facing a dilemma. I can choose between implementing the API as closely as possible for each language. But this invariable leads me to abandon some best practice for the language. E.g. C# events instead of a list of callbacks.
So what I am wondering is what you would prefer as a user or a developer of such an API. Keep the API as closely as possible between languages. Or diverge when a language has "better" way to do something?