Dengan API, apa sebenarnya yang Anda maksud?
Pada banyak platform Anda dapat menautkan ke DLL atau konstruksi serupa, tetapi apakah harus dikompilasi ulang untuk target asli tertentu (Intel / ARM) atau endianness masih memenuhi syarat? Antarmuka biner tertentu mungkin masih mengalami kesulitan dengan bahasa tertentu karena masalah tipe data atau konstruksi (petunjuk yang berusaha dikembalikan ke bahasa yang tidak mendukungnya dengan baik), jadi Anda juga harus mempertimbangkan desain API itu sendiri agar tidak untuk mengecualikan beberapa bahasa atau menggunakannya dari bahasa-bahasa yang rumit.
Sesuatu yang portabel seperti C dan antarmuka yang didasarkan pada titik akhir biner dalam DLL mungkin baik dan umumnya dapat dipanggil pada sebagian besar platform dan dari sebagian besar bahasa, tetapi mungkin perlu dikompilasi secara berbeda dan / atau ditawarkan dalam berbagai rasa atau dihubungkan ke perpustakaan statis yang berbeda.
Tampaknya bagi saya bahwa pilihan bahasa yang Anda tulis di perpustakaan atau layanan Anda atau apa pun, menurut definisi, tidak intrinsik dengan pertanyaan sampai Anda telah memberikan lebih banyak tentang platform / layanan yang diungkapkan oleh API. Jika Anda dapat mengasumsikan bahwa tumpukan jaringan tersedia dan kinerja fungsi-panggilan-tingkat-taut-langsung bukanlah persyaratan, API dapat dengan mudah berbasis HTTP dengan semacam shim untuk bahasa klien untuk membuat permintaan transparan.
Saya pikir secara umum pertanyaan ini terlalu luas untuk berguna di dunia nyata, karena Anda belum memberikan indikasi tentang jenis API apa yang cocok dengan jenis layanan yang ditawarkan.