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.