Beautiful Code

Warnung: technische Inhalte.

Wo ich doch gerade Haskell lernen will, habe ich erst das Kapitel von Simon Peyton Jones gelesen. Wirklich ‘Beautiful Code’.

SPJ zitiert erst Herb Sutter’s Artikel aus 2005, The Concurrency Revolution. Kurz gesagt: die neuen Prozessoren, die mit Hyperthreading und mehreren Kernel kommen, sind nicht in der Lage, traditionell geschriebene Applikationen zu beschleunigen. Gut parallelisierte Programme flutschen da wesentlich besser. Aber diese ‚concurrency‘ (altdeutsch: Nebenläufigkeit) hat seine Tücken. Nebenläufigkeit tendiert dazu, eine Anwendung zu durchziehen und sich mit Geschäftslogik zu vermischen. Damit wird die Geschäftslogik nicht übersichtlicher. Und die Nebenläufigkeit schon gar nicht.

SPJ beschreibt eine Lösung in Haskell mit ‚Software Transactional Memory‚. Mit folgender Syntax für eine Endlosschleife:

forever :: IO () :: IO ()
— Repeatedly perform the action
forever act = do { act; forever act }

Ist das schön. Bin ich ein (.. und wie übersetzt man ‚Nerd‘?)

Ich lese noch was, und geh ins Bett.

——————-

(Wenn ich es richtig habe, war das C++ Users Journal damals gerade beerdigt, und stand das Artikel in einer der ersten Ablieferungen von Dr. Dobbs, die ich bekommen habe.) (Die CUJ-Seite sagt was anderes, aber ich glaube, die haben sich ein Jahr vertan.) (Nach einem Mail an Dr. Dobbs werden die deren Erinnerung jetzt an meiner Erinnerung anpassen. Demnächst steht da also auch 2005 anstatt 2006.)

Advertisements

Einen Kommentar schreiben

Required fields are marked *

*
*

%d Bloggern gefällt das: