Projekt: Ein Nachmittag mit Python

Cory Doctorow hat mich mit Little Brother auf eine Idee gebracht.

Grüne Python cc-by-sa: flickr-user nasmac

Nämlich: Ich will mir die allergrundlegendsten Grundbegriffe einer Programmiersprache aneignen. Warum? Das erklärt die Passage, die mich auf die Idee brachte:

If you’ve never programmed a computer, you should. There’s nothing like it in the whole world. When you program a computer, it does exactly what you tell it to do. […] You can learn to write simple code in an afternoon. Start with a language like Python, which was written to give non-programmers an easier way to make the machine dance to their tune. Even if you only write code for one day, one afternoon, you have to do it. Computers can control you or they can lighten your work — if you want to be in charge of your machines, you have to learn to write code.1

Damit es keine Endlosstory wird, habe ich beschlossen: ich mache das tatsächlich nur einen Nachmittag lang. Oder, nach der „Steter Tropfen“-Methode, die sich beim Scribus lernen bewährt hat: immer mal wieder, mit mitlaufender Zeiterfassung, vier Stunden lang. Ich weiß, der Ruby-Fan asaaki wird mich jetzt dafür hassen: Ich habe mich für Python als Objekt meiner ersten Programmier-Gehversuche entschieden.

Warum ausgerechnet Python und nicht Ruby, Go oder gar C?

  1. Es ist in Linux „mitgeliefert“, ich brauchte nur die doc(umentation) noch zu installieren.
  2. Es ist Open Source und gut dokumentiert.
  3. Es ist eine erprobte Sprache, die schon länger ‚am Markt‘ ist, kein Newcomer wie Go. Daher gibt es massig Tutorials. Die Auswahl ist mir wichtig: Manchmal erklärt nämlich ein anderes Tutorial genau das, was ich in der ersten nicht verstehe, so, daß ich es dann doch begreife. Und es gibt schon eine Masse an Projekten, die mit Python realisiert sind.

Allgemein war das aber eine ziemliche Bauchentscheidung. Ich hätte wirklich genausogut Ruby wählen können! (Und vielleicht mach ich ja eine ähnliche Aktion nochmal mit anderen Sprachen.)

Und warum diese Beschränkung auf einen Nachmittag? Warum mache ich mich nicht gleich an Sachen, mit denen ich dann auch tatsächlich was anfangen könnte? Ich habe ja durchaus ein paar Dinge, in die ich mich wirklich dauerhaft ein wenig reinschaffen möchte: PHP zum Beispiel, meine HTML– und CSS-Fähigkeiten könnten auch mal wieder etwas Aufbesserung vertragen, und Shellskripte sind sowieso ein Dauerthema. Mit allen diesen Sachen will ich aber wirklich was. Sie sind kein Selbstzweck. Mein kleines Python-Projekt dient lediglich dem Lerneffekt. Ich weiß noch nicht, was dabei rauskommen wird, ob überhaupt was herauskommen wird. Es dient lediglich dazu, mich einmal heranzutasten an das „programmiererische Denken“ – beinahe Selbstzweck und damit weit spielerischer, als ich das bei Shellskripten oder PHP könnte.

  1. Cory Doctorow: Little Brother, pdf edition, S. 43.

2 Kommentare

  1. Geschrieben am 2. Juli 2010 um 05:52 | Permalink

    Ich hasse dich nicht dafür. Warum sollte ich auch?

    Diese „Für einen Nachmittag“-Methode werde ich vielleicht auch einmal für Python durchlaufen lassen, aber ich weiß jetzt schon, dass ich bei Ruby bleibe, da ich mir hierzu schon recht viel Wissen angeeignet habe, die ganzen Gems mag und Projekte in dieser Sprache realisieren will.

    Zwischen Programmier- und Auszeichnungssprachen ist halt ein kleiner Unterschied: an HTML, CSS (und JS als Dynamisierungspart) kommt man nicht vorbei, denn das Web will es meist so und nicht anders. Bei der Backend-Geschichte bin ich freier und doch am Ende mehr gefangen. Da ich so viele Möglichkeiten hab (PHP, Python, Ruby, C/C++, whatever netztauglich ist), wähle ich einen Weg und verbleibe dort (oder zumindest für eine große Zeitspanne).

    Ich habe ja schon ein Problem damit, zwischen Ruby- und PHP-Code zu wechseln (zumal PHP gegen Ruby [und sicher auch Python] unheimlich hässlich ist). Und obwohl ich PHP sogar wesentlich länger kenne, beherrsche ich es auf aktuellem Stand genauso gut wie Ruby selbst, so jedenfalls mein Bauchgefühl.

    Übrigens: wenn du Python auch fürs Web nutzen willst, schau doch mal, ob es so eine geile Implementation wie HAML/SASS gibt (ansonsten kannst du dies auch via Shell nutzen). Damit macht templaten nochmal so richtig Spaß!

    [links] HAML (smartes HTML) SASS (smartes CSS)

    Hierfür braucht man Ruby nur in minimaler Ausstattung (also Ruby, Rubygems und dann die Gem „haml“ installieren, das sollte es dann schon gewesen sein.)

    So, jetzt hab ich hier aber genug rumgesülzt, nur noch mein Schlusswort.

    Ich hoffe, dir hat der Ausflug in andere Sprachwelten Spaß gemacht. Bleibt definitiv beim Shellscripting, PHP ist nicht mehr soooo wichtig (trotz der hohen Verbreitung), HTML solltest du dir in Version 5 schon einmal anschauen und ggf. damit spielen, mit CSS in Version 3 dasselbe, Flash kannst du dann getrost liegen lassen, Javascript nur auf Bedarf der Seite (es gibt zu viele Libs, die einem eh alles an Arbeit abnehmen). Python und Ruby sind jedenfalls zukunftsträchtig und könnten vielleicht in 10 Jahren PHP fast verdrängen, wenn die Hostingangebote entsprechend angepasst werden und den Einstieg attraktiver machen.

    So long, happy coding!

  2. ryuu
    Geschrieben am 2. Juli 2010 um 20:47 | Permalink

    Daß Python schöner (d.h. vor allem übersichtlicher!) aussieht als PHP, kann ich schon bestätigen.

    Im Übrigen bin ich mit dem Projekt ja noch nicht durch: ich habe jetzt laut Zeiterfassung eine Stunde 22 Minuten damit verbracht. Aber bald kann ich wahrscheinlich berichten, bis wohin ich es gebracht habe.

    Ich kann übrigens dieses Tutorial empfehlen: A Byte of Python in German. Sehr schön, übersichtlich und Schritt für Schritt erklärt.