F_GXdx schrieb:
Ich gebe allerdings zu bedenken, dass eine stark objektorientierte Sprache wie Java für Portale wie Facebook "by design" nicht geeignet scheint.
ich möchte nur mal erwähnen, dass die professionellen Entwicklungen von Software egal welche Sprache meist auf MVC aufsetzen, also auch große Frameworks einsetzen die hoch-objektorient sind, siehe z.B. das Zend Framework.
F_GXdx schrieb:
Gerade wenn viele kleine Objekte und Befehle auszuführen sind, ist die Speicherverwaltung von Java und die große Menge an Klasseninstanzen einfach nicht effektiv.
du darfst nicht die Speicherverwaltung von Java mit C vergleichen

Das Erzeugen eines Objektes benötigt in Java nur noch ~10 Maschineninstruktionen [1] und ist somit wirklich sehr leichtgewichtig, mir ist so auch keine Sprache bekannt, bei der das schneller geht.
Von daher ist die Objektallokation extrem effizient, der Garbage Collector ist eben eine Sache über die man sich streiten kann, aber durch den generationsbasierten Ansatz ist das Wegräumen sehr kurzlebiger sehr sehr schnell, nur wirklich langlebige Objekte aufzuräumen ist "langsam" - bezogen auf die kurzlebigen.
Betrachtet man Java nun als Anwendungszweck für ein Facebook werden in einem wenige Millisekunden dauernden Request viele Objekte angelegt, die aber genauso schnell wieder weggeräumt werden können da sie nur sehr kuzlebig sind oder sogar nur lokal angelegt werden, ich verspreche dir die Objektorientierung ist da wirklich kein Problem.
Ich arbeite viel mit einem Java NIO-Framework (asynchrones IO) namens Netty, da wird quasi jede Nachricht die du von und zum Client überträgst durch viele Objekte dargestellt (Transformationen in einer Pipeline: echte Objekte zu Bytes für den Stream), langsam ist da nichts, limitierend ist immer die verfügbare Netzwerkbandbreite, selbst wenn ich die ganzen Objekte einsparen würde
F_GXdx schrieb:
Auch wenn häufige Datenbankeninteraktion ins Spiel kommt, ist es schwer zu glauben, dass man da mit Java effektiv arbeiten kann.
Die Java VM ist eine über die Jahre am besten optimierte virtuelle Maschinen (vllt sogar die beste?) geworden, das Problem ist nur, dass dies einige nicht wahrnehmen weil zu Zeiten von 1.4 und davor (10 Jahre her) die Performance wirklich nicht so dolle war, was vor allem aber auch an den GUIs lag, die sind zwar heute besser, aber ein Fan bin ich ehrlich nicht davon.
Und für heutige Argumente werden dann eben funktional überladene Beispiel wie Vuze oder Eclipse gebracht, das Eclipse mal 1 Sekunde hängen kann liegt nicht an Java sondern an der Art wie Eclipse gebaut ist, Plugins können sich an 1 Million Hooks, baut da an einer Stelle ein Entwickler mal Mist, kann es eben schonmal hängen.
Also bloß nicht Java als langsame Sprache abtun, die Sprache ist hochoptimiert, ob man damit entwickeln möchte oder auf "coolere" (neuere) (Script-)Sprachen setzt ist ein anderes Thema, aber die Performance ist gigantisch.
Wie gesagt sollte man aber nicht nur die Performance betrachten auch Frameworks usw. und vor allem die eigene Produktivität in der Sprache.
Wenn man brachiale Performance benötigt kann man diese wenigen Teile immernoch neu in einer anderen Sprache programmieren.
[1] Java Concurrency in Practice, Kapitel 11.4.7