Einstieg in Python und XML

(Auszug aus "Python & XML" von Christopher A. Jones & Fred L. Drake, Jr.)

Python und XML sind zwei sehr verschiedene Dinge, jeweils mit einer eigenen, reichen Geschichte. Python ist eine universale Programmiersprache, die durch die Vision und unter der Leitung ihres Erfinders Guido van Rossum sehr organisch aus ihren Scripting-Wurzeln entstanden ist. Guido berücksichtigt auch weiterhin die Bedürfnisse von Python-Entwicklern bei der weiteren Entwicklung der Sprache. XML dagegen ist – obwohl stark von den Ideen einer kleinen Gruppe von Visionären geprägt – innerhalb von Standardisierungsgremien groß geworden. XML hat dabei stille Phasen gesehen, in denen die Technologie einfach übernommen wurde, aber auch solche, in denen bittere Kämpfe über seine Zukunft geführt wurden. Warum sollte man also die beiden Technologien zusammenlegen?

Vor der Kombination von Python mit XML schien es keinen einfachen oder effektiven Weg zu geben, mit XML in einer verteilten Umgebung zu arbeiten. Entwickler waren gezwungen, sich auf eine Vielzahl von Werkzeugen zu verlassen, die nur in sehr umständlichen Kombinationen miteinander benutzt werden konnten. Wir haben Shell-Skripte und Perl benutzt, um Text zu bearbeiten und mit dem Betriebssystem zu interagieren, und haben dann Java XML-APIs verwendet, um XML zu verarbeiten und Netzwerkprogrammierung zu betreiben. Die Shell war ein hervorragendes Mittel zur Bearbeitung von Dateien und zur Interaktion mit dem Unix-System, und Perl erwies sich als eine gute Wahl für die einfache Textbearbeitung, die Zugriff auf die Unix-APIs bot. Leider fehlte beiden jedoch ein fortschrittliches Objektmodell. Andererseits hatte Java eine objektorientierte Umgebung, eine robuste Plattform-API für die Netzwerkprogrammierung, Threads sowie eine Entwicklungsumgebung für graphische Benutzerschnittstellen (GUIs). Bei Java fanden wir jedoch sofort einen Mangel an Möglichkeiten zur Textbearbeitung; Skriptsprachen boten normalerweise mächtige Möglichkeiten zur Textbearbeitung. Python stellte eine perfekte Lösung dar, da es die Stärken all dieser verschiedenen Möglichkeiten kombiniert.

Wie die meisten Skript-Sprachen bietet auch Python hervorragende Möglichkeiten zur Text- und Dateibearbeitung. Im Unterschied zu den meisten anderen Skript-Sprachen bietet Python jedoch eine mächtige objektorientierte Umgebung mit einer robusten Plattform-API zur Netzwerkprogrammierung, für Threads und zur Entwicklung von graphischen Benutzerschnittstellen. Es kann leicht um Komponenten erweitert werden, die in C oder C++ geschrieben sind, wodurch es mit den meisten existierenden Bibliotheken verbunden werden kann. Um noch eins draufzusetzen: Es wurde nachgewiesen, daß Python portabler ist als andere verbreitete interpretierte Sprachen, da es problemlos auf so unterschiedlichen Plattformen wie massiv parallelen Connection Machines bis hin zu PDAs (Personal Digital Assistants) und eingebetteten Systemen läuft. Als direkte Folge davon eignet sich Python exzellent zur XML-Programmierung und zur Entwicklung verteilter Anwendungen.

Man könnte sagen, dass Python im selben Maß Ordnung und Robustheit in die Skriptwelt bringt, wie Java dies einst in der C++-Welt tat. Wie immer gibt es auch hier Abstriche. Beim Wechsel von C++ nach Java findet man eine einfachere Sprache mit stärkerem objektorientiertem Unterbau. Der Wechsel zu einer einfacheren Sprache bringt weniger Details auf den unteren Ebenen der Speicherverwaltung und Hardware mit sich, wodurch man mehr Robustheit und bessere Möglichkeiten gewinnt, Codierungsfehler zu finden. Ebenso erhält man eine reiche API mit einfacher Thread-Verwaltung, Netzwerkprogrammierung und Unterstützung für Internet-Technologien und -Schnittstellen. Wie Sie es sich denken können, hat diese Flexibilität ihren Preis: eine etwas verminderte Leistung verglichen mit Sprachen wie C und C++.

Ebenso gilt: Wenn man eine Skriptsprache wie Python an Stelle von C, C++ oder selbst Java einsetzt, muss man bereit sein, einige Abstriche zu machen. Sie geben einiges an Leistung auf und erhalten im Gegenzug eine höhere Robustheit und die Möglichkeit zur schnelleren Entwicklung. Im Bereich der Entwicklung von Firmen- und Internet-Systemen sind eine verläßliche Software, ein flexibler Entwurf sowie schnelles Wachstum und Auslieferung Faktoren, die solche Leistungsgewinne ausgleichen, die sich durch den Einsatz von Sprachen wie C++ ergeben können. Wenn Sie Teile dieser Leistung zurückbekommen wollen, können Sie immer noch leistungskritische Komponenten Ihrer Anwendung in C oder C++ implementieren, aber Sie können dies so lange vermeiden, bis Sie über Meßdaten verfügen, mit denen Sie wirklich bestimmen können, was tatsächlich ein Problem ist und was nur eines sein könnte. (Wie man diese Analyse vornimmt und Erweiterungen in C/C++ schreibt, ist Gegenstand anderer Bücher.)

Unabhängig von Ihrer Einstellung zu Skriptsprachen, Java oder C++, konzentriert sich dieses Buch auf XML und die Sprache Python. Für jene, die mit XML noch wenig Erfahrung haben, beginnen wir mit einem Überblick, warum es von Interesse ist. Dann werden wir XML von Python aus benutzen und sehen, wie wir damit XML-Anwendungen einfacher erstellen können.

   

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Python & XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2002 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Python & XML" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de