Przez API, co dokładnie masz na myśli?
Na wielu platformach możesz połączyć się z biblioteką DLL lub podobną konstrukcją, ale czy musiałbyś zostać ponownie skompilowany dla konkretnego natywnego celu (Intel / ARM) lub endianness nadal się kwalifikuje? Konkretny interfejs binarny może nadal mieć problemy z niektórymi językami z powodu problemów z typami danych lub konstrukcji (wskaźniki próbujące powrócić do języków, które nie obsługują ich dobrze), dlatego należy również rozważyć projekt samego interfejsu API, aby nie aby wykluczyć niektóre języki lub sprawić, by korzystanie z tych języków było uciążliwe.
Coś przenośnego, takiego jak C i interfejs oparty na binarnych punktach końcowych w bibliotece DLL, może być w porządku i ogólnie wywoływać na większości platform i z większości języków, ale może być konieczne skompilowanie go w inny sposób i / lub zaoferowanie w różnych smakach lub połączenie z różnymi bibliotekami statycznymi.
Wydaje mi się, że wybór języka, w którym piszesz swoją bibliotekę lub usługę, lub cokolwiek innego, z definicji nie jest nieodłączny od pytania, dopóki nie podasz więcej informacji na temat platformy / usługi udostępnianej przez API. Jeśli można założyć, że stos sieci jest dostępny, a wydajność na poziomie wywołania funkcji bezpośrednio połączonej nie jest wymagana, interfejs API może być oparty na protokole HTTP z pewnym rodzajem podkładki, aby język klienta był przejrzysty.
Myślę, że ogólnie to pytanie jest zbyt szerokie, aby było przydatne w prawdziwym świecie, ponieważ nie wskazałeś, jaki rodzaj interfejsu API może być odpowiedni, biorąc pod uwagę rodzaj oferowanej usługi.