Neue Einführung in Python

Gute Links und Tutorials könnt ihr hier posten.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

nomade hat geschrieben:BlackJack hat Recht.
Das hatten wir doch schonmal per Definition geklärt :wink:
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Bei mir sind alle Code-Schnipsel auf deiner Seite in Großbuchstaben und somit auch nicht ausführbar.
farid
User
Beiträge: 95
Registriert: Mittwoch 8. Oktober 2008, 15:37

Leonidas hat geschrieben:(da würde ich eher zum vergleichbaren Praxisbuch greifen, das ist zwar teurer und (dafür?) dicker und nicht ganz son falsch).
Vielleicht waere es sinnvoller gewesen es in zwei Teile aufzusplitten. Also Teile I und II als ein Band, und Teil III als ein weiterer Band. Na ja, im Falle einer eventuellen 2ten Auflage, waere es eine Ueberlegung wert. ;)
vicbrother
User
Beiträge: 32
Registriert: Donnerstag 26. Februar 2009, 22:41

Schade dass auch dieser Kurs den aus meiner Sicht schlechten Lernansatz wählt. Ich suche ein Tutorial/Buch, welches aus objektorientierter Sicht in die Sprache einführt, also Konzepte der Objektorientierung und das Herumspielen mit class und . Die Vorteile sind m.E.:

- Es wird nicht sofort gecodet sondern erstmal der wirklich wichtige "TopDown-Objekt" Blick eines Programmiers gelehrt.

- Objektorientierung ist das derzeit meistverwendete Programmierparadigma und bietet einen hohen Wiedererkennungswert, wenn der Schüler sich bestehende Programme zu Lernzwecken ansieht.

- Andere Programmierparadigmen (insb. imperative und funktionale) führen ohne Übrung häufig zu undurchsichtigeren Code und verleiten zu schnellen Hacks.

- Beim Lernen in programmierunerfahrenen Gruppen haben auch Anfänger leichteren Zugang zu Materie da es keine reine Syntax-Diskussion geben kann und die Fortgeschrittenen lernen ggf. sogar was neues.

Nach Einführung der Objektorientierung werden dann Methoden eingeführt, welches ebenfalls Vorteile hat. Ein print("Hello World") als erstes Programm führen bei gängigen Lehrwerken schon Methoden ein die damit ein Vorgriff auf weitere Lehrinhalte darstellen.

Danach sollte man meiner Meinung nach in Pseudecode Algorithmen formulieren, um auch hier ein Verständnis von Sprachen zu haben.

Danach führt man dann die Syntax ein und zäumt so das Pferd von hinten auf.
BlackJack

Dein dritter Punkt gilt genauso für OOP. Wer keine Übung hat kann damit genauso, wenn nicht sogar "besser", undurchsichtigen Quelltext und üble Hacks schreiben, wie mit imperativer oder funktionaler Programmierung. Wobei man in Python nicht ohne imperativer Programmierung auskommt, denn die hat man ja parallel zu OOP. Die beiden schliessen sich ja nicht gegenseitig aus. Jede ``for``- oder ``while``-Anweisung ist letztendlich imperative Programmierung.

OOP ist kein Allheilmittel und wenn man gleich mit Klassen anfängt, müssen die Beispiele auch hinreichend komplex sein, also eventuell zu viel für Anfänger. Denn trivialen Kram in Klassen zu stecken, nur um der Klassen wegen, ist kein OOP, sondern nur unnötig kompliziert -- Funktionen als Methoden verkleidet.

Insbesondere für ein "Hello, World!"-Programm ist eine Klasse der totale Overkill, und lehrt damit etwas IMHO grundfalsches. Dafür sind Klassen nicht gedacht, weil sie absolut keinen Vorteil bringen. So lernt man nicht so einfach wann der Einsatz von Klassen und OOP sinnvoll ist, und wann nicht.

