Wie funktioniert das ? Mehrere Programmiersprachen vereinen

MisterWoox

Cadet 3rd Year
Registriert
Okt. 2016
Beiträge
39
Hallo liebe Community,

Wenn man sich ankuckt in welchen sprechen Facebook, Whatsapp, Instagram, geschrieben sind dann stellt man direkt mal fest da ist nicht nur 1 sprache im spiel.

Mich würde mal interessieren wie sowas funktioniert .... Mehere sprachen ergeben ein Programm wie das? Sind das Programmteile die in anderen sprachen aufgerufen werden anderes kann ich mir das nicht vorstellen aber ich kenne mich da eben nicht aus ;):):)

Würde das nicht mit Einer sprache funktionieren





LG
 
Die CPU führt letztendlich Maschinencode aus. Egal in welcher Programmiersprache der Quelltext vorher geschrieben war. Der Quellcode ist nur eine höhere abstraktionsstufe, die letztendlich wieder in Maschinencode übersetzt wird. Du kannst Kompilate einer Sprache in einer anderen referenzieren und die enthalten "Anweisungen" verwenden. Dann gibt es noch Interprozess- und Maschinenkommunikation, sowas wie Facebook läuft nicht nur auf einem Rechner. Dann ist es völlig egal welches Betriebssysten und Programm da läuft, so lange die Kommunikationsschnittstelle funktioniert.

Ansonsten ist das hier kein Hausaufgabenforum und Google weiß sicherlich noch mehr darüber.
 
Zuletzt bearbeitet:
Einige Programmiersprachen sind für bestimmte Aufgabenstellungen schlicht besser geeignet als andere.

Beim kompilieren kommt dann der ausführbare Code raus, denn dann die Rechner 'verstehen'
 
Dienste wie Facebook bestehen nicht nur aus einem einzigen Programm, sondern aus mehreren Komponenten. Jede davon kann in einer eigenen Sprache geschrieben sein, z.B. die Serversoftware in PHP, die Website in Javascript, die iOS-App in Objective-C usw.
 
Es lassen sich Funktionen compilieren, die dann von anderen Sprachen aufgerufen werden können. Wie z.B. eine dll unter Windows. Welche Programmiersprache der Programmierer benutzt hat spielt am Ende keine Rolle. Man muss nur wissen wie der Funktionsaufruf ist.
 
@nebulus: das ist so nicht ganz korrekt, die Kompilate müssen schon zu einander passen. Beispiel: ein JAR aus einer .NET Anwendung heraus anzubinden ist schlicht nicht möglich...

@Topic: I.d.R bestehen Anwendungen aus mehreren Komponenten (wie schon erwähnt): Frontend, Middletier und Backend.
Nehmen wir an wir befinden uns im Kontext einer Webanwendung: das Frontend wird dann meist JS, HTML5, CSS3 sein. Das Middletier läuft dann auf einem Server und ist gerne mal in PHP implementiert (muss aber nicht, im professionellen Umfeld wird hier gerne auf JEE gesetzt). Backend ist dann entweder direkt eine Datenbank oder eine nachgelagerte Anwendung (z.B. Java), die alles Wegkapselt und dem PHP Middletier nur die entsprechenden Daten zum Nachbereiten in die Hand gibt...
 
Zuletzt bearbeitet:
OK danke für die antworten ...

@drexel verstehe mich bitte nicht falsch aber das ist keine Hausaufgabe :) Ich will das für mich persönlich wissen weil es mich interessiert und wenn ich mir die antworten ankucke was bei Google kommt zb andere Seiten da schreibt einfach jeder seine eigene Meinung was er glaubt und die stimmen hinten und vorne nicht ... Hier bekomme ich immer antworten von Leuten die wissen was sie reden .... aber danke das du immer meine Beigräte beantwortest ;:cool_alt::)
 
in aller regel handelt es sich bei den grossen plattformen (und gleichermaßen auch den kleinen) nicht um 1-programm-dienste, sondern um dienste, bei denen dutzende bis hunderte bis tausende individuelle programme in diversen workflows zusammenarbeiten.

die kooperation dieser programme untereinander geschieht dann ueber diverse schnittstellen, von pipes (denk an die linux-mentalitaet) ueber shared memory (native execution in virtual machine-sprachen) bis hin zu RPCs (z.B. HTTP-basierte kommunikation).

wenn du von google hoerst, dass sie java, python, c++, go und ruby benutzen, kannst du davon ausgehen, dass von diesen anwendungen jeweils nicht besonders viel in einander verzahnt ist. die grosse gemeinsamkeit werden eher die datenbankanbindung und die anbindung ans internet sein.
 
muesler schrieb:
@nebulus: das ist so nicht ganz korrekt, die Kompilate müssen schon zu einander passen. Beispiel: ein JAR aus einer .NET Anwendung heraus anzubinden ist schlicht nicht möglich...

Ich denke, das ist für die, die Ahnung davon haben relativ klar. Wenn jemand solche allgemeinen Fragen stellt und 0 Basiswissen hat, geht es erstmal um das Prinzip. Das Thema an sich ist komplexer und natürlich gibt es Voraussetzungen zu beachten, wenn man sowas tatsächlich tut. Aber diese Details nun für alle Varianten versuchen zu erklären, würde vermutlich den Rahmen hier sprengen und eher verwirren, als für Verständnis zu sorgen. ;)
 
Zuletzt bearbeitet:
@Drexel:
Stimmt auch wieder ;)
Ich wollte ja nur verhindern, dass hier Unkorrektheiten gestreut werden... :freaky:
 
Verschiedene Webseiten kommunizieren normalerweise mittels Webservices.
Hier gibt es 2 wichtige Standards: SOAP und REST.
Beide Standards verwenden XML als Format, um Daten per HTTP Request zu übertragen.
Bei fast jeder Programmiersprache gibt es die Möglichkeit, XML zu verarbeiten und HTTP Requests zu verschicken,
deshalb sind Webservices universell einsetzbar.
Also falls dich interessiert, wie ein HTTP Request aufgebaut ist, empfehle ich die das Programm Fiddler.
Fiddler ist ein Proxy, der alle HTTP Requests, die von deinem Rechner ausgehen, anzeigen kann.
Erst durch Fiddler habe ich verstanden, wie das Internet funktioniert.
 
Zurück
Oben