Dienstag, Januar 30, 2007

Lisp vs. XML

Ein ebenso beliebtes wie altes Argument gegen Lisp sind die Klammerungen: "Durch die vielen Klammernist der Code unleserlich."

Interessanterweise stören sich dieselben Leute aber nicht an XML. Oder wollen die allen Ernstes behaupten, dieser XML-Code


<html>
<body>
<h1>Eine Überschrift</h1>
<p>Findest Du mich zwischen all dem XML?</p>
</body>
</html>


sei besser lesbar als seine Entsprechung in Lisp


(html
(body
(h1 "Eine Überschrift")
(p "Ich bin ganz leicht zu finden!")))


?


(Für die Erbsenzähler: Der XML-Code benötigt 50% mehr Zeilen und 30% mehr Tastenanschläge - ohne Einrückungen).

Tse, tse...

Post bewerten

Montag, Januar 29, 2007

Warum ich integrierten Lösungen misstraue

Ich habe mich in letzter Zeit immer wieder dabei ertappt, dass ich bestimmten Lösungen pauschal misstraue. Dabei spielt es keine Rolle, ob es sich um eine Bibiothek, eine Framework, eine Entwicklungsumgebung oder ein anderes Werkzeug handelt.

Ich fragte mich:
  1. Was ist allen diesen Lösungen gemeinsam?
  2. Ist dieses gemeinsame Merkmal der Grund für mein Misstrauen?
  3. Ist mein pauschales Misstrauen wirklich gerechtfertigt oder bin ich meinen eigenen diffusen Vorurteilen erlegen?

zu 1) Die Gemeinsamkeit der Lösungen liegt in der Integration. Die Lösungen werden damit, besonders gut oder weitgehend integriert zu sein. Das trifft z.B. auf EJBs zu, die verteilte Methodenaufrufe,Transaktionshandling und Security integrieren. Es trifft auf immer mehr Application-Server zu, die sichnicht auf die reine JEE-Technologie beschränken, sondern zusätzlich ESBs (Enterprise-Service-Bus), BPEL, SOAPetc. unterstützen und mit JEE integrieren. Und es trifft auf fast alle kommerziellen Tools zu, die z.B. direkteinen bestimmten Application-Server integrieren.

zu 2) Ja, ich gestehe: Das was die Hersteller als großen Vorteil ihrer Lösung herausstellen, bereitet mirein diffuses Unbehagen.

zu 3) Was also könnte ich - unterbewusst - gegen Integration haben? Integrierte Lösungen nehmen mir dochArbeit ab. Integration hat je nach Geschmacksrichtung unabdingbare die alles andere als wünschenswert sind:Die erste Geschmacksrichtung gibt den monolithischen Lösungen einfach einen neuen Namen, nämlich "integrierteLösung". Bei der zweiten Geschmacksrichtung besteht die Gesamtlösung aus verschiedenen Teilen, die integriertsind. "integriert" bedeutet, dass es mind. eine Abhängigkeit zwischen den Einzelteilen geben muss.
Integrierte Lösungen beider Geschmacksrichtungen führen dazu, dass man die Lösung mehr oder weniger komplett verwenden muss. Auf jeden Fall ist es schwierig, für einen Aspekt der Gesamtlösung eine alternative Einzellösungeinzusetzen. Das ist für kleine Projekte vielleicht noch akzeptabel, für große Projekte ist es eine Katastrophe:Man bindet sich im Grunde für alle Zeit an die Gesamtlösung und hat keine Chance, von neue Entwicklungen am Marktzu profitieren.
Darf man also keine Lösungen einsetzen, die sich "integriert" nennen? Doch, indem man sie deintegriert! Dazu teiltman ein großes Projekt in einzelne Subsysteme auf, die technologisch lose gekoppelt sind. Lose Kopplung bedeutet hier, dass sich die verwendeten Technologien innerhalb eines Subsystems austauschen lassen, ohne dass Änderungenan anderen Subsystemen notwendig werden.

Konkret kann man eine solche technologisch lose Kopplung leicht durch gängige Kopplungstechnologien wie REST,XML-RPC, JSON-RPC oder SOAP erreichen. Dann spielt es für die Kopplung keine Rolle, ob die einzelnen Subsystemeintern EJBs, Hibernate oder Spring verwenden und ob als Programmiersprache Java, Ruby, Cobol oder sonstwas eingesetzt wird.

Post bewerten

Für Groovy stimmen!

http://www.java.net/pub/pq/143

Post bewerten

Dienstag, Januar 02, 2007

3 Dinge über mich

Martin reichte das Staffelholz an mich weiter. Jetzt muss ich also drei Dinge von mir erzählen, die (fast) keiner weiß:

  1. Als Schüler habe ich 2 Wochen lang in der Tischlerei meines Vaters gearbeitet (Kunststoff-Fenster zusammenbauen). Wahrscheinlich hat diese Erfahrung den Ausschlag dafür gegeben, dass ich mein Abi doch noch geschafft habe und studieren konnte. Denn: Nach den 2 Wochen war für mich vollkommen klar, dass ich ich nicht einen Tag länger Kunststoff-Fenster zusammenbauen will. Natürlich ist die Arbeit eines ausgebildeten Tischlers abwechslungsreicher, aber das war mir damals nicht klar.

  2. Ich habe als Schüler zusammen mit Henning angefangen, einen Oberon-Compiler zu programmieren - in Modula-2. Wir haben immerhin den Parser hinbekommen, aber dann waren die Schulferien zu Ende. Interessant, wie man dazu neigt, unsinnges Zeug zu bauen. Gerade der Parser ist der einfache Teil, den man sich schon damals eigentlich aus der Grammatik-Beschreibung generieren ließ.

  3. Als wir vor 5 Jahren unser Haus bauten, mussten wir beim Urlaub sparen. Daher haben Silke und ich uns gegenseitig mit einem preisgünstigen Ein-Wochen-Urlaub in Deutschland überrascht. Sie führte mich nach Usedom, ich sie nach Fehmarn. Auf Fehmarn gehörte ein Surfkurs zum Urlaub dazu. Anfänglich stand unsere junge Ehe etwas auf der Kippe, weil es - trotz August - bei 13 Grad stürmte und Silke auf gar keinen Fall in die "algige" Ostsee wollte. Trotzdem haben wir den Kurs gemacht und sind seitdem Windsurf-addicted. Schon skurril, dass ein Spar-Versuch dazu führt, dass man bei einem so teuren Hobby landet.



Und jetzt muss ich drei neue Opfer benennen, die etwas über sich veröffentlichen, was keiner weiß: Kai, Bernd und Arne.

Post bewerten