Perl oder Python?
Perl oder Python?
Hallo.
Ich beschäftige mich nun seit einiger Zeit mit Linux. Nachdem ich es bis anhin nur für kleinere Serversachen eingesetzt habe, wurde es nun vor ein paar Monaten auch zu meinem bevorzugten Desktopsystem. Da kommt es mir ganz gelegen, dass ich die Ausbildung zum Programmierer in Java mache :-)
Nun würde ich mir gerne noch eine passende Scriptsprache aneignen, denn irgendwie bin ich in letzter Zeit immer wieder über eine der beiden Sprachen Perl und Python gestolpert.
Jetzt frage ich mich, welche Sprache wohl sinnvoller wäre. Wo liegen die Vorteile und wo die Nachteile der jeweiligen Sprache? Welche Dinge lassen sich besonders gut und welche eher weniger gut realisieren? Ich habe beispielsweise (ohne genauer reinzusehen) Python-Scripts gesehen, die mit recht wenig Aufwand ganz "nette" GUIs zustande bringen. Von Perl hingegen bekomme ich immer wieder zu lesen, wie unglaublich mächtig und effizient die Sprache sei.
Tja... welche Sprache wird wohl dir richtige sein?
Ich beschäftige mich nun seit einiger Zeit mit Linux. Nachdem ich es bis anhin nur für kleinere Serversachen eingesetzt habe, wurde es nun vor ein paar Monaten auch zu meinem bevorzugten Desktopsystem. Da kommt es mir ganz gelegen, dass ich die Ausbildung zum Programmierer in Java mache :-)
Nun würde ich mir gerne noch eine passende Scriptsprache aneignen, denn irgendwie bin ich in letzter Zeit immer wieder über eine der beiden Sprachen Perl und Python gestolpert.
Jetzt frage ich mich, welche Sprache wohl sinnvoller wäre. Wo liegen die Vorteile und wo die Nachteile der jeweiligen Sprache? Welche Dinge lassen sich besonders gut und welche eher weniger gut realisieren? Ich habe beispielsweise (ohne genauer reinzusehen) Python-Scripts gesehen, die mit recht wenig Aufwand ganz "nette" GUIs zustande bringen. Von Perl hingegen bekomme ich immer wieder zu lesen, wie unglaublich mächtig und effizient die Sprache sei.
Tja... welche Sprache wird wohl dir richtige sein?
// GNU/Linux - Weil man sich Freunde nicht kaufen kann
// False Website // False Junksite // GPG Public Key // German-Bash
// False Website // False Junksite // GPG Public Key // German-Bash
(Edit: Willkommen im Forum!)
Kommt drauf an, was du lieber magst, als Java-Programmierer zieht es dich wohl eher zu Python.
Python hat eine sehr durchdachte Syntax und ist auch nach Monaten noch recht gut zu lesen. In Perl kann man zwar auch guten Code schreiben, man kann allerdings auch extrem unleserlichen Code schreiben.
Ich persönlich würde dir zu Python raten; die Standardbibliothek ist mindestens so mächtig wie die von Perl, und es ist meiner Meinung nach einfacher, C(++)-Routinen dynamisch nachzuladen.
Die Diskussion hatten wir aber schon häufiger, such mal im Forum nach Python Perl
Es ist letzten Endes Geschmachkssache. Mir gefällt besser als
Wenn dir die kurze Schreibweise von Perl-Syntax besser gefällt, dir aber der Rest nicht ganz so gefällt, sieh' dir mal ruby an.
Kommt drauf an, was du lieber magst, als Java-Programmierer zieht es dich wohl eher zu Python.
Python hat eine sehr durchdachte Syntax und ist auch nach Monaten noch recht gut zu lesen. In Perl kann man zwar auch guten Code schreiben, man kann allerdings auch extrem unleserlichen Code schreiben.
Ich persönlich würde dir zu Python raten; die Standardbibliothek ist mindestens so mächtig wie die von Perl, und es ist meiner Meinung nach einfacher, C(++)-Routinen dynamisch nachzuladen.
Die Diskussion hatten wir aber schon häufiger, such mal im Forum nach Python Perl
Es ist letzten Endes Geschmachkssache. Mir gefällt
Code: Alles auswählen
foo.replace("bar","baz")
Code: Alles auswählen
$foo =~ s/bar/baz/;
Wenn du keinen speziellen Grund hast, Perl einzusetzen, würde ich auf
alle Fälle zu Python raten. Ist eine sehr universelle Sprache.
Serverapplikationen sind damit ebensogut zu realisieren (Zope ist in
Python geschrieben) wie Desktop-Applikation. Für grafische Oberflächen
stehen Tk, WxPython/WxWindows, Qt/PyQt, etc. zur Verfügung. Als Java
Programmierer dürfte dich auch interessieren, dass es eine Python-
Impementierung in Java gibt, nämlich Jython. Kannst dann direkt aus deinem
Python Code Java Klassen / z.B auch Swing Klassen aufrufen. Jython hatte
erst kürzlich bei einer Abstimmung über Scriptspachen für Java das
Rennen gemacht.
Karl
alle Fälle zu Python raten. Ist eine sehr universelle Sprache.
Serverapplikationen sind damit ebensogut zu realisieren (Zope ist in
Python geschrieben) wie Desktop-Applikation. Für grafische Oberflächen
stehen Tk, WxPython/WxWindows, Qt/PyQt, etc. zur Verfügung. Als Java
Programmierer dürfte dich auch interessieren, dass es eine Python-
Impementierung in Java gibt, nämlich Jython. Kannst dann direkt aus deinem
Python Code Java Klassen / z.B auch Swing Klassen aufrufen. Jython hatte
erst kürzlich bei einer Abstimmung über Scriptspachen für Java das
Rennen gemacht.
Karl
Und nicht zuletzt ist Python vielseitiger einsetzbar als Perl, zumindest was die Geräte angeht: Mittlerweile bietet selbst Nokia für seine Symbian-Handys ein Python-Kit an.
Und ich werde mir nach den Jahren Perl nun wohl auch mal Python genauer ansehen.
Hat jemand zufällig einen direkten Vergleich, was die Performance angeht (speziell bei vielen kleinen Dateioperationen, was ja nunmal Haupteinsatzgebiet von Perl ist)?
cu
Und ich werde mir nach den Jahren Perl nun wohl auch mal Python genauer ansehen.
Hat jemand zufällig einen direkten Vergleich, was die Performance angeht (speziell bei vielen kleinen Dateioperationen, was ja nunmal Haupteinsatzgebiet von Perl ist)?
cu
http://shootout.alioth.debian.org/niemand hat geschrieben:Hat jemand zufällig einen direkten Vergleich, was die Performance angeht (speziell bei vielen kleinen Dateioperationen, was ja nunmal Haupteinsatzgebiet von Perl ist)?
äääh, ich klinke mich hier unverschämterweise mal ein und stelle eine einfach klingende aber dennoch schwere frage:
wenn ich mir als neuling eine programmiersprache beibringen möchte, mit der ich plattformunabhängige, grafische applikationen in relativ kurzer zeit entwickeln kann und ich zugleich wartbaren code haben möchte - würde ich mich dann für "java" oder für "python" entscheiden?
wenn ich mir als neuling eine programmiersprache beibringen möchte, mit der ich plattformunabhängige, grafische applikationen in relativ kurzer zeit entwickeln kann und ich zugleich wartbaren code haben möchte - würde ich mich dann für "java" oder für "python" entscheiden?
"In den reichen Ländern hat die Freiheit gesiegt - mit all den schrecklichen Folgen, die das für die anderen mit sich bringt und noch bringen wird. Die Demokratie ist auf andere Epochen verschoben." (L. Canfora)
Python wird auch für "Software rapid Prototyping" eingesetzt.
Hier auch noch ein netter Link zu Python im Vergleich mit anderen Sprachen
Was ist Python
Gruß
Dookie
Hier auch noch ein netter Link zu Python im Vergleich mit anderen Sprachen
Was ist Python
Gruß
Dookie
hmm, danke. das sieht gut aus - ich hatte insgeheim damit gerechnet, dass python herauskommt...
thanx
thanx
"In den reichen Ländern hat die Freiheit gesiegt - mit all den schrecklichen Folgen, die das für die anderen mit sich bringt und noch bringen wird. Die Demokratie ist auf andere Epochen verschoben." (L. Canfora)
Danke erstmal für die ganzen Antworten. Ich liebäugelte vor allem auch deshalb mit Perl, weil es schon etwas älter und deshalb wohl (zumindest in der Unix/Linux-Welt) auch weitflächiger verfügbar sein dürfte. Aber wenn ich mir das hier so durchlese, scheinen die Tendenzen ja doch eher in Richtung Python zu gehen. Und aufgrund meiner Java-Wurzeln kommt mir die Syntax natürlich auch recht gelegen ;-)
// GNU/Linux - Weil man sich Freunde nicht kaufen kann
// False Website // False Junksite // GPG Public Key // German-Bash
// False Website // False Junksite // GPG Public Key // German-Bash
- puddlejumper
- Beiträge: 58
- Registriert: 22.01.2005 00:29:52
Na ja,
wir erstellen Applikationen sehr häufig in Java, aber benutzen auch sehr häufig Perl für Skripte, Testunterstützung und kleinere Applikationen, für die eine Java-Applikation etwas oversized währe oder nicht angedacht ist. Perl selber hat eine sehr breite Userbasis, auch aufgrund seines alters, aber auch aufgrund seiner Möglichkeiten (wie war das noch: schwieriges einfach und kompliziertes machbar zu machen... .
Perl findet man inzwischen schon bei jeder Unix-Distribution standardmässig und schliesslich sind die Java-Regex nicht umsonst von Perl beeinflusst...
Perl bietet Dir aber auch die Möglichkeit, selber zu entscheiden, möchte ich Prozedural oder Objektorientiert das Skript schreiben. (Ok, Objektorientierung in Perl ist nur ein Aufsatz, man kann aber auch sehr gut dort sehen, wie OO in Programmen (Compilerbau) realisiert ist.)
Vieles kann man bestimmt auch von anderen Skriptsprachen sagen, aber ich persoenlich moechte Perl auf keinen Fall missen! Für mich eine der schoensten Scriptsprachen (musste sein, da in den Beitraegen vorher der Fokus doch zu stark auf Python gelegen hat
Gruss,
PuddleJumper.
wir erstellen Applikationen sehr häufig in Java, aber benutzen auch sehr häufig Perl für Skripte, Testunterstützung und kleinere Applikationen, für die eine Java-Applikation etwas oversized währe oder nicht angedacht ist. Perl selber hat eine sehr breite Userbasis, auch aufgrund seines alters, aber auch aufgrund seiner Möglichkeiten (wie war das noch: schwieriges einfach und kompliziertes machbar zu machen... .
Perl findet man inzwischen schon bei jeder Unix-Distribution standardmässig und schliesslich sind die Java-Regex nicht umsonst von Perl beeinflusst...
Perl bietet Dir aber auch die Möglichkeit, selber zu entscheiden, möchte ich Prozedural oder Objektorientiert das Skript schreiben. (Ok, Objektorientierung in Perl ist nur ein Aufsatz, man kann aber auch sehr gut dort sehen, wie OO in Programmen (Compilerbau) realisiert ist.)
Vieles kann man bestimmt auch von anderen Skriptsprachen sagen, aber ich persoenlich moechte Perl auf keinen Fall missen! Für mich eine der schoensten Scriptsprachen (musste sein, da in den Beitraegen vorher der Fokus doch zu stark auf Python gelegen hat
Gruss,
PuddleJumper.
- puddlejumper
- Beiträge: 58
- Registriert: 22.01.2005 00:29:52
Verstehe ich es richtig, dass du gerade anfängst Java zu lernen? Ich würde nur eine Sprache auf einmal lernen. Ich programmiere schon seit längerem Java, und muss sagen, dass es immer wieder neue Sachen zu lernen gibt, und das Thema noch lange nicht erschöpft ist. Und ich muss meinem Kollegen zustimmen, als er sagte, als ich ihm mitteilte, dass ich Python lernen wollte, dass es, wenn ich es bauchen würde es immer noch früh genug wäre damit anzufangen.
Aber das ist alles eine Geschmacksfrage.
bye
Aber das ist alles eine Geschmacksfrage.
bye
PuddleJumper schrieb
-- Perl findet man inzwischen schon bei jeder Unix-Distribution standardmässig
-- und schliesslich sind die Java-Regex nicht umsonst von Perl beeinflusst...
Python findet man ebenso auf allen Distris. Die Regex von Perl wurden von Python
übernommen und sind dort genauso verfügbar.
-- Perl bietet Dir aber auch die Möglichkeit, selber zu entscheiden, möchte ich
-- Prozedural oder Objektorientiert das Skript schreiben.
trifft für Python genauso zu
-- Ok, Objektorientierung in Perl ist nur ein Aufsatz, man kann aber auch sehr
-- gut dort sehen, wie OO in Programmen (Compilerbau) realisiert ist.)
Trifft für Python nicht zu, da OO in Python vollwertig integriert ist.
-- Für mich eine der schoensten Scriptsprachen (musste sein, da in den
-- Beitraegen vorher der Fokus doch zu stark auf Python gelegen hat Wink
Sorry, aber wenn du Perl schön findest, hege ich den Verdacht, dass du noch
nie in Python programmiert hast ;.)
-- s/(kryptisch) ist/$1 sein kann/;
"kryptisch sein kann".replace("sein kann", "oft ist")
Gruß,
Karl.
-- Perl findet man inzwischen schon bei jeder Unix-Distribution standardmässig
-- und schliesslich sind die Java-Regex nicht umsonst von Perl beeinflusst...
Python findet man ebenso auf allen Distris. Die Regex von Perl wurden von Python
übernommen und sind dort genauso verfügbar.
-- Perl bietet Dir aber auch die Möglichkeit, selber zu entscheiden, möchte ich
-- Prozedural oder Objektorientiert das Skript schreiben.
trifft für Python genauso zu
-- Ok, Objektorientierung in Perl ist nur ein Aufsatz, man kann aber auch sehr
-- gut dort sehen, wie OO in Programmen (Compilerbau) realisiert ist.)
Trifft für Python nicht zu, da OO in Python vollwertig integriert ist.
-- Für mich eine der schoensten Scriptsprachen (musste sein, da in den
-- Beitraegen vorher der Fokus doch zu stark auf Python gelegen hat Wink
Sorry, aber wenn du Perl schön findest, hege ich den Verdacht, dass du noch
nie in Python programmiert hast ;.)
-- s/(kryptisch) ist/$1 sein kann/;
"kryptisch sein kann".replace("sein kann", "oft ist")
Gruß,
Karl.
Wir haben uns in der Projektgruppe der Uni letztendlich auch für Python anstelle von Perl entschieden.
Aber nicht weil eine Sprache mächtiger ist als die andere, sondern weil in Python per default quasi eine bessere lesbarkeit des Codes bietet.
Zwar kann man auch in Perl gut lesbaren Code erzeugen, aber durch die Vorgaben bei Python ist das quasi schon miteingebaut
Letztendlich ist und bleibt das aber eine Geschmackssache...
Aber nicht weil eine Sprache mächtiger ist als die andere, sondern weil in Python per default quasi eine bessere lesbarkeit des Codes bietet.
Zwar kann man auch in Perl gut lesbaren Code erzeugen, aber durch die Vorgaben bei Python ist das quasi schon miteingebaut
Letztendlich ist und bleibt das aber eine Geschmackssache...
- puddlejumper
- Beiträge: 58
- Registriert: 22.01.2005 00:29:52
Solaris 9, installation von der Stange, hat zwar Perl (Version 5.6.1) aber kein Python. Es kann zwar nachinstalliert werden, aber die meisten Firmen setzten nach meinen Erfahrungen eher auf Perl anstatt auf andere Scriptsprachen.resi hat geschrieben: Python findet man ebenso auf allen Distris.
Jetzt kribbelts mich ja in den Fingern - und da ich gerade Webung sehe:Die Regex von Perl wurden von Python
übernommen und sind dort genauso verfügbar.
"und wer hat's erfunden" [sorry, nicht ernstgemeint!]
Da hast Du natürlich recht, aber für Objektorientierung habe ich für mich persoenlich halt Java und Smalltalk (Programmiersprachen sind ja nun mal auch sehr stark geschmacksache, weswegen ich z.B. auch kein C++ bzw. Simula benutze... und glücklicherweise auch nicht benutzen mussSorry, aber wenn du Perl schön findest, hege ich den Verdacht, dass du noch
nie in Python programmiert hast ;.)
Gruss,
PuddleJumper.
- Leonidas
- Beiträge: 2032
- Registriert: 28.04.2003 13:48:49
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Oha und mein SunOS 4.5 hat auch kein Python. Aber ich denke nicht, dass wir hier so wiele Sun Freunde haben, ich habe auf allen meinen Rechnern Python drauf, meist selbstkompiliert.puddlejumper hat geschrieben:Solaris 9, installation von der Stange, hat zwar Perl (Version 5.6.1) aber kein Python. Es kann zwar nachinstalliert werden, aber die meisten Firmen setzten nach meinen Erfahrungen eher auf Perl anstatt auf andere Scriptsprachen.
Naja, das ist Open Source, heißt also das man Dinge auch übernehmen kann. Außerdem sind diese gleibe ich nicht von Perl übernommen sondern einfach eine Implementation der traditionellen NFA Engine. Perl nutzt die ja auch. Und PHP mit PCRE (Perl Compatible Regualr Expression) genauso. Und Java, und JavaScript, und sed.puddlejumper hat geschrieben:Jetzt kribbelts mich ja in den Fingern - und da ich gerade Webung sehe:
"und wer hat's erfunden" [sorry, nicht ernstgemeint!]
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.
So, nachdem ich mich etwas in Python eingefuchst habe: Es ist kaum möglich, mit Python kryptischen Code zu erzeugen. Irgendwie ist da alles gut lesbar.niemand hat geschrieben:Nicht zu vergessen ist aber, dass man auch in Perl lesbaren Code produzieren kann. Ob man in Python kryptischen Code basteln kann, probiere ich nachher erstmal aus, hab's mir gerade erst gezogen und gebaut.
cu
cu
Nicht, wenn man sich Mühe gibtniemand hat geschrieben:Irgendwie ist da alles gut lesbar.
http://p-nand-q.com/python/obfuscated_python.html
- puddlejumper
- Beiträge: 58
- Registriert: 22.01.2005 00:29:52
Och mannooo, ich wollte mich ja nur rechtfertigen, da ich in meinem ersten Posting von Unix-Systemen gesprochen hatte...Leonidas hat geschrieben:Oha und mein SunOS 4.5 hat auch kein Python. Aber ich denke nicht, dass wir hier so wiele Sun Freunde haben, ich habe auf allen meinen Rechnern Python drauf, meist selbstkompiliert.
Hab' mich ja auch nicht gegen das übernehmen beschwert, da ich die Regex-Version von Perl ziemlich genial finde!Leonidas hat geschrieben:Naja, das ist Open Source, heißt also das man Dinge auch übernehmen kann. Außerdem sind diese gleibe ich nicht von Perl übernommen sondern einfach eine Implementation der traditionellen NFA Engine. Perl nutzt die ja auch. Und PHP mit PCRE (Perl Compatible Regualr Expression) genauso. Und Java, und JavaScript, und sed.
Aber wie Du schon sagtest, es ist eine NFA Implementation. Und diese Implementation hat auch wieder ihre eigenen Erweiterungen/Änderungen. Wie bei vielen anderen NFA Implementierungen auch ... wobei es ja eigentlich kaum eine Implementierung in einem Programm gibt, die sich genau so verhält wie die in einem anderen... Und wenn das alles gleich währe warum heisst das dann bei PHP PCRE...
Und dann gibt es auch noch eine DFA Impl. (awk/gawk/lex/flex)
Gruss,
PuddleJumper.