Alle meine P-Sprachen...

  • Eine kleine Diskussion über die bekannten P-Sprachen gefällig?

    PHP vs. Perl vs. Python :D

    Contra Perl:
    Perl ist schmutzig. Man kann damit echt hässliche, unleserliche Konstrukte basteln (die berühmten Einzeiler) usw. Oft wird Perl auch genau dafür hergenommen.
    Es gibt Dinge in dieser Sprache die sich jeder sinnvollen Beschreibung widersetzen, wie das Gegenteil zu if. Wieso braucht es unless, wenn ich jede if-Bedingung auch einfach negieren kann?
    Auch die Parameterübergabe entzieht sich der Vernunft. Und die ganzen anderen Spezialvariablen machen das Lesen von Perlcode echt zur Qual!

    Pro Perl:
    Perl IST die Referenz für RegExe. Fast alle anderen (die ich kenne *G*) lassen sich da inspirieren, die PHP-Doku verweist bei RegEx-Funktionen ständig auf Perl.
    Perl ist super für kleine Tasks, eben Dinge die in ein paar Zeilen abgearbeitet werden. Im Linuxumfeld ist Perl Pflicht, denn damit baut man seine kleinen Helferlein, wenn die Bash nicht mehr ausreicht. Perl ist super für RegEx-Dinge.

    Contra PHP:
    Man merkt PHP deutlich seine ungeplante Entstehung an. Funktionsbezeichnungen verdrehen sich (z.B. bei String-Funktionen, mal steht str vorab, mal dahinter) oder die Parameter sind bei verwandten Funktionen plötzlich umgedreht. Auch merkt man (mittlerweile schon nicht mehr so stark), das OO erst nachträglich aufgepropft wurde. Ich finde es auch echt übel, das da mittlerweile GoTo eingeführt wurde, das ist so Anno-Dazumal und ich finde GoTo echt hässlich und unnötig. Wer in einer Sprache die Funktionen und OO anbietet ein GoTo verwenden muss, ist IMHO kein Programmierer oder will absichtlich den Code unleserlich und unwartbar machen.

    Pro PHP:
    Es ist überall vorhanden. Es ist relativ leicht erlernbar. Es kann viel, es gibt viele Libs/Frameworks/usw. dafür. Man findet unglaublich viel Material dazu im Internet.
    Als "Einstiegsdroge" sicherlich nicht die falsche Wahl. Und mit den richtigen Frameworks, bzw. genug Ahnung auch ein sehr mächtiges Werkzeug!

    Contra Python:
    Es ist nicht überall verfügbar. Es zwingt einen, einen gewissen Format-Stil zu verwenden. Es ist nicht so einfach einbettbar wir PHP. Es ist komisch was Encodings angeht (UTF-8 vs. Unicode vs. Ascii), ich hatte damit schon die schönsten Probleme.

    Pro Python:
    Es zwingt einen gewissen Format-Stil auf. Es ist OO pur, alles ist ein Objekt. Man kann daraus relativ leicht C machen (sagt man, kA habs noch nie ausprobiert).
    Es ist schnell, dank dem das alle Dateien in eine Art Bytecode umgewandelt werden (absolut dynamisch, ohne das man was dafür machen muss).
    Es gibt ebenfalls recht viele Module, die einem Arbeit abnehmen. Und es gibt das geilste Framework das ich kenne: Django ;)

  • da kann ich leider nicht viel beitragen. python kenn ich nicht und php kann ich nicht. php ist mir einfach unsymphatisch mit diesen "<?php". eine programmiersprache bei der man erst mal schreiben muss dass jetzt code kommt, ich weiss ja nicht. meine abneigung gegenüber php ist leider bereits so gross, dass ich es nicht mehr objektiv betrachten kann.

    an meine perl-anfänge kann ich mich nicht mehr so gut erinnern, aber ich denke ich hatte keine grosse probleme und die programmiersprache lag mir einfach.
    nur weil man damit unleserlichen code schreiben kann, heisst das noch lange nicht dass man es auch machen muss. es hält die option einfach offen. das ist überhaupt eine stärke von perl, man hat extrem viel freiheit und kann machen was man will.

  • Öhm, deine Abneigung zu "<?php" verstehe ich nicht? Du musst doch auch irgendwie sagen, das da ein Perl-Programm ist, das machst du entweder mit der She-Bang oder mit anderen Konfigurationseinstellungen. Wo ist da der Unterschied? PHP macht das halt, damit man HTML und aktiven Code vermischen kann, das ist historisch bedingt. ;)

    Ja, Perl kann viel, das ist leider genau dann schwierig, wenn mehrere Leute an einem Projekt arbeiten sollen. IMHO kann Perl zu viel. Weniger ist manchmal mehr. ;)

  • Wieso braucht es unless, wenn ich jede if-Bedingung auch einfach negieren kann?

    folgende drei zeilen sollten alle das selbe machen. welche kann man am besten lesen?

    PHP
    if (!$foo && !$bar)
    if (!($foo || $bar))
    unless ($foo || $bar)

    beachte, wenn $foo und $bar nicht nur variablen wären, sondern auch noch klammern-ausdrücke, dann hat man den klammern-überblick ziemlich schnell verloren. ;)

  • Finde jetzt nicht, das es da einen großen Unterschied gibt. ;)
    Denken muss man in jedem der drei Fälle. Die zweite Variante finde ich persönlich jetzt noch am schönsten.

  • Prinzipiell habe ich nichts gegen diese Sprachen.
    ABER Python ist, was das Interpretieren angeht, etwas langsam.
    Ich bleibe da lieber beim guten alten Compiler.

    01001001 00100111 01101101
    00100000 01100101 01110110
    01100101 01110010 01111001
    01110111 01101000 01100101
    01110010 01100101

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!