Warum bieten so viele Programmiersprachen nur C-Schnittstellen?



  • Warum bieten so viele Programmiersprachen nur C-Schnittstellen? Bedeutet das auch man sollte seine Libs in C schreiben um sie in anderen Sprachen auch nutzen zu können?



  • ich verweise mal wegen thematischer Überschneidung an diesen Thread.
    http://www.c-plusplus.net/forum/276316



  • Interface01 schrieb:

    Warum bieten so viele Programmiersprachen nur C-Schnittstellen?

    evtl. kommt es daher dass viele in c geschrieben wurden 😕



  • __-- schrieb:

    Interface01 schrieb:

    Warum bieten so viele Programmiersprachen nur C-Schnittstellen?

    evtl. kommt es daher dass viele in c geschrieben wurden 😕

    und das liegt wiederum daran, dass c-progger die schnauze von c voll haben und sich dann was neues ausdenken. da das natürlich nie so toll wird wie das orginal versuchens immer wieder welche 🤡



  • bitte jetzt nicht noch ein c-flamethread.

    und zum threadersteller: du meinst wohl programmbibliotheken und nicht pogrammiersprachen.



  • TheQ schrieb:

    bitte jetzt nicht noch ein c-flamethread.

    und zum threadersteller: du meinst wohl programmbibliotheken und nicht pogrammiersprachen.

    Nein meint er nicht:

    Java kann durch mit JNI C und C++ aufrufen.
    Ruby, Python, ... können nur C aufrufen.



  • Zeus schrieb:

    Ruby, Python, ... können nur C aufrufen.

    Nö, zumindest Ruby kann zumindest C++ aufrufen.



  • Michael E. schrieb:

    Zeus schrieb:

    Ruby, Python, ... können nur C aufrufen.

    Nö, zumindest Ruby kann zumindest C++ aufrufen.

    Ohne Rice?



  • Es gibt z. B. RubyInline. Natürlich müssen alle Gems irgendwie an die C-Schnittstelle angebunden werden, weil der Matz-Interpreter in C geschrieben wurde, aber wie das intern funktioniert, braucht mich als Anwender nicht zu interessieren, wenn ich direkt C++ inlinen kann. Also vom Technischen her hast du Recht, dass man über C gehen muss, als Anwender merkt man davon aber nicht viel 🙂



  • Der Hauptanwendungsfall für solche Schnittstellen dürfte eine Verbindung zu nativem Code sein, in der Praxis schränkt das die sinnvolle Auswahl auf C und C++ ein. C++ hatte lange das Problem, dass kein einheitliches ABI definiert war und hat immer noch das Problem, dass dieses nicht überall vollständig implementiert ist. Bleibt C.

    Außerdem sind C-Schnittstellen einfach zu implementieren - Symbol laden, Symbol aufrufen. Das ist vergleichsweise billig zu haben.


Anmelden zum Antworten