Und letztendlich sind in Python auch Module mit Funktionen objektorientiert, ohne das man ``class`` schreiben muss, denn ein Modul mit Funktionen ist ein Singleton-Objekt, das man sich mit ``import`` erstellen bzw. das einzige existierende davon Exemplar in den Namensraum holen kann.
vicbrother
User
Beiträge: 32
Registriert: Donnerstag 26. Februar 2009, 22:41

@BlackJack:
Selbstverständlich kann man mit jedem Programmierparadigma schlechten Code schreiben, das bestreite ich nicht.

OOP muss aber nicht unbedingt hinreichend Komplex sein, da 1. bei Python der Overhead relativ klein ist und 2. es bei OOP auch um Wiederverwendbarkeit geht. Mir stehen beim Lehren aber auch andere Werte im Vordergrund: Sichtweise eines Programmierers, Abstraktion, Formulierung von Algorithmen und letztendlich Programmierung. Nur Programmierung zu zeigen ist m.E. überholt.

Ein "Hello World" Programm ist sicherlich zu einfach, daher möchte ich ja darauf verzichten, denn es unterstützt ein methodisch falsches Lernen. Es benutzt zuerst eine Funktion print(), die nach herkömmlichen Lehrschema erst nach der Einführung von Schleifen und Verzweigungen gelehrt werden. Für Anfänger ist diese Methode also ungeeignet.

Die interne Objektorientierung der Sprache hat ja erstmal nichts mit dem verwendeten Programmierparadgima zu tun. Darum geht es mir aber.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo vicbrother, willkommen im Forum,
vicbrother hat geschrieben:Ich suche ein Tutorial/Buch, welches aus objektorientierter Sicht in die Sprache einführt, also Konzepte der Objektorientierung und das Herumspielen mit class und .
Das halte ich persönlich für einen schlechten Ansatz und das ist auch das was ich in der Lehre von Java als bedenklich einstufe. OOP ist nicht alles und gerade OOP-Lösungen finde ich oftmals aus Programmierersicht eher wenig spannend. Das schöne an Python ist eben dass es dem Programmierer die Wahl lässt wie er ein Problem löst und wenn man ein Problem besser funktional oder schlicht imperativ lösen kann dann ist OOP an dieser Stelle sogar nur störend.
vicbrother hat geschrieben:- Es wird nicht sofort gecodet sondern erstmal der wirklich wichtige "TopDown-Objekt" Blick eines Programmiers gelehrt.
Schau dir doch mal SICP an, eines der bedeutendsten Lehrbücher über Programmierung schlechthin.
vicbrother hat geschrieben:- Objektorientierung ist das derzeit meistverwendete Programmierparadigma und bietet einen hohen Wiedererkennungswert, wenn der Schüler sich bestehende Programme zu Lernzwecken ansieht.
Wieso? Meine bestehenden Programme zu Lehrzwecken verwenden oft kein OOP weil es einfach nicht sinnvoll ist, es einzusetzen. Dafür gerne mal seiteneffektfreie Funktionen.
vicbrother hat geschrieben:- Andere Programmierparadigmen (insb. imperative und funktionale) führen ohne Übrung häufig zu undurchsichtigeren Code und verleiten zu schnellen Hacks.
Also wenn du eine mathematische Lösung als Hack ansiehtst, dann gewiss :)
vicbrother hat geschrieben:Danach sollte man meiner Meinung nach in Pseudecode Algorithmen formulieren, um auch hier ein Verständnis von Sprachen zu haben.
Ist die Frage was für ein Interesse Anfänger an Algorithmen haben. Wenn man ihnen zeigt wie man Heapsort, Quicksort und Mergesort implementiert dann wirst du nur kritik Ernten wenn die Anfänger dann irgendwann merken dass die Methode ``sort`` oder das Builtin ``sorted`` wesentlich schneller funktionieren als ihre Algorithmen.

Das Problem ist eben die Algorithmen in Probleme einzubetten deren Lösung den Anfänger auch interessiert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
vicbrother
User
Beiträge: 32
Registriert: Donnerstag 26. Februar 2009, 22:41

