Nachdem der ganze Wahnsinn in Sachen immer-schnellere-CPUs-jedes-Jahr an physikalischen Grenzen scheiterte, werden neue (bzw. seit langem bekannte, aber nicht beachtete) Wege beschritten. Joe Armstrong hat in seinem Vortrag bei der Erlang Exchange 2008 über skalierbare Software, Concurrency und Fehlertoleranz gesprochen. Die Slides findet man hier.
Bei der Erlang Exchange 2008 Konferenz wurde das vom Zuse Institut Berlin und onScale Solutions GmbH entwickelte data-store System vorgestellt. Im Vortrag kommen so wichtige Themen wie Distributed Hashtables (DHTs), transaction layer und schnelle application layer für tausendfache Lese-/Schreibzugriffe vor. Weitere Podcasts zum Thema Erlang, fehlertolerante Systeme und Concurrency kann man hier abrufen. Der originale Link zum obigen Podcast ist hier zu finden und die Slides hier.
Slides befinden sich hier, sowie als gezipptes File hier. Da im Video nicht immer alle Slides eingeblendet werden, ist es zu empfehlen, parallel zu diesem die Slides zu halten, sonst ist es recht schwierig, dem (ausgezeichneten!) Vortrag zu folgen.
In diesem Interview geht es vor allem um die aktuellen IT-Probleme wie Concurrency/Parallelism und die Vorteile der funktionalen Programmierung beim Lösen derselben.
Da mittlerweile auch die günstigsten Notebooks über einen Dual-Core-Prozessor verfügen, ist es nur eine Frage der Zeit, bis Concurrency denselben Stellenwert einnimmt wie zuvor die GHz-Zahl oder die RAM-Größe.
Da es schon seit geraumer Zeit keine “doppelt-so-schnell-wie-letztes-Jahr” CPUs mehr gibt, geht der Trend in Richtung mehr Kerne pro CPU, was wiederum neue Software auf den Plan ruft, die solche technischen Möglichkeiten ausreizen kann. Bisher hat man wohl zu 99% nur für single CPUs programmiert und auch nur solche Sprachen gelernt. Früher oder später wird man “dazulernen” müssen, wenn man es nicht schon seit LISP, Smalltalk und ADA kennt. Oder zumindest ein bisschen Haskell spricht.
Da mittlerweile selbst die günstigsten Notebooks über einen sog. “Multicore”-Prozessor verfügen, ist es nur eine Frage der Zeit, bis auch die entsprechende Software verfügbar sein wird, welche diese neue Technologie ausreizt. Um von professionelleren Einsätzen (Telco-Industrie z.B.) erst gar nicht zu reden…
The World is parallel. If we want to write programs that behave as other objects behave in the real world, then these programs will have a concurrent structure.
Use a language that was designed for writing concurrent applications, and development becomes lot easier.