Warum betreiben manche Perl fast wie eine Religion?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
zacharias
User
Beiträge: 11
Registriert: Samstag 2. Juni 2007, 00:36

Ich programmiere gern, und - noch - als Hobby. Als - noch - hauptberuflicher Drucker habe ich dabei einen sehr pragmatischen Zugang zum Thema Computer, sprich: Computer sind Werkzeuge, und Werkzeuge setzt man so effizient wie möglich ein, man schlägt keinen Nagel mit einem schweren Schraubenzieher ein, sondern mit einem Hammer, und man verwendet einen Kreuzschraubenzieher für Kreuzschrauben, außer, wenn man sich den erst extra holen müsste, und sowieso nur eine einzige Schraube herauszudrehen hat, hat man den Schlitzschraubenzieher in der Hand, nimmt man eben den. Hat man hingegen ein ganzes Gerät auseinanderzuschrauben, gut, dann investiert ich die zwanzig Minuten, die ich brauche, um runter ins Lager zu gehen und mir aus dem Werkzeugkistel den Kreuzinger zu holen, weil ich mir durch die Investition dieser Zeit letzlich ingesamt viel Zeit erspar.

Ich hoffe, ich habe mit diesen Beispielen umschrieben, wie ich zur Technik stehe.

Und nun gibt es das ,,Kamel'', eine Programmiersprache, die schon einmal falsche Paradigmen hat (,,Tim Towtdi"), wo der Code inkonsistent ist bis zum Gehtnichtmehr, viiiel Line-Noise, kurz: ein Krampf für jedes größere Projekt.

Ich programmiere, wenn ich es mir aussuchen kann, in Python. Python ist simpel, kompakt, konsistent, meiner Meinung nach eine der am saubersten konzipierten Programmiersprachen die es momentan gibt, und wenn ich mir Code anschau, den ich vor ein paar Jahren geschrieben habe, verstehe ich ihn immer noch auf Anhieb.

Natürlich ist es so, dass persönliche Präferenzen für die Wahl eines Werkzeugs eine große Rolle spielen, nicht zuletzt deswegen, weil man mit einem Werkzeug, das man gut kennt, effizienter arbeitet als mit einem, das einem weniger vertraut ist. Aus diesem Grund würde ich sofort Linux für einen Server verwenden, aber wenn jemand lieber Windows verwendet, auch gut, müssen wir zusammenarbeiten, nehmen wir das, wo wir uns beide im Durchschnitt am besten auskennen, sprich: Wenn mein Partner der Windows-Großmeister ist, nehmen wir Windows, wenn er einer ist, dessen Fähigkeiten gerade darin bestehen, auf das Install-Icon zu klicken, nehmen wir Linux.

Und eigentlich sollte es bei Programmiersprachen genauso so sein: Man nehme das unter den gegebenen Umständen besser geeignete Werkzeug. PHP ist ein Graus, aber schneller als ein Python-CGI, darum programmiere ich für Web in PHP. Und wenn ich ein vorliegendes Projekt zu modifizieren habe, dann lerne ich meistens eben die Sprache, in der es geschrieben ist, anstatt es es neuzuschreiben, außer es gibt gewichtige Gründe dagegen.

Ich habe nun die Erfahrung machen müssen, dass manche Perlianer es fast als persönlichen Angriff empfinden, wenn man selber hauptsächlich in Python programmiert, und ihnen auf den Kopf zusagt, dass sich Perl vielleicht für einen Hundertzeiler eignet, aber nicht für mehr.

Dann kriegt man sofort die diversen Meldungen an den Kopf geworfen, ja, du kennst Perl eben nur nicht gut genug, und sooo viele andere Sachen sind in Perl geschrieben, und du bist einfach nur ignorant/dumm/böse - im Grunde genommen genaudieselben Meldungen, die einem Microsoft-Fanboys an den Kopf werfen.

Und ich versteh es nicht.

Was wollen die? Perl ist einfach alt, in einer Zeit entstanden, als von OOP noch keine Rede war (afaik), und tatsächlich um Eckhäuser effizienter als nackerte Shellscripten. Jetzt ist eben Python am Vormarsch, ganz neu und ganz glänzend und ganz toll und überhaupt - weil es einfach fünf Jahre jünger ist und na no na net die besseren Konzepte hat, so wie Perl bessere Konzepte hat als Shellscripten.

Irgendwann wird es Programmiersprachen geben, die noch effizienter, noch sauberer sind als Python, und dann wird eben Python veraltet sein. Aber nein, in Perl kömma ,,Golf'' spielen und hurra!, ich kann Sachen in Perl schreiben, die kann sonst keiner lesen, und überhaupt... wo man sich fragt, ob die Leuteln, die sowas machen, eigentlich noch eine Vorstellung davon haben, wozu man eigentlich Programme schreibt.

Python im Gimp, Python im Photoshop, Python im Blender, Python im OLPC als Standard, Python am Zaurus (und Perl nicht), ja, und?, ich reit auch nicht mit'n Rösserl in die Arbeit, sondern fahr mit einem Kraftwagen, und vielleicht werd ich in ein paar Jahrzehnten mit'n Photonenwagerl oder was auch immer fahren, und ja, sicher werd ich manchmal mit Sehnsucht an die alten Benziner zurückdenken, wo man noch mit der Hand schalten konnte, was in bestimmten Umständen vielleicht Vorteile hatte, aber wenn ich dann nurmehr 30s statt 15min in die Arbeit brauch, wird auch dieser Nachteil unterm Strich verschmerzbar sein.
Gabelmensch
User
Beiträge: 79
Registriert: Montag 12. Oktober 2009, 11:50

Bild
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

zacharias hat geschrieben:Ich programmiere, wenn ich es mir aussuchen kann, in Python. Python ist simpel, kompakt, konsistent, meiner Meinung nach eine der am saubersten konzipierten Programmiersprachen die es momentan gibt, und wenn ich mir Code anschau, den ich vor ein paar Jahren geschrieben habe, verstehe ich ihn immer noch auf Anhieb.
Also ich kriege bei meinem eigenen Code oftmals das Grausen und wenn ich mir fremden Code anschau... na, reden wir nicht davon.

Und sauber konzipiert... jein. Dachte ich früher auch, aber inzwischen habe ich einen Maßstab der ein wenig anders ist.
zacharias hat geschrieben:Ich habe nun die Erfahrung machen müssen, dass manche Perlianer es fast als persönlichen Angriff empfinden, wenn man selber hauptsächlich in Python programmiert, und ihnen auf den Kopf zusagt, dass sich Perl vielleicht für einen Hundertzeiler eignet, aber nicht für mehr.
Naja, würde es dich freuen wenn dir jemand sagt, dass das Werkzeug was du nutzt und es für viele Aufgaben super findest eigentlich Schrott ist?
zacharias hat geschrieben:Dann kriegt man sofort die diversen Meldungen an den Kopf geworfen, ja, du kennst Perl eben nur nicht gut genug, und sooo viele andere Sachen sind in Perl geschrieben, und du bist einfach nur ignorant/dumm/böse - im Grunde genommen genaudieselben Meldungen, die einem Microsoft-Fanboys an den Kopf werfen.
So Sachen höre ich hauptsächlich von Linux-Fanboys. Microsoft hat erstens wenige Fanboys und zweitens braucht es auch keine, da es fast überall in der Mehrheit ist.
zacharias hat geschrieben:Was wollen die? Perl ist einfach alt, in einer Zeit entstanden, als von OOP noch keine Rede war (afaik), und tatsächlich um Eckhäuser effizienter als nackerte Shellscripten. Jetzt ist eben Python am Vormarsch, ganz neu und ganz glänzend und ganz toll und überhaupt - weil es einfach fünf Jahre jünger ist und na no na net die besseren Konzepte hat, so wie Perl bessere Konzepte hat als Shellscripten.
Perl ist vier Jahre älter, und Java ist grob fünf Jahre jünger als Python. Kann man nun als Java-Programmierer Python vorwerfen es sei alt? Außerdem ist OOP wesentlich älter als Perl und Python, wenn man zurückschaut dann gab es Smalltalk schon etliche Jahre früher. Und außerdem bietet Perl mit Moose und MooseX::Declare schon auch einiges für OOP.
zacharias hat geschrieben:Python im Gimp, Python im Photoshop, Python im Blender, Python im OLPC als Standard, Python am Zaurus (und Perl nicht)
XChat in Perl, irssi in Perl (und Python nur sehr eingeschränkt)... und weiter?

Also für mich liest sich dein Post wie eine Menge Vorurteile gegenüber Perl und irgendwie kein Ziel. Was ist dein Vorhaben? Python zu pushen? Ich denke nicht dass es in einem Python-Forum nötig ist. Perl bashen? Ich denke nicht dass das notwendig ist und seitdem mir ronny von Perl 6 erzählt hat, klingt die Sprache auch für mich gar nicht so schlecht.

Natürlich gibt es schlechten Code, aber es gibt auch schlechten Python-Code und wenn ich mich umsehe ist dieser fürchterliche Code die Regel, nicht die Ausnahme. Das ist in Python vielleicht nicht ganz so drastisch, aber schlechte Programmierer schreiben überall schlechten Code.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Leonidas hat geschrieben:und seitdem mir ronny von Perl 6 erzählt hat, klingt die Sprache auch für mich gar nicht so schlecht.
Das war nach Duke Nukem Forever eingeplant oder? SCNR
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Mir gefallen ja die Möglichkeiten für reguläre Ausdrücke in Perl viel besser. Hier ein paar Beispiele aus einem Tutorial für Perl 6.
zacharias
User
Beiträge: 11
Registriert: Samstag 2. Juni 2007, 00:36

Perl hat ja durchaus seine Stärken, und wenn du dich durch einen Dschungel von Protokolldateien arbeiten und daraus eine HTML-Seite erzeugen musst, ist Perl auch das perfekte Werkzeug.

Ich kenne die Geschichte von Perl recht gut, und werfe den Perlianern (zumindest den religiösen) vor, einen zu, hm, wie drückt man das am besten aus?, ,,künstlerischen'' und viel zu wenig technischen Zugang zu einer Programmiersprache zu haben, die Larry Wall dereinst schuf, weil ihm das Herumgurken mit den diversen Unix-Tools auf'n Senkel gegangen ist, und auf die sich dann sofort mit Freude draufgestürzt haben, weil's sonst nichts Anderes gab, und als dann irgendwann das CPAN entstanden ist, haben die Leute schon lang vergessen gehabt, dass Perl eigentlich eine kleine Skriptsprache ist, und sonst nix, und für große Softwaresuiten niemals gedacht, niemals konzipiert, und daher auch nicht geeignet ist. Ja, man kann ein großes Projekt in Perl durchziehen, aber man kann auch eine Kathedrale aus Streichhölzern bauen.

Ich hatte unlängst das Problem, ein Tool zu brauchen, das die diversen ,,Chunks'' aus PNGs killt, was habe ich also getan? Mir die Python-Libraries rausgesucht, einen PNG-Parser geschrieben... UNSINN, ich hab ein Shellskript geschrieben, das die PNGs durch die Konverter von netpbm jagt, und fertig. War in einer halben Stunde geschrieben, funktioniert schnell, sauber, und effizient - Herz, was willst du mehr?

Um was es mir geht in diesem Threat ist der Realitätsverlust von manchen Leuten, die sich so viel mit ,,Kompjutas'' beschäftigen, dass sie - und das ist mein Vorwurf - schon lang nimmer checken, wozu die Dinger eigentlich da sind.

Meiner ganz persönlichen Erfahrung nach liegt da eben der Schwerpunkt auf den Perlianern, die haben wohl die stärkste Tendenz, zu vernerden, mit allen fürchterlichen Konsequenzen, die das hat.

Würde ich gegen Perl bashen wollen, würde ich trompeten, dass alle Variablen per default global sind, dass solche Sachen wie [0,1,[a,b,c],2,3] zu [0,1,a,b,c,2,3] vermanscht wird, ich würde ganze Bildschirmseiten mit Tim Towtdi aufwischen, doch das ist alles witzlos, denn für was, was man halt einmal schnell runterklopft, ist es genial, wenn man sich nicht darum scheren braucht, wie man sich welche Variablen von wo her holt, weil eh alles global ist, für solche Sachen ist es super, dass eine Subliste in einer Liste aufgeht, und auch, dass man sich nicht daran erinnern braucht, ob es jetzt x AND y oder x && y heißt, weil beides geht.

Das lässt einen in bestimmten Fällen irrsinnig schnell und effizient arbeiten, aber eben in vielen Fällen auch nicht.

Python ist ja auch keine eierlegende Wollmilchsau, wen wundert's, sowas gibt es nicht unter den Programmiersprachen, ja, kann es auch garnicht geben, jede hat ihre Stärken und ihre Schwächen, manche werden von der Zeit überholt und gehen unter (auch wenn sie in Nischen oft noch länger erhalten bleiben können, als das gut ist :wink: ), neue Programmiersprachen entstehen, und wer weiß, was es in zehn Jahren so alles geben wird?

Was mich so unendlich ankotzt ist der quasireligiöse Zugang von manchen. Ja, es mag sein, dass damals Perl ur supa war. Ja, es mag sein, dass Perl seine Störken hat. Das ändert aber nichts daran, dass es sich für größere Projekte nicht eignet, und das ändert nichts daran, dass man - einmal hart formuliert - sich erst einmal in die Gefühlswelt von jemandem hineinversetzen muss, um seinen Code lesen zu können.

Es gibt Entwicklungen, und zum Kommentar mit Perl 6, nun, ich stimme cofi vollinhaltlich zu: Du wirst sicher irgendwann in Perl6 schreiben, und zwar genau dann, wenn ich zum ersten Mal DukeNukem Forever durchgespielt hab - schau dir ruby an. Ruby ist in meinen Augen der eigentliche Nachfolger von Perl.

Und ja, regexpressions sind definitiv eine von Perls Stärken, das ist ohne Zweifel so.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

zacharias hat geschrieben:Es gibt Entwicklungen, und zum Kommentar mit Perl 6, nun, ich stimme cofi vollinhaltlich zu: Du wirst sicher irgendwann in Perl6 schreiben, und zwar genau dann, wenn ich zum ersten Mal DukeNukem Forever durchgespielt hab - schau dir ruby an. Ruby ist in meinen Augen der eigentliche Nachfolger von Perl.
Ruby ist fürchterlich langweilig, ich nehme aber an dass Perl6 kommen wird, noch bevor sich Python 3 durchsetzt :P Oder Ruby 1.9/2.0. Uch auch sonst ist Perl6 in vielerlei Hinsicht interessanter als Ruby, zumindest aus Pythonprogrammierer-Sicht.

Andererseits... du brauchst doch keinen PNG-Parser schreiben. Dafür gibts die libpng (die netpbm sicherlich auch nutzt), die mittels PIL auch aus Python nutzbar ist. Viel schwerer als ein Shellskript ist das in Python nicht. Wenn überhaupt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

zacharias hat geschrieben:Python ist ja auch keine eierlegende Wollmilchsau, wen wundert's, sowas gibt es nicht unter den Programmiersprachen
Wobei ich sage würde, das Python noch am nächsten liegt, mehr als alle anderen ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
lunar

@snafu:
Jamie Zawinski hat geschrieben:Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
Mit regulären Ausdrücken hat das aber nichts mehr zu tun. Es geht da schon um vollwertige, rekursive Grammatiken, also letztlich um komplette Parser. Und so opfert man die Übersichtlichkeit und Einfachheit eines reduzierten Sprachumfangs zugunsten einer Funktionalität, die nicht universell ist, sondern auch nur ein begrenztes Einsatzfeld hat. So wichtig ist Parsen nicht, dass man nicht auf mit einer Parsing-Bibliothek leben könnte, wenn es mal keinen fertigen Parser gibt.

Man könnte sagen, dass Perl 6 so auf höherem Niveau dahin zurückkehrt, wo es vor dreißig Jahren angefangen hat: Als DSL für Textverarbeitung.
BlackJack

@zacharias: So blöd ist die Idee ein eigenes Programm zum killen von bestimmten Chunks in PNGs zu schreiben, unter Umständen gar nicht. Wenn zum Beispiel die Installation von ImageMagick wesentlich schwieriger als das Ausführen eines Python-Skriptes ist. Die Chunk-Struktur ist nicht so besonders schwer, und Python's Standardbibliothek bringt eigentlich alle notwendigen Werkzeuge mit (`zlib`, `struct`). Sowas macht Spass und man lernt etwas dabei.

Aber wahrscheinlich bin ich auch einer von denen, die keine Ahnung haben, wofür Computer eigentlich da sind. Habe vorgestern eine Lösung für Problem 21 von http://www.projecteuler.net/ von CBM BASIC V2 (für den C64) nach Turbo BASIC XL für den Atari XE130 portiert. :-)
zacharias
User
Beiträge: 11
Registriert: Samstag 2. Juni 2007, 00:36

EIN NERD, EIN NERD! Bewerft ihn mit 8"-Disketten! :wink:

Ja, unter bestimmten Umständen wär hier ein Pythonprogramm wirklich eine Möglichkeit, aber die Umstände waren, dass netpbm (wie kommst du auf ImageMagick? Hab ich da was überlesen?) bereits überall installiert war, und ganz einfach alle Chunks verschwinden mussten, war das der Weg der Wahl. Die Leute haben vorher doch tatsächlich unter einem virtuellen Windows mit einem Klicksibunti-Programm jede Datei einzeln aufgemacht und die Chunks alle händisch gelöscht :roll: ,obwohl sie auf Linux-Systemen gesessen sind und netpbm sowieso auf den diversen Servern für automatische Bildkonversionen in Verwendung hatten.

In diesem Fall war also die Shellskript-Lösung unschlagbar von Verhältnis von Aufwand zu Leistung.

Aber wie gesagt, das ist immer situationsabhängig, was mich nur so ankotzt, ist die Tendenz ,,i kann Pörl, i vawend imma Pörl'', wurscht, ob man sich damit eigentlich die fünffache Arbeit einhandelt oder nicht, weil, was für einen Zwanzigzeiler perfekt ist, der einmal läuft, und dann niewieder, muss auch für ein 50K-Zeilen-Projekt gut sein.

Und ja, Python kommt einer eierlegenden Wollmilchsau schon wirklich verdammt nah, was Programmiersprachen angeht - das ist der Grund, warum ich Python verwende, nur: Python ist als universell und einfach einsetzbare Sprache konzipiert worden, und das macht sich doch irgendwie bemerkbar, oder? :wink:
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

@Zacharias
Ich schaue alle paar Tage in diesen Thread und weiß ehrlich gesagt nicht, ob ich mich wundern oder aplaudieren soll. Ist es Absicht, daß du dich selbst ad absurdum führst? Dann Applaus für die satirische Leistung. Ansonsten: Was willst du eigentlich mit diesem Thread erreichen? Hast du erwartet, daß hier alle im Chor einstimmen: Ja, Python, cool! Vergesst Perl! ?
Benutzeravatar
Shizzo
User
Beiträge: 11
Registriert: Dienstag 6. November 2007, 19:47

Zacharias ist wohl einfach nur neidisch, das die Perl Programmierer ihre Sprache nicht einfach nur als Werkzeug ansehen, sondern auch als Hobby, das Spass macht und verbindet. Was stört dich daran, das Perl Programmierer auch noch Spass an ihrer Sprache haben, wen sie mal nicht an ernsthaften Programmen programmieren? Kann dir doch egal sein, wen sie lustige Obfuscated Perl Contests, Golf etc. veranstalten, oder? Sorry, aber für mich hören sich deine ganzen Beiträge nach Neid an.
muss auch für ein 50K-Zeilen-Projekt gut sein.
Wieso nicht? Auch mit Perl kann man gut lesbaren, wartbaren, sauberen Code schreiben und mit diversen Modulen wird OO zum Kinderspiel.

Just my 2 cent ...
BlackJack

Also ich sehe Python auch als Hobby was Spass macht und verbindet an. Mit Python kann man sich sogar in der Öffentlichkeit sehen lassen, und erntet nicht diesen "der kann nur read-only Code schreiben"-Blick. Wer hier wohl neidisch ist. :twisted:
lunar

"Lesbarkeit" und "Wartbarkeit" sind ja irgendwo auch Erfahrungswerte … ein durchschnittlicher Java-Programmierer hat eben keine Ahnung von höheren funktionalen Weihen und wird auch den besten Ocaml-, Scheme- oder Haskell-Quelltext nicht auf Anhieb verstehen.
Benutzeravatar
Shizzo
User
Beiträge: 11
Registriert: Dienstag 6. November 2007, 19:47

BlackJack hat geschrieben:Wer hier wohl neidisch ist. :twisted:
Keine Ahnung, ich mag und verwende beide Sprachen (obwohl der Python Teil in Zukunft steigen wird) :wink:
lunar hat geschrieben:Lesbarkeit" und "Wartbarkeit" sind ja irgendwo auch Erfahrungswerte
Ja klar, aber in Perl kann man halt schon üblen quick'n'dirty Code schreiben, muss man aber nicht. Viele Programmierer entscheiden sich leider für ersteres (sogar teilweise in Modulen im CPAN).
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

BlackJack hat geschrieben:Also ich sehe Python auch als Hobby was Spass macht und verbindet an. Mit Python kann man sich sogar in der Öffentlichkeit sehen lassen, und erntet nicht diesen "der kann nur read-only Code schreiben"-Blick. Wer hier wohl neidisch ist. :twisted:
Ich hab schon einige skeptische Reaktionen erlebt. Nach dem Motto: "Python? Das nutzt doch keiner. Ich entwickle ja in PHP"
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Antworten