@Leonidas:
Du schätzt es persönlich für schlechter ein, das ist ok. Aber ich würde gerne einen methodisch anderen Ansatz ausprobieren. Beispielsweise lernst du als Mechaniker ja auch nicht die Zündmechanik eines Autos im Detail kennen, sondern wirst über die Bestandteile des Autos und dann des Motors in das System eingeführt. Bei Programmiersprachen nimmt man eigentlich immer den umgekehrten Weg und man lernt nicht, ein Projekt sinnvoll in Teile zu zerlegen und auch in einer Gruppe zu arbeiten.

Funktionale Programmierung mag ganz schon sein, ich habe selbst mit Miranda gearbeitet. Aber heute ist das i.d.R. nicht mehr das Konzept der Wahl und ist nur auf eine kleine Menge von Problemen anwendbar. Rekursion, Lambda und Curry-Prinzip sollte am Ende als schöne Programmiertechnik lernen. Denn im Bereich guten Code zu schreiben lernt man nie aus.

Sieht man sich Frameworks wie Qt an, so kommt man an OO nicht mehr vorbei.

Man kann natürlich Programme zu Studienzwecke schreiben, aber ich denke viele Anfänger schauen sich Projekte im Internet an (Ich kann das Studium von C/C++ anhand des FreeCiv-Codes nur empfehlen! :) ) und benötigen dafür schnell ein Verständnis für OO.

Wie gesagt: ich suche ein Tutorial/Buch welches meinen Vorstellungen einer methodischen Einführung entspricht. Was ist "SICP"? Gibt es dafür eine URL oder eine ISBN?
BlackJack

@vicbrother: Doch OOP muss hinreichend komplex sein, denn sonst bietet es keine Vorteile und ist nur Selbstzweck und unnötige Komplexität. Auch bei Funktionen und Modulen geht es um Wiederverwendbarkeit, das ist kein Alleinstellungsmerkmal von OOP.

Und auch die Sichtweise des Programmierers, Abstraktion und Formulieren von Algorithmen sind nicht auf OOP beschränkt. Das habe ich früher in der Schule mit Pascal mal rein imperativ/prozedural gelernt und im Studium mit Haskell funktional. Das was Du da neben der eigentlichen Programmierung vermittelt haben möchtest, ist nämlich relativ unabhängig von den genannten Paradigmen. Das Problem erfassen, in handliche, lösbare Teilprobleme zerlegen, sinnvoll zu Gruppieren und sich Datenstrukturen ausdenken, ist in all den genannten Sprachen nötig um gute, saubere Programme zu schreiben. Und zu diesem Prozess gehört in Python auch zu entscheiden, wann etwas mit einer Funktion gelöst werden kann, und wann eine Klasse sinvoll ist. Dabei sollte man vom einfachen zum komplizierteren gehen. Was mit einer Funktion lösbar ist, gehört einfach nicht in eine Klasse, es sei denn man kann Begründen warum eine `staticmethod()` oder `classmethod()` an der Stelle Sinn macht. *Das* ist aber vielleicht nicht unbedingt der Stoff, mit dem man bei Einsteigern *anfangen* sollte.

Die Verwendung der Anweisung ``print`` oder der Funktion `print()`, je nach Python-Version, vor Schleifen und Verzweigungen, ist nicht methodisch falsch, denn es geht da um die *Verwendung*, nicht um die Definition. Ausserdem führst Du damit Deine Argumentation ad absurdum, weil das Lehren von *Klassen* vor *Funktionen* dann auch die falsche Reihenfolge ist. Methoden sind besondere Funktionen, deren erstes Argument "magisch" an das Exemplar gebundenden wird, über das auf die Funktion zugegriffen wird. Methoden bauen also auf Funktionen auf, wäre also sinnvoller die vorher zu Vermitteln.

Ich weiss jetzt nicht was Du mit "interner Objektorientierung" meinst!? Das in Python *alles* was man an einen Namen binden kann, ein Objekt ist, ist kein Implementierungsdetail, sondern das Wesen der Sprache. Das ist nichts "internes", das ist bewusst nach "aussen", also für den Programmierer, so garantiert.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

