ubuntuusers.de

Perl vs. Python

Status: Gelöst | Ubuntu-Version: Ubuntu
Antworten |

Yasser Team-Icon

Anmeldungsdatum:
30. März 2005

Beiträge: 358

Wohnort: Kiel

Hallo zusammen,

Ich habe doch beschlossen, mir eine Skriptsprache reinzuziehen;)

Anfangs wurde mir bei mrunix.de python geraten, es sei sehr einsteigerfreundlich. Nun muss ich im Nachhinein sagen, dass es zwar einfach ist (Syntaxbezogen), aber vieles dadurch nicht sehr "klassisch" ist (leider bin ich fachfremd, daher weiß ich auch nicht genau, wie ich es formulieren soll).

Im Nachhinein habe ich dann gehört, dass PYthon nun gar nicht gut sei zum Einsteigen, am besten ist natürlich C.
Da mir das aber leider zu weit von meiner Zielsetzung entfernt ist, werde ich so nicht anfangen (Ich will Textdateien bearbeiten).

Ich stelle die Frage bewusst in diesem Forum in der Hoffung, dass einer genau kapiert was ich meine, beide kennt und einen differenzierten Kommentar gibt.

Gruß Yasser

Edit: Bin auch für alles andere aufgeschlossen ...

Zando

Anmeldungsdatum:
18. August 2005

Beiträge: 313

Wohnort: Dresden

Da wird dir keiner eine "richtige" Antwort geben können. Man kann mit beiden Dateien bearbeiten.

Mein Tipp: Nimm dir zu beiden Sprachen mal ein Tutorial, was du jeweils in ein, zwei Wochen durcharbeitest und dann entscheide, was dir besser liegt.

Fazit: Es sind beides Sprachen, wie z.B. auch Englisch und Deutsch, manches ist unterschiedlich, jeder findet eine andere besser, aber im Endeffekt taugen sie beide was 😉

So long
Carsten

oliver1804

Anmeldungsdatum:
27. März 2006

Beiträge: 279

Wohnort: Elmshorn

Moin,

Yasser hat geschrieben:

Edit: Bin auch für alles andere aufgeschlossen ...

sofern Du den Zeitaufwand zunächst einmal beschränken möchtest, spricht meiner Meinung nach eine ganze Menge für gawk (oder meinetwegen auch ein anderes awk) - mir hat dies Programm sehr viel geholfen und ich möchte es auch beruflich nicht missen. Es gibt unter sourceforge eine Portierung für Windows. Ein gutes deutschsprachiges Buch stammt von Helmut Herold (http://www.amazon.de/gp/product/3827320941/028-7892304-4316506?v=glance&n=299956)

Ansonsten ist auch die Originaldoku sehr gut.

Grüße

Oliver

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

Yasser hat geschrieben:

Hallo zusammen,

Ich habe doch beschlossen, mir eine Skriptsprache reinzuziehen;)

Anfangs wurde mir bei mrunix.de python geraten, es sei sehr einsteigerfreundlich. Nun muss ich im Nachhinein sagen, dass es zwar einfach ist (Syntaxbezogen), aber vieles dadurch nicht sehr "klassisch" ist (leider bin ich fachfremd, daher weiß ich auch nicht genau, wie ich es formulieren soll).

So allgemein würde ich dir das nicht raten. Generell würde ich mich Zando's Meinung anschließen: Zwei, drei möglichst verschiedene Sprachen heraussuchen (z.B. Python, Perl und Ruby) und dann einige kleinere Projekte damit schreiben. So entwickelst du ein gutes Gefühl für diese Sprache und kannst dann selbst entscheiden. Du kennst deine Vorlieben und Stärken ja selbst am besten 😉

Einschränken musst du dich nur, wenn du später einmal vorhast, an anderen Projekten mitzuarbeiten. Dann solltest du vielleicht eher Perl nehmen, da diese Sprache noch die größten Ähnlichkeiten zu den immer noch weit verbreiteten Sprachen C und C++ aufweist. Python ist da eben doch zu "unklassisch".

Yasser hat geschrieben:

Im Nachhinein habe ich dann gehört, dass PYthon nun gar nicht gut sei zum Einsteigen, am besten ist natürlich C.

C ist zumindest heutzutage keine Einsteigersprache mehr, vielleicht war es das noch nie. C lohnt sich meiner Meinung nach heute nur noch, wenn du an extrem zeitkritischen, sehr hardwarenahen (Kernel oder lowlevel Bibliotheken) oder bereits exisitierenden OpenSource Projekten mitarbeiten willst.

Yasser hat geschrieben:

