Perl unter Windows: Erdbeere oder Komodowaran?

16. November 2010 · Programmierung · andreas · 1 Kommentar

Während Perl bei Unix-Betriebssystemen zum Lieferumfang gehört, muß ein Windows-Anwender sich erst selbst eineDistribution herunterladen.

Als erste Anlaufstelle ist das Win32 Perl Wiki geeignet, das eine gute Übersicht über die verfügbaren Perl-Distributionen für Windows liefert, von denen für “normale” Einsatzzwecke allerdings nur zwei übrig bleiben: ActivePerl und Strawberry Perl.

ActivePerl, sowohl als freie Community-Version als auch mit professionellem (und zu bezahlendem) Support durch den Distributor ActiveState erhältlich, ist sicherlich weiter verbreitet. Das herausragende Merkmal ist der Perl Package Manager (ppm, in der aktuellen Version 3), der mit einer übersichtlichen graphischen Oberfläche die Installation sowie Aktualisierung windowskompatibler Pakete mit wenigen Mausklicks erledigt.

Die Fokusierung auf den Package Manager ist aber auch gleichzeitig die größte Schwäche von ActivePerl, denn dieser setzt vorkonfigurierte und vorkompilierte Binärpaketen voraus, statt diese - wie unter Unix üblich - als Quellcode aus dem Comprehensive Perl Archive Network (CPAN) zu laden und auf der Zielmaschine zu kompilieren. Die Folge daraus ist, daß nicht alle im CPAN vorhandenen Module als ppm erhältlich sind und die verfügbaren Module oft 1-2 Versionsnummern hinterher hinken - bis sich jemand findet, der das entsprechende Paket erstellt. Dafür durchlaufen die Pakete zumindest eine rudimentäre Qualitätskontrolle, da Pakete erst nach erfolgreichem Absolvieren ihrer Testsuite zu den ppm-Repositories hinzugefügt werden.

Das Hauptargument gegen das Verwenden der CPAN-Shell (die ActivePerl auch beiliegt) unter den Microsoft-Betriebssystemen ist, daß einer Standard-Windowsversion neben Perl auch andere wichtige Entwicklungswerkzeuge wie z.B. ein C-Compiler fehlen, die unter Unix Standard sind. Solange ein Modul in reinem Perl geschrieben ist, funktioniert alles wunderprächtig, sobald aber ein Compiler benötigt wird, scheitert die Installation.

Diese Lücke füllt Strawberry Perl, in dem es zusammen mit Perl auch die MinGW (Minimalist GNU for Windows)-Entwicklungsumgebung mitbringt, um im Falle eines Falles zur Modulinstallation notwendige Kompilierungen wie unter Unix automatisiert durchführen zu können. Das klingt im ersten Moment fabelhaft, der Erfolg hängt aber davon ab, wie Windows-kompatibel das zu installierende Modul entwickelt wurde.

ActivePerl macht den Einstieg in die Perl-Welt leicht und überzeugt mit einfacher Bedienung, erkauft durch eine eingeschränkte Modulauswahl mit teilweise veralteten Versionen, die aber unter Windows wie gewünscht funktionieren. Strawberry Perl eröffnet Zugriff auf das komplette CPAN, mit der Gefahr, daß einige Module in der Windows-Welt nicht wie gewünscht oder übrhaupt nicht funktionieren.