Wie kann eine Plattform wie FB viele Sprachen wie PHP, Java, Python und Erlang nutzen und auf der Webseite alles miteinander verbinden?
Wie kann eine Plattform wie FB viele Sprachen wie PHP, Java, Python und Erlang nutzen und auf der Webseite alles miteinander verbinden?
Das Schlüsselwort heißt Microservice. Die einzelnen Komponenten von vielen Webapplikationen sind als sog. Microservices geschrieben. Das heißt, dass jede Komponente nur für einen begrenzen Scope zuständig ist. Normalerwise sogar nur für genau eine Aufgabe (z.B. Usermanagement, Nachrichtenbearbeitung, Bilderupload…). Müssen die einzelnen Komponenten untereinander kommunizieren, geschieht das über ein gemeinsames Protokoll (z.B. https). Kommunikation kann auch asynchron passieren über z.B. Messagebroker (z.B. rabbitMQ, Kafka). Manchmal sind Programmiersprachen jedoch auch in zumindest eine Richtung kompatibel. Das ist oft der Fall wenn sie zum gleich Kompilat kompiliert werden (JVM Sprachen wie Java, Scala oder Clojure). In anderen Fällen sind Sprachen in anderen Sprachen erweiterbar (Ruby und Python zum Beispiel lassen sich durch C/C++ Code erweitern. Das wird oft aufgrund von Performance-Gründen gemacht).