vicbrother hat geschrieben:Funktionale Programmierung mag ganz schon sein, ich habe selbst mit Miranda gearbeitet. Aber heute ist das i.d.R. nicht mehr das Konzept der Wahl
Nein. Gerade heute entstehen und werden so viele funktionale Sprachen wie nie zuvor verwendet und entwickelt. Schau dir Erlang an, das nun auch schon einige Jahre hat und ausgereift ist. Gerade bei Multicore-Prozessoren ist die Vermeidung von State in funktionalen Programmiersprachen wesentlich einfacher was zu viel einfacherer Parallelisierung führt. Siehe auch die neuen Sprachen wie Scala (quasi ein Superset von Java das viele funktionale Konzepte wieder in die Sprache reinbringt) oder Clojure (ein funktionales Lisp). Die Anzahl der Haskell-Libraries ist im Jahr 2008 vergleichbar oder schneller gestiegen als die Anzahl der Python-Libraries im selben Zeitraum.
vicbrother hat geschrieben:Sieht man sich Frameworks wie Qt an, so kommt man an OO nicht mehr vorbei.
Ich habe nicht gemeint, dass man OOP nicht nutzen sollte - doch durchaus. Nur eben wo es sinnvoll ist. In GUI-Toolkits ist es durchaus sinnvoll und selbst GTK hat mit GObject ein in C implementiertes Objektsystem (das dann von Vala mit Syntaktischem Zucker versüßt wird).
vicbrother hat geschrieben:Was ist "SICP"? Gibt es dafür eine URL oder eine ISBN?
Es hat sogar eine Wikipedia-Seite. Aber OOP wirst du nicht finden. Dafür einen interessanten Lehransatz.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
vicbrother
User
Beiträge: 32
Registriert: Donnerstag 26. Februar 2009, 22:41

@BlackJack:
Mit interner Objektorientierung meinte ich den Sprachaufbau an sich. Das kann man einem Anfänger sagen, aber ohne die Einführung des OOP versteht er das nicht.

Methoden/Funtkionen ohne Definition einzuführen halte ich für wenig hilfreich, wenn das Grundverständnis nicht umgehend gelehrt wird.

Das OOP nicht das einzige Paradigma zur Abstraktion da ist, ist ja allen klar. Aber ich denke die Lehrmethodik ist einfach überholt.
Ich denke bei meiner Methodik auch insbesondere an Schülergruppen in der Schule. Man muss hier gruppendynamische Prozesse berücksichtigen. Einige kennen sich mit Programmierung aus - damit steigt der Frust bei denjenigen, die sich in das Thema erst hineindenken müssen. Daher würde ich lieber mit allgemeinen Beispielen und Denkweisen beginnen. OOP bietet sich dort an. Viele der Fortgeschrittenen machen dort ebenfalls Fehler oder sind dort nicht angelangt, man kriegt so eine eher gleichverteilte Startbedingung hin.

@Leonidas:
Ja, es gibt heute mehr Sprachen als je zuvor, unbestritten. Auch bestreite ich nicht, dass es Problemstellungen für funktionale Sprachen gibt, insbesondere im mathematischen Bereich. Aber die täglich eingesetze Software baut sehr selten auf funktionale Sprachen auf. Oder kannst du mir Beispiele nennen?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

vicbrother hat geschrieben:Aber die täglich eingesetze Software baut sehr selten auf funktionale Sprachen auf. Oder kannst du mir Beispiele nennen?
ejabberd ist in Erlang geschrieben, die Software die meine Arbeitszeit zusammenrechnet ist in Scheme geschrieben. MLdonkey und Unison sind in OCaml geschrieben und darcs in Haskell. Das ist alles Software mit der man durchaus Tag für Tag in Kontakt kommt.

