Von Neakro am 20. June 2009, 23:59
Eigentlich bin ich ja nicht so der Web 2.0-Typ. Twitter interessiert eigentlich mich auch nicht. Dennoch interessiere ich mich seit einiger Zeit für Twitter. Aber nicht für den Inhalt, sondern für dessen API.
Es fing mit Langeweile an. Seit vielen, vielen Wochen sitze ich herum und habe nichts zu tun. Abitur geschafft, aber eeewig Zeit bis es irgendwie weitergeht (morgen gibt’s das Zeugnis). Deshalb lag es nahe sich weiterzubilden und so habe ich angefangen mich mit Python zu beschäftigen. Angeblich soll Python sehr einfach und gut durchdacht sein und vor einigen Monaten wagte ich ja schon erste Gehversuche, gab es aber relativ schnell auf, da die Schule rief.
Ein Projekt war schnell gefunden: Ein IRC-Bot, der Twitterstati von Personen in IRC schreibt und auch für Leute schreiben kann. Passenderweise gibt es auch direkt 2 Bibliotheken: python-irclib und python-twitter. Dadurch entfiel ein Großteil der Arbeit, die auch fundiertere Kenntnisse Pythons verlangt hätte. Netzwerk ist meiner Meinung nach nichts für jemanden, der gerade mit einer Sprache anfängt.
Aber auch so stellte es eine Herausforderung dar. Mehrere Klassen, Multithreading und als besonderes Schmankerl: die Syntax. Man darf sie nicht unterschätzen, habe ich festgestellt. Ein Leerzeichen zu viel und schon startet das Programm nicht. Auch das Schreiben vom Methoden (nicht zu verwechseln mit Funktionen) mit dem obligatorischen Parameter self ist gewöhnungsbedürftig. Genauso wie der Zugriff auf Variablen in Klassen. Am fiesesten finde ich aber die runden Klammern. An falscher Stelle platziert hat man plötzlich ein Tuple.
Schwer war auch die Umgewöhnung von der Programmierweise in Java zu der in Python. Viele Sachen sind einfach anders gelöst. Teils eleganter, teils weniger elegant.
Die Python-Befehlsreferenz ist sehr gut. Auf der Python-Webseite finden sich alle eingebauten Funktionen sehr gut dokumentiert. Ich glaube aber, dass dies erst seit Python 3.0 so ist. Erinnert mich ein wenig an Java, obwohl die Javadocs noch ein Wenig besser sind.
Nach einiger Eingewöhnungszeit programmiert es sich ganz flüssig in Python. Hier und da vergesse ich noch ein self, aber insgesamt gefällt mir Python immer besser. Besonders wegen der kleinen funktionalen Anteile à la foo = [bar.lower() for bar in foo].
Den Bot werde ich hier bald veröffentlichen, dann kann ihn jeder testen.
Sehr schoen. Hab ja die Entwicklung mitbekommen und die ein oder andere Anregung beisteuern koennen. Freu mich schon drauf, das Teil mal selbst ausprobieren zu koennen.
Die aktuelle Entwicklung kann man übrigens im Channel #twidderbot auf Quakenet anschauen.