Skip to content

Deadlines

Heute war mal wieder so ein Tag. Eigentlich wollte ich das Wochenende dazu nutzen mal wieder auszuspannen, ein wenig zu zocken und ansonsten jegliche Arbeit vermeiden. Nunja, meine Vorstellungen und die Wirklichkeit unterscheiden sich zumeist erheblich, und so ist es kein Wunder, das auch dieser Samstag vor die Hunde ging.
Nachdem ich schon recht früh aus dem Bett geklingelt wurde weil der Postbote ein Paket hatte, meldete sich kurze Zeit später ein Kollege weil er dringend noch ein paar Funktionen im Backend benötigt und andernfalls die Deadline nicht einhalten kann. Die Deadline ist Dienstag und da das eigentlich schon von Anfang an unrealistisch war, muss jetzt halt das Wochenende durch gearbeitet werden.

Ich für meinen Teil konnte mich an dieser Stelle mal wieder mit Hibernate rumärgern. So praktisch Hibernate auch ist um Tabellen auf Objekte zu mappen - es ist in weiten Teilen einfach noch viel zu beschränkt! Man kann die Mächtigkeit von SQL oft gar nicht in HQL umsetzen. Das fängt bei delete-statements an, die Hibernate erst seit kurzem überhaupt kann (wie gut kann ich nicht beurteilen - einfach so umsteigen geht nicht, da dies in höchstem Maße unsere Daten gefährden würde) und geht weiter bei fehlender Unterstützung für Schlüsselwörtern wie INTERSECT bis hin zu den Ärgernissen die man mit Sessions und lazy-initialisation hat.

Das Problem ist auch das die Deadline am Dienstag nicht die einzige ist. Am Mittwoch und in der Woche drauf warten schon die nächsten. Und noch Problematischer ist das man das Tagesgeschäft ja auch nicht so einfach vernachlässigen kann. Und wenn dann noch, wie nächste Woche, ein Kollege im Urlaub ist, dann kann man eigentlich schon den Schlafsack mit auf Arbeit nehmen und gleich dort bleiben.

...vielleicht sollte man mal die Produktmanager und Vertriebler eine Woche lang unsere Arbeit machen lassen, damit sie am eigenen Leib erfahren, das eben doch nicht alles so einfach und schnell geht wie sie sich das vorstellen. ...aber das wird wohl auch weiterhin ein Wunschtraum bleiben.

echt groovy...

Und zwar geht es um die relativ neue Sprache Groovy.
Bei uns in der Firma wird jetzt auch Groovy eingesetzt, und so hab ich mich mal näher damit befasst. Und ich kann nur sagen: krass! Groovy verbindet echt die Vorteile von Interpretersprachen mit den Vorteilen von Java. Die Groovy-Scripte muss man nicht in Bytecode compilieren - das geschiet quasi on-the-fly wenn man das Script aufruft. Dadurch entfällt das neustarten des Tomcat wenn man mal eine Änderung macht: einfach das Script durch die neue Version ersetzen, und fertig!

Aber Groovy ist nicht einfach eine neue Sprache, sondern setzt auf Java auf. D.h. man kann komplexeren Code der sich seltener Ändert weiterhin in Java schreiben und in den Groovy-scripten benutzen. Dadurch kann man auch alle liebgewonnenen Frameworks und Libraries weiter verwenden (z.B. Spring, Hibernate, jakarta.commons).
Überhaupt lässt einem Groovy viele Freiheiten. So kann man sich beispielsweise aussuchen, ob man einen Befehl mit einem Semikolon abschließt, oder ob man nur einen Zeilenumbruch macht, und das Semikolon ganz einfach weg lässt. Und wo wir grade bei weglassen sind - das gilt auch für Variablentypen. Man kann sich aussuchen, ob man für eine Variable einen bestimmten Typ festlegen will, oder ob man das lieber dynamisch haben will.

Groovy unterstützt außerdem sogenannte Closures. Wenn ich also ein XML hab, kann ich einfach sowas sagen wie
def document = new XmlSlurper().parse("urlZumFile.xml");
document.einNode.childNode.each() { currentNode ->
  // ... mache irgendwas
}

..cool, nicht war?

Das geht auch mit SQL, Files und soweiter. Das "def" gibt dabei übrigens an, das man die variable nicht typisieren möchte. Was an dem Beispiel noch auffällt: man kann direkt auf alle child-nodes zugreifen, ohne erst umständlich ein getElement() oder sowas machen zu müssen.

Das Editor-Plugin für Eclipse ist sicher noch verbesserungswürdig, aber durchaus zu gebrauchen. Wenn man eine Klasse verwendet die man nicht includiert hat, dann meckert er zumindest schon mal - das schafft PHP-Eclipse bis heute nicht, und das gibts schon länger :-D

Man kann damit also schnell mal ein Script, auch für kompliziertere Dinge schreiben. Meiner Meinung nach lohnt es sich wirklich mal einen Blick auf Groovy zu werfen: http://groovy.codehaus.org/