Und gerade Hybridsprachen wie OCaml, Scala und zu einem gewissen Anteil auch Python ermöglichen das Mischen von OOP und funktionalen Konzepten. Ich habe etwa Properties in Klassen an anonyme Funktionen gebunden, die von ``partial`` aus benannten Funktionen erstellt worden sind. Die Lösung ist erstaunlich hübsch, in Java hätte ich dafür extra zwei Methoden schreiben müssen und in diesen Methoden andere Methoden aufrufen, obwohl sie tatsächlich nur Wrapper um Parameter anderer Funktionen sind.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
vicbrother
User
Beiträge: 32
Registriert: Donnerstag 26. Februar 2009, 22:41

@Leonidas:
Mit MLdonkey kommt man als gesetzestreuer Mensch kaum in Berührung.

Unison und ejabberd sind kleine Programme - Unison m.W.wird nicht mehr fortgeführt. Gibt es keine großen Projekte die funktionale Sprachen nutzen? Die die du aufzählst sind eher Ein-Mann-Ein-Tag-Projekte....

Es gibt wirklich schöne Lösungen mit funktionalen Sprachen. Aber das sind einzelne Algorithmen und keine großen Gesamtprojekte.
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

vicbrother hat geschrieben:@Leonidas:
Mit MLdonkey kommt man als gesetzestreuer Mensch kaum in Berührung.
Weil Filesharing nur illegal benutzt wird? ... da triffst du bei Python, das recht viel mit BitTorrent zu tun hat, auf die _richtig_ falschen Leute, ich sag's nur Oo'
vicbrother hat geschrieben:Unison und ejabberd sind kleine Programme - Unison m.W.wird nicht mehr fortgeführt. Gibt es keine großen Projekte die funktionale Sprachen nutzen? Die die du aufzählst sind eher Ein-Mann-Ein-Tag-Projekte....

Es gibt wirklich schöne Lösungen mit funktionalen Sprachen. Aber das sind einzelne Algorithmen und keine großen Gesamtprojekte.
Die wenigsten großen Programme sind in einer Sprache geschrieben. Ihre Aufgaben sind so stark abstrahiert, dass kritische und Kernsachen mit einer "niedrigen" Sprache optimiert werden... Also eine API geschaffen wird. Nun, andere Sprachen, wie die die Leonidas aufgezählt haben, benutzen nun diese Apis, um das Programm in einer effektiven Zeit zu optimieren und zu erstellen. Python und viele andere Sprachen (Ruby, die ganzen JVM-Sprachen) werden genauso eingesetzt. Deswegen ist diese Frage nach: "Worin ist das und das Programm geschrieben?"... oft nicht so leicht zu beantworten. Sonst könntest du ja sagen, dass Firefox in HTML und Javascript geschrieben ist. Wie dämlich klingt'n das?
vicbrother
User
Beiträge: 32
Registriert: Donnerstag 26. Februar 2009, 22:41

@BlackVivi:
Python ist per se kein Verbrechen ;) , auch BitTorrent nicht. MLdonkey ist aber hauptsächlich mit illegalen Inhalten aufgefallen...

Es stimmt, dass viele Programme aus einer Sprachvielfalt bestehen. Ob das vom Standpunkt der Wartung so toll ist sei mal dahingestellt, aber es hängt vom Design der Sprache ab. Python ist eine Sprache die schnelles Entwickeln ermöglicht. Das bietet die Möglichkeit, problematische Stellen mit C zu beschleunigen. Das ist ok, da von der Sprache vorgesehen. Funktionale Sprachen sind dafür m.W. nicht entwickelt worden, man kann sie aber sicherlich so einsetzen. Das wäre dann aber eine Reduzierung der Sprache auf einige wenige Algorithmen.

Firefox besteht definitiv nicht aus JavaScript und HTML, ich würde das auch nie behaupten. Die Frage in welchem Programm die Sprache rein vorkommt darf aber gestellt werden. Es gibt viele Programme die nur in einer Sprache erstellt werden. Mit funktionalen Sprachen sehe ich nur keine großen Projekte verwirklicht.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