Da mir das aber leider zu weit von meiner Zielsetzung entfernt ist, werde ich so nicht anfangen (Ich will Textdateien bearbeiten).

Das geht prinzipiell mit jeder Sprache. Deswegen ist diese Zielsetzung zu allgemein, um dir direkt zu irgendeiner Sprache zu raten.

Gruß
lunar

Edit: Ich hoffe, daß wird nicht schon wieder so ein "MeinSpracheIstDieTollste" Flamewar. 😉

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Ich hoffe das endet nicht in einem Flamewar. 🙄

Ich kann dir nur etwas über Perl erzählen, Python kenne ich zu wenig als das ich es Bewerten könnte. Letztendlich sind solche vergleiche aber auch relativ Sinnloss, da Sie meisten ziemlich Sinnlose Sachen vergleichen, beim Thema Perl/Python wird meistens die Übersicht des Quellcodes verglichen, wenn du etwas Googlest wirst du auch genug Python Fanatiker finden die sich zu dem Thema äusern werden.

Ansonsten sind es wie Zando bereits sagte beides Programmiersprachen mit dennen du eigentlich fast alles machen kannst. Es sollte jedenfalls keinen großen Unterschied zwischen den beiden geben was du in der anderen Sprache nicht machen kannst. Von daher musst du die Sachen einfach mal ausprobieren, und die Sprache wählen die dir am liebsten gefällt.

Punkte die z.B. für Perl Sprechen: (Das bedeutet nicht das die Punkte nicht auf Python zutreffen)
- Große/Kompontente/Hilfsbereite Community:
Bei Perl gibt es eigentlich genug nette Menschen dir dir Helfen, und auch Anfängern unter den Armen greifen.

- Sehr große Verbreitung der Sprache:
Perl selber ist so weit verbreitet das es zu einem Standardtool in Linux Distributionen und auch den meisten Unix Betriebssystemen wurde. Es wurde auf unzähligen Platformen Portiert und du kannst es Praktisch überall benutzen. Selbst auf DOS, wenn du sowas noch hast. \^^ Bei Linux ist es so weit verbreitet das z.B. Standardbefehle wie "adduser", "deluser" z.B. Perl Skripte sind. Ein Linux System ohne Perl ist Praktisch ein kaputtes System. Bei Perl kannst du dir jedenfalls schon Sicher sein das es auf so gut wie jedem System vorhanden ist, selbst auf Servern / Minimalsystemen.
Selbst wenn du z.B. etwas Web lastiges machen möchtest, wirst du auch oft noch eine Unterstützung für Perl finden. Manchen Schreiben auch einfach nur "CGI" hin und meinen Perl, auch wenn das so geschrieben falsch ist. Es gibt zwar auch Anbieter mit Python, die sind aber seltener.

- CPAN:
Es gibt bereits für viele Dinge fertige Module. Das CPAN umfasst zurzeit etwas über 10.000 Module wo du schon Praktisch für alles Mögliche fertige Lösungen findest. Wenn du möchtest kannst du dich hier ja mal umschauen: http://search.cpan.org/

Ein paar Sätze zur Sprache selber:

- Regexe:
Mächtigste Regex Implementierung die es wohl überhaupt gibt. Perl selber hat Praktisch die Regexe zu dem gemacht was Sie heute sind. Zu der Mächtigkeit kommt noch die direkte Integration dazu. Regexe sind leicht anzuwenden und direkt in der Sprache integriert. Das macht es für mich z.B. überschaubarer. Wenn man Regexe nicht kennt schreckt das viele Leute am Anfang eher ab. Regexe sind jedenfalls der Schlüssel für die Textverarbeitung, dadurch kommst du jedenfalls leichter und schneller zum Ziel. Allerdings musst du dich dabei darauf einstellen das du schon fast 2 Sprachen lernst. (Du kannst Regexe aber auch über Klassen/Objekte bei Python benutzen)

- Prozedural / OOP:
Du bist nicht auf ein Paradigma festgelegt. Programmiere Prozedural und OOP wo du meinst das es dafür am Sinvollsten ist. Beides vorallem auch die OOP ist in Perl sehr mächtig.

- Lernbarkeit?
Der Einstieg ist leicht und du kommst schnell zu deinen Ergebnissen, du musst auch nicht alles zu Anfang Wissen, du kannst jederzeit Tiefer in die Materie eintauchen und dein Wissen erweitern.

- Benutzbarkeit
Von einzeilern über Shellskripte bis zu großen Programmen kannst du eigentlich alles machen.

Von den Möglichkeiten her tun sich beide Sprachen nicht viel, du wirst unter beiden zum Ziel kommen, Probiere beide aus, und entscheide dann welche dir besser gefällt. Einen Allgemeinen Tipp gibt es dafür nicht. Da es nicht "DIE" Sprache gibt.

