Welche Scriptsprache lernen? [was: Die Welt der Scrip...]
-
Hi,
hab vor dem Umstieg auf C/C++ mal mit Perl angefangen gehabt.
An die Syntax gewöhnt man sich eigentlich relativ schnell.
Unter C hab ich dann die ganzen $ & @ % etc. direkt vermisst ;-).
Is halt irgenwie angenehm, wenn man auf den ersten Blick sieht,
wo man eine Variable und wo ein Array hatAllerdings hab ich keinen Verglich zu den übrigen von dir genannten Sprachen...
mfg
Johannes
-
Hoi
Das haengt wohl stark davon ab, was du damit machen willst.
Ich persoenlich hab mir Python und Perl naeher angeschaut und ein paar Tutorials ueber Shell-Scripts mal kurz ueberlfogen. Mit Ruby kenn ich mich nicht aus, aber folgendes sind meine Erfahrungen:1. Streich Shell-Scripts, mit Perl z. B. kann man genau das selbe auch. Ausserdem kann man Shell-scripting in knapp 1 Woche lernen, wenn man's wirklich mal unbedingt braucht, IMO
2. Python ist IMHO bei groesseren Projekten gegenueber Perl sehr im Vorteil. Die Syntax ist klarer, die Sprache stellt bessere Moeglichkeiten zur Verwaltung kleinerer Aufgaben bereit. OOP in Phyton ist _WESENTLICH_ einfacher als in Perl, wo OOP hoechstens halbherzig implementiert ist.
3. bei kleineren Projekten dagegen ist IMHO Perl im Vorteil. Es ist mit der Sprache IMO einfach einfacher, schnell mal quick'n'dirty Code hinzuschreiben
4. Ein nicht zu verachtender Vorteil von Perl ist, dass Regular Expressions dort sehr, sehr gut implementiert sind (wesentlich besser als in Python) und RegEx sind bei String-Manipulationen was feines
5. Wenn du planst, auch CGI-Scripts zu schreiben, dann empfehl ich ebenfalls Perl, das ist quasi CGI-Standard. Obwohl ich zwar gehoert hab, dass Python in dem Bereich auch brauchbar ist... wenn du aber genau darauf abzielst ist aber wohl PHP am besten fuer dich geeignet.
6. Zumindest mir gings so: Python ist ziemlich "komisch" am Anfang, besonders diese extreme Objekt-Orientierung (ALLES ist ein Objekt) ist zu Beginn verwirrend. Ich habs deshalb nach ca. 1 Monat aufgegeben und Perl gelernt. Da hab ich festgestellt Python doch einige Dinge von Perl uebernommen hat (die Unterteilung Skalar-, Array- und Hash-Variablen z. B. ... auch wenn sie unter Python Listen, Tupel usw. heissen, und sehr viele Perl-Funktionen gibts auch in Python, bzw. allgemein unter Linux, oder auch die RegEx). Perl war aber fuer mich "einfacher" zu lernen, sodass ich viele Teile von Python erst dank Perl verstanden hab (ich muss zugeben, ich hab Python nur halbherzig gelernt).
Ich seh's so: Perl ist die Sprache deiner Wahl, wenn du du wirklich eine Script Sprache willst, mit der du genau das machen kannst, wofuer Script Sprachen urspruenglich gemacht worden sind: Aufgaben des OS automatisieren, kleinere Hilfsarbeiten abnehmen usw.
Willst du hingegen eine interpretierte Programmiersprache, mit der du in etwa die gleichen Dinge machen kannst wie mit anderen Programmiersprachen - also echte Anwendungen, groessere Programme etc. - entwickeln, dann nimm Python.Eric S. Raymond (ein bekannter Linux-Guru & Hacker) sieht's uebrigens aehnlich, er hat mal einen interessanten Artikel darueber geschrieben: http://www.linuxjournal.com/article.php?sid=3882
Zu Ruby kann ich dir wie gesagt nicht viel sagen, sorry... aber soweit ich weiss, aehnelt Ruby Python in seiner Philosophie doch ziemlich stark
-
Ich frage mich, wie fundiert die Meinung von jemandem über Python sein kann, der konsequent Phyton schreibt.
-
ROFL
-
Gebe dir da vollkommen recht, Blue Tiger, genau für die von dir aufgezählten Dinge
ist Perl gemacht und da ist Perl auch unschlagbar
In Perl6 wird OOP wesentlich stärker vertreten sein, das was derzeit hat ist ja
nur OOP über die Subs gesetzt, da man weiterhin auf alles direkt zugreifen kann
und keinerlei Sicherheiten hat.
-
SirLant: Das interessiert mich jetzt ... in Perl 6 soll Zugriffsschutz ala private/public eingebaut werden?
-
Bashar schrieb:
SirLant: Das interessiert mich jetzt ... in Perl 6 soll Zugriffsschutz ala private/public eingebaut werden?
Scheint aehnlich zu gehen wie bei Python, aber ohne expliziten Zugriffsschutz:
http://dev.perl.org/perl6/rfc/95.html#Private_Variables_and_MethodsEDIT: nach laengerem Herumwuehlen: da scheinen sich die Entwickler selbst noch zu streiten, wie genau das aussehen soll *g*
Bashar schrieb:
Ich frage mich, wie fundiert die Meinung von jemandem über Python sein kann, der konsequent Phyton schreibt.
mit Python hab ich mich nur sehr kurz - ca. 1 Monat - beschaeftigt und bin dann auf Perl umgestiegen, sorry fuer den Fehler ;). Ich glaub dass meine Aussagen ueber Python ansonsten aber durchaus korrekt sind, auch wenn ich zugegeben Perl vorziehe...
-
Wenn wir mit Unix-Guru Zitaten kommen, dann auch mit dem Stevens
W. Richard Stevens schrieb:
No, I don't use perl--I consider it an unreadable write-only language.
Natürlich kann man mit Perl auch schöne Programme schreiben. Mit Basic auch. Aber zB. ist das Modul/Klassen Konzept von Perl ziemlich schlecht. Ruby macht das schöner. Dann verzichtet Ruby auch auf viele Dinge, die Perl unleserlich machen, wie das explizite $_ oder generell $ als Variablenprefix.
Perl wirkt auf mich wie eine Sprache, die immer in Richtung des neuesten Trends gepatcht wurde (wie die meisten SkriptSprachen).
Und wenn man Sprachen nur zum Hobby lernt, dann ist Ruby das bessere (kommerziell ist Perl attraktiver in den USA und Europa
)
-
Was dich an Perl stört liebe ich an Perl
So sind ohne weiteres einfache aber mächtige Konstrukte wie folgende möglich
$news .= $_ for reverse @eintrag;
Ich kenne sonst keine Sprache wo ich in einer Zeile ein Array umdrehen kann und
Element für Element in einen String(hier Skalar) schreiben kann.Und unleserlich ist das für niemanden der über die Perl-Grundlagen hinaus ist.
-
kingruedi schrieb:
Wenn wir mit Unix-Guru Zitaten kommen, dann auch mit dem Stevens
W. Richard Stevens schrieb:
No, I don't use perl--I consider it an unreadable write-only language.
Natürlich kann man mit Perl auch schöne Programme schreiben. Mit Basic auch. Aber zB. ist das Modul/Klassen Konzept von Perl ziemlich schlecht. Ruby macht das schöner. Dann verzichtet Ruby auch auf viele Dinge, die Perl unleserlich machen, wie das explizite $_ oder generell $ als Variablenprefix.
Perl wirkt auf mich wie eine Sprache, die immer in Richtung des neuesten Trends gepatcht wurde (wie die meisten SkriptSprachen).
Und wenn man Sprachen nur zum Hobby lernt, dann ist Ruby das bessere (kommerziell ist Perl attraktiver in den USA und Europa
)
wie schon gesagt: fuer grosse Programme ist Perl absolut unbrauchbar, da stimm ich dir zu... aber es ist fuer mich eben eine Skript-Sprache, und Skript-Sprachen wurden - zumindest in meinen Augen - genau dazu entworfen, nur kleine Arbeiten auszufueheren, Automatisierung von Systemverwaltungsprozessen und aehnliches... Und dafuer ist Perl schlichtweg genial.
Wenn ich dann Dinge hoere, wie dass z. B. fast alle (alle?) von Mandrake's Distributionsaeigenen Tools in Perl geschrieben sind, dann erschreckt mich das schon irgendwie... wie gesagt, ich glaub nicht dass Perls wirklich dafuer geschaffen wurde... Deshalb frag ich mal ganz ungeniert: warum ist man damit kommerziell erfolgreicher als z. B. mit Ruby? Professionelle Software-Entwicklung mit Perl ist doch wirklich der falsche Einsatz fuer die Sprache
Schlusswort:
Die absolute Uebersprache gibts nicht, nur Sprachen, die fuer einige Probleme besser geeignet sind als andere. Und in ein paar Bereichen ist Perl besser geeignet als alles, was ich bisher gesehen habe... Wenn der Threadersteller aber was sucht, mit dem er umfangreichere Programme erstellen kann, ist er mit Perl allerdings schlecht dran.Am aktuellen Thema vorbei: Die Variablenprefixe find ich ganz nuetzlich
-
Mit nem Ordentlichen Konzept ist das doch ohne Probleme möglich, ein Perlskript
ist kürzer als ein C-Programm welches das gleiche tut. Von daher, weshalb sollte
man Perl nicht auch für größere Sachen einsetzen?
-
Und dafuer ist Perl schlichtweg genial.
naja, ich nehm dafür immer Shellskripte
-
SirLant schrieb:
Mit nem Ordentlichen Konzept ist das doch ohne Probleme möglich, ein Perlskript
ist kürzer als ein C-Programm welches das gleiche tut. Von daher, weshalb sollte
man Perl nicht auch für größere Sachen einsetzen?Schonmal grosse Perl Programme gewartet?
Das Problem ist die kurzschreibweise. zB Python ist da wesentlich 'geschwaetziger' und insofern leichter zu warten.
-
Ich hab schon in größeren Perlskripten für Webseiten Änderungen vorgenommen, in
welchem Umfang du jetzt groß definierst weiß ich nicht.
Aber ich finde Perl ist mit vernünftigen Funktionsnamen sogar ohne Kommentare
gut zu verstehen, ist aber Ansichtssache.
-
SirLant: Naja, ab ein paar hundert Zeilen wird Perl anstrengend. Und ab tausend Zeilen sowas wird es meist wirklich mühsam.
-
SirLant schrieb:
Ich hab schon in größeren Perlskripten für Webseiten Änderungen vorgenommen, in
welchem Umfang du jetzt groß definierst weiß ich nicht.
Aber ich finde Perl ist mit vernünftigen Funktionsnamen sogar ohne Kommentare
gut zu verstehen, ist aber Ansichtssache.ein guter Programmierstil macht sehr, sehr viel wet, aber ich denk mal Perl verleitet eher zu netten, aber unuebersichtlichen Hacks als z. B. Python, wo sowas nicht moeglich ist....
(und eigentlich bin ich ja _fuer_ Perl
)
-
@Blue_Tiger ja das passiert schon mal gerne, aber ich habe erst vor kurzem wieder
ein Gästebuch von nem eingefleischten Perl'er bearbeitet (Bugs gefixt, paar Features rein).
Und das war über mehrere Dateien aufgeteilt und alles in Funktionen gekapselt,
ich hab mir die Namen angeschaut und vom Namen her gewusst, was was ist und dort
in den Code, hatte da keine großen Verständnisprobleme obwohl ich schon ne Weile
nix mehr mit Perl gemacht hab, die ein oder andere Standardvariable muss man halt
nachschauen ,aber das wars auch schon.Allein das Startskript und das Adminskript umfassen 2000Zeilen.
Also es ist wirklich möglich sauber zu programmieren, kommt aber ganz auf die Struktur an
und das Skript ist gut durchdacht und das merkt man auch.