vicbrother hat geschrieben:Mit MLdonkey kommt man als gesetzestreuer Mensch kaum in Berührung.
Gesetzestreue Bürger laden auch keine Debian-Images, stimmt :) Oder sie nutzen dazu jigdo.
vicbrother hat geschrieben:Unison und ejabberd sind kleine Programme
Achja, mir fällt noch CouchDB ein. Aber wenn du ejabberd als kleines Programm bezeichnest, dann hat Python auch keine großen Programme die damit implementiert sind. Schau, keiner nutzt Python! 8)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

vicbrother hat geschrieben:Firefox besteht definitiv nicht aus JavaScript und HTML,
Nein, es ist XUL und JavaScript ;)
vicbrother hat geschrieben:Mit funktionalen Sprachen sehe ich nur keine großen Projekte verwirklicht.
Teile der Facebook-Infrastruktur sind in Erlang geschrieben... Nicht viel Code vielleicht, aber verdammt viele User. Auch eine Form von großem Projekt.

Stefan
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

xmonad darf natürlich auf keinen Fall vergessen werden.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

vicbrother hat geschrieben:@BlackVivi:
Python ist per se kein Verbrechen ;) , auch BitTorrent nicht. MLdonkey ist aber hauptsächlich mit illegalen Inhalten aufgefallen...
Das Internet fällt allgemein wegen illegalen Inhalten auf - ist es nun auch illegal? Na, ich denke nicht. MLDonkey is nur'n Client von vielen Filesharingnetzwerken. Sie bieten eine fantastische Plattform für Verbrecher - sie selbst sind aber nicht verboten (zumindest sind das meine letzten Informationen).

Große Programme müssen sogar in vielen Sprachen geschrieben werden, damit sie überhaupt wartbar bleiben. Entweder du entwickelst auf Kosten der Plattformunabhängigkeit und bleibst bei einer Sprache oder auf Kosten der Performance und bleibst auf einer Sprache oder auf Kosten der Effizenz der Programmierung (wieviel effektiven Code in welcher Zeit) und bleibst bei einer Sprache. Das sind alles Sachen, die sich große Projekte heutzutage kaum noch leisten können. Selbst große Projekte in Java benutzen heutzutage eine Skriptsprache - nicht umsonst ist Jruby, Jython, Clojure und wie sie alle heißen total im Kommen.

Außerdem, wer setzt fest in welcher Sprache ein Programm geschrieben ist? Ist es die Sprache, die den Kern bildet? Die ist oft nur ein kleiner Teil der Logik. Ist es die Sprache, in der die Logik geschrieben ist? Die Logik alleine nützt doch nichts. Sind es die Performancekritischen Stellen? Leute benutzen heutzutage oft Applikationen nicht, weil sie so langsam seien. Es ist nicht ohne weiteres festzustellen.

Die Anwendungsgebiete für funktionale Sprachen sind oft anders. Was Leonidas schon gesagt hat - real state Programmierung und was weiß ich. Ich kenn mich da selber kaum aus. Aber man kann ja auch dich fragen - was sind große Desktopapplikationen, die du nicht für die Entwicklung von Java verwendest, aber größtenteils in Java geschrieben ist? Aber nicht Azureus sagen - das wird ja größteteils illegal verwendet :P

(Es gibt sicherlich ein paar. Aber mir fallen aus'n Kopf nicht grade _viele_ ein. Java ist mehr eine Industriesprache. Funktionales mehr Universitätssprachen. So ist's halt... alles gleichwichtig. All das wird gebraucht.)
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

BlackVivi hat geschrieben:Sonst könntest du ja sagen, dass Firefox in HTML und Javascript geschrieben ist. Wie dämlich klingt'n das?
So falsch ist das aber garnicht (wenn s/HTML/XUL/). Wenn ich hier das Paket "mozilla-firefox" installiere, werden vielleicht ein Dutzend C-Dateien kompiliert, und das wars.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Antworten