icepacker

Anmeldungsdatum:
11. Oktober 2005

Beiträge: 20

Punkte die z.B. für Python Sprechen:
- Große/Kompontente/Hilfsbereite Community:
Bei Python gibt es eigentlich genug nette Menschen dir dir Helfen, und auch Anfängern unter den Armen greifen.

- Sehr große Verbreitung der Sprache:
Python selber ist so weit verbreitet das es zu einem Standardtool in Linux Distributionen und auch den meisten Unix Betriebssystemen wurde. Es wurde auf unzähligen Platformen Portiert und du kannst es Praktisch überall benutzen. Bei Linux ist es so weit verbreitet das z.B. Standardbefehle wie "getmail", "portage" (ok ich geb zu hier ist mir nicht wirklich was gutes eingefallen 😉 )z.B. Python Skripte sind. Ein Linux System ohne Python ist Praktisch ein kaputtes System. Bei Python kannst du dir jedenfalls schon Sicher sein das es auf so gut wie jedem System vorhanden ist, selbst auf Servern / Minimalsystemen.

- Python Module:
Es gibt bereits für viele Dinge fertige Module. Da das Prinzip "Batteries Inlcuded" verfolgt, sprich es werden Module zu fast allem fertig mitgeliefert. Fehlt dir dennoch etwas kannst du im
Python Cheese Shop nach einem Modul suchen, bei über 1500 Packeten wirst du bestimmt fündig.
Ein paar Sätze zur Sprache selber:

- Regexe:
Wie schon geschrieben gibts bei Python auch.
Aber bei Python musst du dich meist gar nicht mit diesen zunächst etwas kryptisch ausschaunden RegularExpression herumschlagen, da es oft schönere Lösungsmöglichkeiten gibt, wenn vlt auch nicht kürzer.

- Prozedural / OOP:
Du bist nicht auf ein Paradigma festgelegt. Programmiere Prozedural und OOP wo du meinst das es dafür am Sinvollsten ist. Beides vorallem auch die OOP ist in Python sehr mächtig.

- Lernbarkeit?
Der Einstieg ist leicht und du kommst schnell zu deinen Ergebnissen, du musst auch nicht alles zu Anfang Wissen, du kannst jederzeit Tiefer in die Materie eintauchen und dein Wissen erweitern.

- Benutzbarkeit
Von einzeilern über Shellskripte bis zu großen Programmen kannst du eigentlich alles machen.

edit:
Was mir gerade noch einfällt und wodurch sich Python vielleicht noch von Perl abheben würde...
Da wäre folgendes zu nennen:
Die tolle Ausnahme Behandlung und das Embedding/Extending durch C, C++, Java.

comm_a_nder

Avatar von comm_a_nder

Anmeldungsdatum:
5. Februar 2006

Beiträge: 2533

Wohnort: Dresden

icepacker hat geschrieben:

- Prozedural / OOP:
Du bist nicht auf ein Paradigma festgelegt. Programmiere Prozedural und OOP wo du meinst das es dafür am Sinvollsten ist. Beides vorallem auch die OOP ist in Python sehr mächtig.

+ Funktionale Programmierung

Chaoswind

Anmeldungsdatum:
10. August 2005

Beiträge: 544

comm@nder hat geschrieben:

icepacker hat geschrieben:

- Prozedural / OOP:
Du bist nicht auf ein Paradigma festgelegt. Programmiere Prozedural und OOP wo du meinst das es dafür am Sinvollsten ist. Beides vorallem auch die OOP ist in Python sehr mächtig.

+ Funktionale Programmierung

+Aspektorientierte Programmierung

mawe

Anmeldungsdatum:
18. November 2004

Beiträge: 172

Hi!

Kein Flamewar? ... wie langweilig ☺

Zando's Vorschlag kann ich nur voll unterstützen. Und wenn Du mal einen kleinen Überblick haben möchtest, wie gewisse Dinge in verschiedenen Sprachen aussehen, schau mal hier vorbei. Dort wurde das Perl Cookbook in einige Sprachen "übersetzt".

Gruß, mawe

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Oh Gott, wie im Kindergarten nach dem Motto wer hat den längsten. 🙄
Wikipedia hat geschrieben:

Damit ist gemeint, dass Perl verschiedene Paradigmen vereint und es dem Benutzer frei steht, strukturierte, objektorientierte, funktionale und imperative Sprachmerkmale zu kombinieren.

+ strukturierte
+ funktionale
+ imperative

