Daseinsberechtigung von Perl?

Hey Leute!


Ich bin gerade dabei mir zu überlegen, ob ich ein bestehendes (in Perl geschriebenes) Projekt vom Jahr 2000 weiterführen soll, und ob es sich lohnt dass ich mich dafür in Perl einarbeite, oder ob ich das Projekt wegschmeiße und in Python (oder PHP) neuprogrammiere....

Der Vorteil vom Einarbeiten wäre ganz klar dass ich weniger machen muss, weil den Anwendern nur einige wenige Funktionen fehlen und das Ding schon zieemlich Umfangreich ist. (Ca. 1 Mannjahr Arbeit steckt da drin).

Der Vorteil vom Neumachen wäre, dass ich nicht weiß ob es sich überhaupt auszahlt heute noch Perl zu lernen, weil ich echt nicht seh wo die Stärken Perl sind (vgl. mit Python, Ruby on Rails, PHP, Java). Ein weiterer VOrteil wäre, dass der Kunde dann gleich "was modernes" hat und nicht die SW vom Jahr 2000 weiterverwendet.


Wie seht ihr das?
Was würdet ihr tun?

Wo liegen eurer Meinung nach die Stärken von Perl? Wodurch hebt sich Perl von den o.g. Sprachen ab?


Danke vielmals für eure Hilfe!

pi
 
Ich frage mich ja immer, was eigentlich aus Business Sicht dagegen spricht, eine Software weiterzuverwenden, die schon etwas älter ist, ihren Job aber tut. Die Programmiersprache ist sicherlich kein Grund, eine Software neu zu schreiben, insbesondere nicht, wenn wir von Personenjahren hier reden.

Anders ausgedrückt: Du sprichst vom Kunden und seinen Bedürfnissen. Wenn das aktuelle Programm die erfüllt, dann spare dir den Aufwand einer mühseligen Diskussion über das Für und Wider einer Sprache und lerne sie einfach, damit du anständig Support leisten kannst.

Wichtiger als die Wahl der Programmiersprache ist hier eh Architektur und Fehlerbehandlung, denn ohne das bringt dir das Wissen über die Programmiersprache nichts. Ich hatte mal ein uraltes Bash Programm zu warten, das seit Jahren Daten in einem Konzern über mehrere Unternehmen hinweg synchron hielt. Trotz Bash Kenntnissen habe ich das Programm nie wirklich verstanden, weil mir schlicht die Historie, d.h. warum wurde etwas so implementiert, wie es implementiert wurde, gefehlt hat.
 
Ich gebe SB absolut Recht. Ich möchte aber auch noch auf die Frage der Daseinsberechtigung eingehen.

Es gibt noch immer erstaunlich viele Unternehmen, die Perl-basierte Software einsetzen. Das liegt zum einen daran, dass Perl-Skripte sehr performant geschrieben werden können, zum anderen aber auch an Faktoren wie Stabilität, Bug-Freiheit und der enormen Anzahl an verfügbaren Modulen. Nicht zuletzt spielt aber auch eine Rolle, dass in den letzten Jahrzehnten in viele Perl-basierte Software enorme Arbeitsleistungen gesteckt wurden, die man nicht einfach mal in ein paar Wochen oder Monaten durch einen Rewrite nachholen kann. Bis ein Rewrite den gleichen Reifegrad erreicht vergehen zumeist Monate an Arbeit, die entsprechend viel zusätzliche Kosten verursacht. Arbeitsleistung gibt's ja nunmal in Unternehmen nicht umsonst. Rewrites lohnen sich daher nur für relativ überschaubare Projekte. Da sollte man also mal durchrechnen, ob sich das wirklich lohnt.

Vergleicht man Perl mit Python, wird man schnell feststellen, dass ein Rewrite in Python oft gar nicht so einfach ist. So gibt es z.B. einige Kontrollstrukturen wie unless() nicht. Sowas muss man dann umständlich auf anderen Wegen implementieren. Auch ist Perl eher auf die Kompaktheit von Code ausgelegt, während Python mehr Wert auf die Lesbarkeit legt. Ein Python-Programm ist daher naturgemäß größer. Wenn man einen Rewrite plant, sollte man auch beachten, dass es für Perl mehr Module gibt als für Python. Man sollte daher vorher unbedingt schauen, ob die aus Modulen verwendeten Funktionalitäten in Python auch vorhanden sind, weil man sonst nicht nur die eigentliche Software sondern ggf. auch diverse Module neu schreiben muss.

Insgesamt sehe ich persönlich die Vorteile von Perl heutzutage vor allem in One-Liners um mal schnell Logs zu filtern u.ä. und beim verarbeiten von Text mittels Regulären Ausdrücken. Komplexere Projekte sollte man heutzutage eher in Python schreiben. Schon allein weil sich neue Entwickler da schneller drin einarbeiten können. Ob sich allerdings ein Rewrite einer bereits in Perl vorhandenen Software lohnt, sollte man vorher wirklich genau evaluieren.
 
Ich danke euch schon einmal für eure Antworten!

Das klingt für mich eher nach so lassen, zu was ich auch gerade tendiere.

@SB: Wie hast du das dann gelöst? Oder hast du es garnicht gelöst und diese Uninformiertheit blieb stets bestehen? Jedenfalls hast du Bash weitergeführt, korrekt?


Lg
 
Auch nochmal zur Daseinsberechtigung :)

Auch in bin noch immer bekennender Perler und ich schreibe auch neue Software noch immer in Perl - wo es vertretbar ist. Ich kann mit Perl bei den meisten gängigen Anforderungen liefern, selbst Webseiten baue ich nach-wie-vor mit Perl/CGI (und für das flotte haben wir ja auch fastCGI). Man kann sogar tolle Windows Apps basteln (ok, DAS ist wirklich was fuer Allesfresser ;) ) Zugegeben, der Sprung vom Anfänger zum (moderaten) Versteher ist bei Perl schwer und die Lernkurve alles andere als linear. Aber wenn man Perl und seinen Compiler (ja, es ist ein Compiler, kein Interpreter) halbwegs versteht, ist man unglaublich flexibel und schnell.
 
Zurück
Oben