Wenn man sich auf IT-Blogs und Konferenzen tummelt ist immer wieder die Rede von Concurrency, und wie wichtig das in Zukunft wird. Fakt ist sicherlich das Moorsche Gesetz in seiner alten Form ist am Ende. Wir werden uns mit immer mehr Kernen in unseren CPUs herumschlagen müssen. Fakt ist aber auch: Datenbanken und Webserver mit vielen Usern sind schon super parallelisiert. Bleiben die Clientrechner, und Webanwendungen bzw. Datenbanken mit nur wenigen Benutzern.

Ich denke im ersten Schritt wird das, was schon seit jeher zu den Best Practices gehört wichtiger: Lang laufende Aktionen werden in ihren eigenen Thread ausgelagert, damit der Benutzer nicht auf die Abarbeitung warten muss. Aber dies lastet die Prozessoren noch nicht besser aus, denn die lang laufenden Aktionen laufen lange, weil auf Ressourcen gewartet wird: Die Antwort vom Web Service, von der Datenbank oder vom Filesystem. Das ganze wird nur fixer, weil man auf drei Dinge gleichzeitig warten kann. Aber warten kann schon eine CPU mit einem Kern ziemlich gut auf ziemlich viele Dinge.Die eigentliche Frage: Was tun mit den andere Prozessoren / Kernen bleibt also. Ich sehe zur Zeit zwei Alternativen:


Daher meine apokalyptische Prophezeiung: Wer als Software Entwickler in 10 Jahren noch einen Job haben will, sollte hoffen dass Java sich zum nächsten Cobol entwickelt, und für Leute mit veraltetem Wissen viel Geld bezahlt wird, oder sie sollte sich schon mal an nicht triviale Algorithmen herantasten.