edit:
Was mir gerade noch einfällt und wodurch sich Python vielleicht noch von Perl abheben würde...
Da wäre folgendes zu nennen:
Die tolle Ausnahme Behandlung und das Embedding/Extending durch C, C++, Java.

Ich selber wollte keine Gründe nennen von dennen sich Perl von Python abhebt, und habe es meiner Meinung auch nicht getan, und ich schrieb auch am anfang, dass es nicht bedeutet das Python diese Sachen nicht besitzt, demnächst werde ich das in Schriftgröße 24 und in drei Farben Schreiben damit das nicht untergeht.

http://perldoc.perl.org/DynaLoader.html - Dynamically load C libraries into Perl code
http://perldoc.perl.org/XSLoader.html - Dynamically load C libraries into Perl code

Beide Module gehören zur Standarddistribution.

http://www.perl.com/doc/manual/html/pod/perlembed.html - Perl Embedding
In Nagios ist z.B. Perl embedded.

http://www.foo.be/docs/tpj/issues/vol2_4/tpj0204-0003.html - JPL - Java Perl Library
http://www.phys.ksu.edu/pcsc/online/ntperl5/perlcall.htm - Perl Funktionen aus C heraus nutzen.

Eigentlich ist das genau so eine Diskussion auf die ich nicht Hinaus wollte, da es ein aneinanderklatschen von Informationen ist, ohne sinn. Ich glaub die Aussage "Beide Sprachen können das selbe". Muss von den einen oder anderen immer wieder wiederlegt werden, und irgendeiner ist immer dabei der eine Sprache irgendwie klar im Vordergrund stellen muss. Naja wenn ihr meint...

comm_a_nder

Avatar von comm_a_nder

Anmeldungsdatum:
5. Februar 2006

Beiträge: 2533

Wohnort: Dresden

Sid, kommt doch mal wieder runter, nirgendswo wird hier Dein Perl schlecht gemacht.
Hast Du irgendwie Komplexe wegen Perl?
Also mal ehrlich ....

Manchmal hab ich das Gefühl, Du willst, dass Leute Perl beschimpfen, damit Du Dich als Robin Hood der Perler aufbauschen kannst.

Du solltest doch im Angesicht des Wissens, was Du zweifelsohne über Perl hast, eine gewisse Coolness vorweisen.

Edit: Meine Meinung zum Thema, die Sprachen sind durchaus gleichmächtig, auch wenn Perl schon alleine aufgrund der längere Lebenszeit auf eine größere User und Softwarebasis zugreifen kann. Aber auch DAS aber wird sich ändern 😉

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

comm@nder hat geschrieben:

Sid, kommt doch mal wieder runter, nirgendswo wird hier Dein Perl schlecht gemacht.

Naja, so gereizt war Sid nun gerade nicht. Er sagte ja auch:

Eigentlich ist das genau so eine Diskussion auf die ich nicht Hinaus wollte

Man kann ihm zumindest diesmal kein Perl-Kreuzrittertum vorwerfen. Diesmal haben wirklich die "anderen" angefangen, Python hochzujubeln.

comm@nder hat geschrieben:

Hast Du irgendwie Komplexe wegen Perl?
Also mal ehrlich ....

So'n ganz kleines bisschen schon *duck* 😉

comm@nder hat geschrieben:

Manchmal hab ich das Gefühl, Du willst, dass Leute Perl beschimpfen, damit Du Dich als Robin Hood der Perler aufbauschen kannst.

Nee, man kann ihm ja eine gewisse Gereiztheit unterstellen, sobald Perl kritisiert wird, aber direkte Provokation oder ein Robin-Hood-Gehabe ist doch zu weit hergeholt.

comm@nder hat geschrieben:

Du solltest doch im Angesicht des Wissens, was Du zweifelsohne über Perl hast, eine gewisse Coolness vorweisen.

Edit: Meine Meinung zum Thema, die Sprachen sind durchaus gleichmächtig, auch wenn Perl schon alleine aufgrund der längere Lebenszeit auf eine größere User und Softwarebasis zugreifen kann. Aber auch DAS aber wird sich ändern 😉

Naja, wir werden sehen. Was in 5,10,20 Jahren passiert, ist doch jetzt sowieso noch nicht vorhersehbar. Insofern sollte die Zukunft bei diesen Überlegungen eher eine untergeordnete Rolle spielen. Siehe z.B. C, Cobol oder Fortan: Uralte Sprachen (teilweise aus den frühen 70ern), die sich trotzdem noch am Markt halten, obwohl ihnen schon tausendmal der Tod vorhergesagt wurde.

