Ich möchte ein soziales Netzwerk mit Vanilla HTML / CSS / JS im Frontend und Vanilla PHP im Backend aufbauen. Kann ich dies auf ein gutes Leistungsniveau bringen oder sollte ich Erlang für das Chat-System in Betracht ziehen?
PHP macht eine Sache gut (und das habe ich an mehreren Stellen schon gesagt), es loest naemlich einen haufen ekeliger Probleme, die du bei dezentralen Systemen schnell hast, naemlich es generiert die gesamte Seite auf dem Server, sodass das gesamte Programm und die benoetigten Daten auf dem Server zur selben Zeit sind.
Erlang jedenfalls, und das hast du richtig erkannt, waere die perfekte Loesung fuer ein Chatsystem in dem viele Dinge gleichzeitig und parallel ablaufen und es eine Art dauerhafte Verbindung zwischen den Nutzern geben muss.
Um gute Systeme in Erlang zu programmieren muss man zuerst die Dinge betrachten, die gleichzeitig geschehen.
Wenn es 10 Gruppenchats geben soll und insgesamt 100 Nutzer, sind es 10 Gruppenchat-Prozesse und 100 Nutzer-Prozesse.
Das ist also die Staerke von Erlang, es loest perfekt dieses Problem des Chats - sehr einfach sogar - und etwas anderes als Erlang fuer dieses Problem zu verwenden muss man recht aussergewoehnliche Gruende haben.
Erlang ist leicht zu lernen und wir koennen ein gesamtes Chatsystem in schon weniger als 40 Zeilen Code errichten: synrc/sample
Einen weiteren Gedanken moechte ich aussern und einen Vorteil vom serverseitigen Generieren von HTML, JS, CSS etc. beleuchten, naemlich dies erlaubt einem weit ausdrucksstaerkere Sprachen fuer die Generierung dessen zu benutzen, wie Lisp, Smalltalk, oder Erlang selbst.
Es ist also durchaus moeglich, zig tausende Zeilen Code zu sparen, wenn man beispielsweise Formulare und Listen jeder Art komplett wegabstrahiert (das meiste in einem Social Network kann als Liste gesehen werden, vom Chatverlauf zur Liste der Benachrichtigungen im Dropdown, News-Feed etc.). Ich wuerde also all diese Fliegen mit einer Klatsche schlagen, indem ich Module fuer Listen und Formulare programmiere, die ueberall, und wirklich ueberall wiederverwendet werden koennen und auf die alles andere aufbaut.
Siehe auch Rebol: REBOL in One Line (R2 One-liners)
Viel Erfolg.