Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2010  »  01  »  Nebenläufig  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Referenzen

Der in Zeile 71 folgende Ausdruck enthält eine weitere spezielle Datenstruktur: eine Ref. Der Befehl »repeat« wiederholt sein zweites Argument (den leeren Vektor »[]«) so oft, wie im ersten Argument angegeben. Auf dieses Resultat erzeugt dann »ref« eine besondere Referenz, und Clojure bindet sie dann an die Var »world«. In »world« speichert das Programm später die errechneten Werte. Für Clojure sind Daten aber wie gesagt unveränderlich. Es stellt sich die Frage, wie das Programm die Werte dort speichern kann.

Refs sind eine Besonderheit von Clojure, die kompliziertes Locking der Daten durch ein elegantes Transaktions-System ersetzt. Eine Transaktion verändert den Zustand mehrerer Refs in einem Thread, andere Threads bekommen immer einen konsistenten Zustand zu sehen.

Ab Zeile 73 folgen zwei Funktionen, die direkt Java-Klassen verwenden und das Abbild der »world« in einen Grafik-Kontext zeichnen. Die Funktion »make-world-image« demonstriert die Instanziierung eines Objekts der Klasse »BufferedImage« mit dem Befehl »new« - für Java-Programmierer vertraut.

Der Befehl »inc« liefert sein Argument um 1 erhöht zurück, »doseq« realisiert alle Werte der übergebenen Sequence, die ja lazy sein kann, um die hier gewollten Seiteneffekte zu bewirken. »when« funktioniert wie ein »if«, nur ohne »else«. Einen Aufruf einer Java-Methode auf dem Objekt »img« zeigt der Befehl ».setRGB«. Das ist fast das Gleiche wie in nativem Java-Code, nur dass die Methode vor dem Objekt steht. Bei der Erzeugung eines Color-Objekts zeigt das Beispiel etwas syntaktischen Zucker: Statt »(new Objekt)« erlaubt Clojure auch das kürzere »(Objekt.)« mit einem Punkt hinter dem Namen der Klasse.

Agents

Der Ausdruck in Zeile 96 zeigt die dritte besondere Datenstruktur von Clojure in diesem Beispiel: den Agent. Clojure erzeugt Agents, wenn es den Befehl »agent« findet, in diesem Falle einen Agent auf eine leere Map. Agents sind ein anderer Referenztyp und erlauben es, einen Wert asynchron zu ändern. An den Agent schickt ein Programmteil eine Funktion, die dann zu einem späteren Zeitpunkt und in einem separaten Thread ausgeführt wird. In diesem Beispiel verwendet das Programm einen Agent, um asynchron das Neuzeichnen der Welt zu signalisieren.

Sie können diesen Artikel als PDF für 99 Cent kaufen. Klicken Sie dazu einfach auf eine der beiden Bezahloptionen Paypal oder ClickandBuy.


Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Code-Vehikel Alternativen zu den populären Programmiersprachen
Android: Der Rivale Googles offene Plattform für mobile Endgeräte - der erste Eindruck
Konservierungsmittel Objektdatenbank Db4o für Java und Mono
Schön rechnen Grafisch anspruchsvolle Bilder programmieren mit Processing
Wissenstransfer Aussichtsreiche Würfelkandidaten unter der Lupe
Groß in Mode Workshop: Major Modes für (X)Emacs
Whitepaper
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele

Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
The Role of Open Source in Data Integration

Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.

Download PDF (Registrierung erforderlich)
Kommentare (4)
von
ska,
16.03.2010 23:28
Buch angekündigt
Das in der Autoren-Info angedeutete Buch hat mittlerweile eine Webseite: http://www.clojure-buch.de
von
ska,
09.12.2009 15:06
Re: Autsch
Hallo Joschi,

der Teil war humorvoll gedacht, hat aber scheinbar nicht geklappt. Wir haben uns doch zu sehr an Smilies im Text gewöhnt, und Texte ohne diese Auszeichnung verfehlen dann ihre Wirkung.
von
joschi,
06.12.2009 13:58
Autsch
"einfache alte Java-Objekte"

Dem geneigten, fachkundigen Leser ist zwar klar, dass POJOs (plain old Java objects) gemeint sind, allerdings war diese mit dem Holzhammer erzwungene Übersetzung wirklich unnötig.
von
FB,
03.12.2009 16:46
Fehler im Link
Der Link zum ausführlichen Artikel ist fehlerhaft. Richtig ist
http://java.ociweb.com/mark/clojure/article.html