Der Unterschied zwischen .NET mit ein bißchen ASP und Scriptsprachen wie PHP läßt sich am besten an einem Beispiel deutlich machen.
Irgendwann im April/Mai fragte mich jemand, ob man innerhalb meines Angebotes PDF-Dokumente erstellen könne. Grundsätzliches Problem: Das ist aufwendig, dauert - es macht also wenig Sinn, das interaktiv zu machen und den Nutzer solange warten zu lassen.
Relativ simple Lösung: Einen Windows-Dienst machen (das sind - dank der Objektorientiertheit - ein paar Zeilen), dieser stellt ein Remote-Objekt bereit, das wird synchron von der Webseite her aufgerufen und ruft selbst asynchron einen Arbeitsthread auf, der das eigentliche Generieren des PDF-Dokuments erledigt.
Ergebnis: Ein eigenständiger Prozeß, der völlig unabhängig vom Webserver ist, theoretisch sogar auf einem anderen Server laufen kann (sehr gut für die Skalierbarkeit) und der diesen Dienst bereitstellt.
Solche Architekturen, die sich in mehrere Prozesse aufspalten lassen, die selbst wiederum auf verschiedenen Servern laufen können, sind im Internetzeitalter einfach unverzichtbar. Ich weiß auch nicht, ob so eine Remotearchitektur mit Java möglich wäre. Theoretisch geht das mit Soap, praktisch ist Soap auch mit NET möglich, aber - technisch bedingt - erheblich langsamer.