Gruß
lunar

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Sid, kommt doch mal wieder runter, nirgendswo wird hier Dein Perl schlecht gemacht.
Hast Du irgendwie Komplexe wegen Perl?
Also mal ehrlich ....

Dann verstehst du mich immer noch nicht. Schade eigentlich. Mir geht es gar nicht um "mein perl", und ich habe es auch nicht aufgefasst das irgendetwas schlecht gemacht hat, und ich fühle mich genausowenig "angegriffen". Das ganze ist nur eine lächerliche Programmiersprache die man lernt.

Es ist einfach nur der Verlauf der Diskussion. Ich würde gerne mal eine Neutrale Diskussion sehen. Ich sagte das die Sprachen relativ gleich sind, und das die Auswahl welche Sprache man nimmt auf die Vorlieben beruhen. Ich habe Punkte genannt die z.B. gut an Perl sind.

Was danach aber folgte ist doch lächerlich. Hängt es davon ob wieviele Paradigmen eine Sprache kann? Ist das irgendwie relevant? Was hat den die extra nennung gebracht? Warum schwappt das ganze gleich wieder dazu über das man eine Sprache klar als "besser" herausstellen muss? Warum ich so reagiere? Weil ich weiß worin das ganze wieder endet, und es gab genug Threads die dann wieder im Flamewars endeten, und sowas wollte ich zumindest das es einmal nicht passiert.

Leider ist das in einem Forum nie Möglich, und mitlerweile habe ich dazu auch schon zu viele Threads drüber Diskutiert, als das ich den Nerv dazu habe schon wieder darüber zu Diskutieren.

Manchmal hab ich das Gefühl, Du willst, dass Leute Perl beschimpfen, damit Du Dich als Robin Hood der Perler aufbauschen kannst.

Wieso sollte ich das wollen?
Von einer Diskussion würde ich erwarten das z.B. Perl Programmierer kommen Ihre Sprachen beschreiben, vielleicht Gründe nennen warum Sie diese gewählt haben, es kommen Python Programmierer die Ihre Sprache beschreiben und Gründe nennen warum Sie daran Programmieren. Vielleicht kommen ja noch Ruby, TCL oder Java Leute dazu die etwas über Ihre Sprache schreiben. Jeder nennt paar Vorteile, Gründe gibt etwas Lesestoff zu der Thematik, und der Leser kann sich selber aussuchen was er macht.

Du solltest doch im Angesicht des Wissens, was Du zweifelsohne über Perl hast, eine gewisse Coolness vorweisen.

Meine Coolnes in der Beziehung schaut einfach aus, dass ich Zukunft nichts mehr zu dem Thema schreiben werde.

Auser das ich immer gleich als Verfechter dargestellt werde, und das es darin endet zu Diskutieren was "besser" ist, kommt ja letztendlich nichts dabei heraus.

So'n ganz kleines bisschen schon *duck* :Winken:

Vielleicht. 😉

comm_a_nder

Avatar von comm_a_nder

Anmeldungsdatum:
5. Februar 2006

Beiträge: 2533

Wohnort: Dresden

Sid Burn hat geschrieben:

Es ist einfach nur der Verlauf der Diskussion. Ich würde gerne mal eine Neutrale Diskussion sehen.

Geht nicht, leider. Solche Diskussionen arten _immer_ in Flamewars aus. Ist bestimmt irgend ein Axiom aus Murphys Law.

Die Diskussion an sich ist doch schon müsig. Man kann Programmiersprachen nicht pauschal gegeneinander vergleichen. Das ergibt allerhöchsten Sinn, wenn man weiß, welches Problem unter welchen Voraussetzungen umgesetzt werden soll.

Sid Burn hat geschrieben:

Leider ist das in einem Forum nie Möglich, und mitlerweile habe ich dazu auch schon zu viele Threads drüber Diskutiert, als das ich den Nerv dazu habe schon wieder darüber zu Diskutieren.

Genau, deswegen sollte man lieber nix sagen. Ich weiß, dass das schwer ist. Gelingt mir auch nicht immer ....

PS: vim > emacs ! *wegrenn*

Chaoswind

Anmeldungsdatum:
10. August 2005

Beiträge: 544

Sid Burn hat geschrieben:

Wikipedia hat geschrieben:

Damit ist gemeint, dass Perl verschiedene Paradigmen vereint und es dem Benutzer frei steht, strukturierte, objektorientierte, funktionale und imperative Sprachmerkmale zu kombinieren.

+ strukturierte
+ funktionale
+ imperative

Was ist an Perl Funktional?
Und welche ernsthafte Programmiersprache ist heutzutage nicht Strukturiert, weshalb es eine Extra Erwaehnung wert ist?

Antworten |