Und da sehe ich wieder, warum ich PHP benutze.

Ich bin demletzt über Fred Boyle's Code Challenge gestolpert. Nicht revolutionär, aber ich dachte mir, ich könnte mir wirklich mal eine andere Umgebung als PHP ansehen. Django hat ein ansprechendes Tutorial und sieht gut designt aus, also probiere ich das.

Und Django ist wirklich gut designt; es ist eine Freude, damit zu arbeiten. Dummerweise baut Django auf Python auf, welches sich mal wieder seinen Status als "die Sprache, die ich gern mögen würde" zementiert hat.

Ich will einfach nur einen Wert bestehend aus einem Timestamp konkateniert mit einer laufenden Nummer halbwegs kompakt kodiert haben. In PHP wäre das folgender Code:
Code (PHP):
$foo = base_convert(time() . $number, 10, 36);

Damit hätte ich meine Zahl base36-kodiert, was schon mal ganz gut ist.

Problem 1: Python kann zwar Strings beliebiger Basis (zwischen 2 und 36) als Integer parsen, hat aber keine Funktion, um einen Integer in einern String beliebiger Basis zu überführen. Äh ja, sehr konsistent. Ich finde also nach einer Weile eine entsprechende Funktion auf StackOverflow.

Problem 2: Um Zahlen zu konkatenieren und dann wieder als Zahl zu benutzen, muß ich sie casten, was unter Python eine hohe Kunst ist, weil Python noch schlechtere Fehlermeldungen als PHP ausgibt. Ich habe eine halbe Stunde lang an "TypeError: not all arguments converted during string formatting" geknabbert, bis ich zufällig herausgefunden habe, daß es in meinem Fall bedeutet: "Ich erwarte einen int, aber da ist ein string." Ganz ehrlich, das ist nicht hilfreicher als "unexpected T_PAAMAYIM_NEKUDOTAYIM". Immerhin kann einem bei Letzterem Google noch helfen; "not all arguments..." passiert wohl in allen möglichen Kontexten.

Ich denke, ich probier's lieber mit Ruby on Rails weiter. Python ist nicht gut für meinen Blutdruck.