Mon, 06 Jul 2009
Meine RedeI can honestly say if someone had shown me the Programming Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never created Groovy.
Ich hab das ja schon vor drei Jahren gesagt!
(Auch interessant, im obigen Artikel verlinkt.)
Thu, 16 Apr 2009
Poor Programmer's ComedyManchmal liest sich die Java API-Dokumentation doch unterhaltsam:
Some computer standards are defined in terms of Greenwich mean time (GMT), which is equivalent to universal time (UT). GMT is the "civil" name for the standard; UT is the "scientific" name for the same standard. The distinction between UTC and UT is that UTC is based on an atomic clock and UT is based on astronomical observations, which for all practical purposes is an invisibly fine hair to split.
Sun, 13 Jul 2008
Low hanging fruitsEs gibt berechtigte Hoffnung, dass ein über elf Jahre alter Bug in Java (ursprünglich gegen 1.1 reported) gefixt wird.
Maybe, just maybe, we'll finally be able to copy files in Java 7.
Ein Kommentar zu dem Artikel: It's this little stuff that has made being a java programmer embarrassing at times.
Sun, 21 May 2006
New Kid On The BlockUnd noch eine interessante Programmiersprache: Scala. Statisch getypt, aber mit Type Inference und "alles ist ein Objekt" (also gehen auch Funktionen höherer Ordnung), Operator Overloading, Mixins a la Ruby, Currying, Sequence Comprehensions (äquivalent zu List Comprehensions in Python), Generische Klassen (wie Generics in Java) und was weiß ich noch alles. Sieht extrem interessant aus, vor Allem vor dem Hintergrund, dass sich das Zeug zu Java-Bytecode kompilieren läßt und auch selbst Javaklassen benutzen kann.
Aber bestimmt ist das wieder viel zu cool, um akademische Kreise zu verlassen.
Tue, 16 May 2006
aptitude install sun-java5-jdkSeit heute ist Java (Runtime + JDK) per apt direkt von den
offiziellen Mirrors installierbar (sofern man non-free in der
sources.list hat). Wenn man vorher den Weg über
make-jpkg gegangen ist, sollte man das selbstgebaute Paket
vorher wahrscheinlich besser entfernen.
Hintergrund der Änderund ist, dass Sun sich durchgerungen hat, die Lizenz ein wenig zu lockern. Naja, irgendwas müssen die ja machen, wenn schon .NET nach Linux portiert wurde. So ganz koscher ist die neue Lizenz aber anscheinend auch nicht (siehe Kommentare in obigem Link).
Mein Eclipse hatte übrigens erstmal Probleme, $JAVA_HOME
zu finden. Um dem abzuhelfen habe ich
/usr/lib/jvm/java-1.5.0-sun in die erste Zeile der
/etc/eclipse/java_home eingetragen. Nu löpts.
Fri, 24 Mar 2006
public static Integer foo(Collection<Integer> c)Oh Mann. Was ich für meine Diplomarbeit programmiere, darf ich entweder in
PL/SQL oder in Java machen (obwohl, heute hat $CHEF auch C fallen
lassen, aber das kann ich nun gar nicht). Gut, die Entscheidung war einfach,
aber glücklich werde ich damit wohl auch nicht.
Offenbar hat die Zeit, in der ich Java nicht mehr anfassen mußte gereicht,
mich so einige Dinge vergessen zu lassen. Und zwischendurch habe ich Dinge
gelernt, von denen ich "damals" noch gar nichts wußte. Es ist ja schon
idiotisch, dass ich tatsächlich jeden Scheiß in eine Klasse stecken muß. Aber
diese statische Typisierung macht mich total fertig. Ich brauchte zum
Beispiel eine Funkt^WMethode, die von drei Elementen das kleinste
zurückgibt. Math.min in seinen verschiedenen Inkarnationen (für
int/Integer, double etc.) nimmt aber nur jeweils zwei
Elemente an. Schachteln wäre eine Möglichkeit gewesen, ging aber gegen meinen
Stolz. Gut, dachte ich: guckst Du mal im Collection-Interface nach,
ob es da sowas gibt. Natürlich gibt es sowas nicht, denn dann müßte die
Collection ja sicherstellen, daß jedes Element auch das Interface
Comparable implementiert. Also fange ich an eine Methode zu
schreiben. die eine Collection mit Comparables annimmt und ein Comparable
zurückgibt (Java 5.0 sei Dank geht das ja ohne Casten). Das klappt aber auch
nicht, weil ich mit dem Comparable später rechnen will und der Compiler sich
nicht sicher ist, dass das geht. Muß ich also doch casten. Eine andere
Überlegung war, einfach die Vergleichsfunkti^H^H^H^H^H^Hmethode per Parameter zu
übergeben. Geht ja aber auch nicht, weil Methoden in Java keine Objekte sind.
Das gleiche Problem fünf Minuten später. Ich hatte mich entschieden, eine
weitere Methode static zu machen. Danach maulte Eclipse mich an,
dass ich this im Kontext einer statischen Methode nicht benutzen
dürfte. Ich frag mich wieso, this könnte dann doch einfach auf die
aktuelle Klasse zeigen. Aber ne, Klassen sind ja auch keine Objekte...
Ach, und die Klasse String ist aus mir unbekannten Gründen
als final gekennzeichnet. Tolle Wurst. Was ich mache, wäre nämlich
am besten in einer Unterklasse von String aufgehoben. Aber ich kann
natürlich auch die tausendste StringWrapper selbst implementieren,
bitte sehr, gern geschehen.
Sicher, es ist immer etwas schwierig, sich auf ein neues/ungewohntes Paradigma einzustellen. Und diese statische Typisierung hat bestimmt auch irgendwelche Vorteile, die mir grad nicht einfallen. Mir ist aber heute so richtig klargeworden, wie sehr man in solchen Sprachen damit beschäftigt ist, nur den Compiler zufriedenzustellen, obwohl man doch genau weiß, was man tut. Bevormundung durch Technik. Nix für Leute mit Stolz. :->