PHP contra Perl



  • aber perl(bzw cgi)

    Stopstopstop.
    Pearl is was anderes als CGI.
    CGI Steht für COmmonGatewayInterface und erlaubt nur das benutzen von externen programmen über den webserver.
    Pearl ist nur eine davon.
    PHP kann auch über CGI laufen.
    Ich meine man konnte doch auch c++ Sachen über CGI laufen lassen, wenn man den Server richtig configuriert..
    Demnach kann man nich sagen PHP>CGI

    Shade Of Mine schrieb:

    PHP [...] ist nie und wird nie eine ordentliche OO Sprache sein.

    Kannste mir das mal erläutern? Alles OO was ich bisher in PHP gesehen habe (OScommerce als Beispiel) sieht eigentlich nach normalem OO aus..



  • Objektorientierung ist aber auch in PHP5 lahm. Zwar schneller als PHP4, aber immer noch lahm. Schon mal schön mit vielen Wrapperklassen gearbeitet und von Exceptions gebrauch gemacht? Dann weißt Du was ich meine! 😉

    Kann eigentlich der Zend Accelerator Wrapper Klassen im Stile eines C++ Compilers auflösen(wegoptimieren)?



  • Shade Of Mine schrieb:

    Blue-Tiger schrieb:

    uhm.... PHP ist im eine Weiterentwicklung von Perl 😉

    Ne. Dazu fehlen zu essentielle Perl Konzepte.

    *g* ok, ich meinte auch eher "Spezialisierung", die sich auf die Web-Komponenten von Perl konzentriert 😉

    dass es einfach mal als einfacheres Perl fuer Webentwicklung geschrieben wurde, merkt man nur noch zum Teil.

    Wo denn zB?

    Ich hab den Eindruck manchmal einfach... z. B. (dummes Beispiel) beim $ vor den Variablen, wie sie auch Perl vor den Skalaren hat, vielen Designprinzipien (z. B. das Weak-Typing), aehnliche Funktionen (im Sinne von: heissen gleich, funktionieren gleich, nehmen z. T. gleiche oder sehr aehnliche Parameter)...



  • Blue-Tiger schrieb:

    z. B. (dummes Beispiel) beim $ vor den Variablen, wie sie auch Perl vor den Skalaren hat, vielen Designprinzipien (z. B. das Weak-Typing)

    Gibts alles schon seit der bourne-Shell.


  • Mod

    Blue-Tiger schrieb:

    Ich hab den Eindruck manchmal einfach... z. B. (dummes Beispiel) beim $ vor den Variablen, wie sie auch Perl vor den Skalaren hat

    Und schon einen essentiellen unterschied entdeckt:
    PHP hat nur $ - was sehr gängig ist, Perl hat hier viel mehr.

    vielen Designprinzipien (z. B. das Weak-Typing),

    wie fast alle script sprachen

    aehnliche Funktionen (im Sinne von: heissen gleich, funktionieren gleich, nehmen z. T. gleiche oder sehr aehnliche Parameter)...

    beispiele?
    PHP hat Funktionen von überall geerbt, zB die meisten C string funktionen.
    natürlich wird PHP auch einiges von Perl geerbt haben, aber die unterschiede zwischen Perl und PHP sind einfach zu gravierend.

    die syntax ist natürlich ähnlich, aber die ist bei allen C ähnlichen Sprachen so...



  • ok... dann aender ich meine Meinung auf "man erkennt NICHT mehr, dass PHPs Wurzeln bei Perl liegen" 😉



  • Blue-Tiger schrieb:

    ok... dann aender ich meine Meinung auf "man erkennt NICHT mehr, dass PHPs Wurzeln bei Perl liegen" 😉

    Ändere Deine Meinung lieber auf "PHP hat seine Wurzeln nicht bei PERL".



  • nman schrieb:

    Blue-Tiger schrieb:

    ok... dann aender ich meine Meinung auf "man erkennt NICHT mehr, dass PHPs Wurzeln bei Perl liegen" 😉

    Ändere Deine Meinung lieber auf "PHP hat seine Wurzeln nicht bei PERL".

    http://de.wikipedia.org/wiki/PHP unter "Geschichte":

    PHP wurde 1995 von Rasmus Lerdorf entwickelt. PHP stand damals noch für Personal Home Page Tools und war ursprünglich eine Sammlung von Perl-Skripten. Bald schrieb er jedoch eine größere Umsetzung in C, worin PHP auch heute noch geschrieben ist. Das schließlich veröffentlichte PHP/FI (FI stand für Form Interpreter) war Perl sehr ähnlich, wenn auch viel eingeschränkter, einfach, und ziemlich inkonsistent.

    oder siehe ebenfalls: Das PHP-Handbuch, Anhang A: "Die Geschichte von PHP und verwandten Projekten"
    http://it.php.net/manual/de/history.php

    (ich spar mir das quoten, weil der Wikipedia-Eintrag offensichtlich grossteils ohne Aenderung von dieser Page stammt)

    :p

    *rechthabenwill* 😉



  • Na und?

    Emacs war auch mal eine Sammlung von TECO-Makros, trotzdem behauptet niemand ernsthaft, Emacs stamme von TECO ab.



  • Das würde für mich in erster Linie erstmal heissen, das jemand von Pearl die schnauze voll hatte und was eigenes machen wollte.

    Und das die Idee zu PHP aus einer SAMMLUNG von Pearl funktionen is, heisst net, das die Sprache deshalb auch darauf basieren muss.

    in Wiefern sie das nun wirklich tut, kann nur der PHP Author selbst sagen 😎



  • Ich korrigiere normalerweise keine Rechtschreibfehler, aber die Sprache heißt PERL, nicht Pearl.
    "Practical Extraction & Report Language".



  • o_O schrieb:

    Pearl is was anderes als CGI

    Und Pearl ist was anderes als Perl.



  • ups...

    naja kann ja mal passieren 🙄



  • nachtrag:
    naja kann auch mehr als einmal passieren -.-"



  • In Perl hab ich noch nie gearbeitet. Aber kann es wirklich schlimmer werden als PHP??

    For converted Perl programmers: use strict comparison operators (===, !==) in place of string comparison operators (eq, ne). Don't use the simple equality operators (==, !=), because ($a == b)willreturnTRUEinmanysituationswhere(b) will return TRUE in many situations where (a eq $b) would return FALSE.

    For instance...
    "mary" == "fred" is FALSE, but
    "+010" == "10.0" is TRUE (!)

    *seufz*

    Auch hab ich mal nen Fehler gesucht, weil strpos FALSE liefert wenn er was nicht findet und ich wunder mich warum er es nicht findet. Die Auflösung war, dass er es an der Stelle 0 findet, was korrekt ist, aber leider zu einer klitzekleinen Komplikation geführt hat. 🙄

    if( 0 == "sdkufg" )   // Ergibt true
    

    😃 👍



  • Optimizer schrieb:

    if( 0 == "sdkufg" )   // Ergibt true
    

    Das glaube ich dir nicht. Was aber sein kann, und wovon ich ausgehe, dass du es meinst:

    0==strpos("asdfghjkl","e");
    

    - Das gibt dann true zurück, weil false auch den wert 0 hat... aber macht man das hier:

    0===strpos("asdfghjkl","e");
    

    liefert es false zurück, weil hier wirklich exakt darauf geachtet wird, dass es 0 und nicht false ist. Für mich eine gute Logik, sodass es dem Programmierer vorbehalten bleibt, es so zu sehen, dass 0=false ist (Wie in C/C++) oder eben nicht. Ich weiß nicht, wieso du dich darüber aufregst... mein gott... macht man halt ein gleichheitszeichen mehr rein...



  • Optimizer schrieb:

    In Perl hab ich noch nie gearbeitet. Aber kann es wirklich schlimmer werden als PHP??

    For converted Perl programmers: use strict comparison operators (===, !==) in place of string comparison operators (eq, ne). Don't use the simple equality operators (==, !=), because ($a == b)willreturnTRUEinmanysituationswhere(b) will return TRUE in many situations where (a eq $b) would return FALSE.

    For instance...
    "mary" == "fred" is FALSE, but
    "+010" == "10.0" is TRUE (!)

    *seufz*

    sehe da kein problem, dass ist doch nur definitions-sache und man muss halt wissen welchen operator man wo verwendet.
    In C++ schreibst du ja auch nicht

    char a[10], b[10];
    if(a == b);



  • DrGreenthumb schrieb:

    In C++ schreibst du ja auch nicht

    char a[10], b[10];
    if(a == b);

    Du etwa nicht? 😃



  • Windoof schrieb:

    Optimizer schrieb:

    if( 0 == "sdkufg" )   // Ergibt true
    

    Das glaube ich dir nicht.

    Dann probier es doch aus. Glauben hilft dir hier nicht weiter. PHP wandelt bei solchen vergleichen den String implizit in ein int um.
    Es gibt nur eines was noch schlimmer ist als eine untypisierte Sprache: Ein untypisierte Sprache die völlig sinnlose Konvertierungen implizit durchführt.

    DrGreenthumb schrieb:

    char a[10], b[10];
    if(a == b);

    Ich sehe den Zusammenhang nicht.

    "+010" == "10.0"
    sollte IMHO ein Stringvergleich sein (also wenn dann a und b vom Typ std::string), stattdessen werden beide Seiten (die beide Strings sind !!!) implizit in Zahlen konvertiert (obwohl eins auch noch Ganzzahl und das andere FP ist) und verglichen. Während der Pointer-Vergleich bei C++ selten sinnvoll aber wenigstens logisch ist, werden hier irgendwelchen völlig unsinnigen Konvertierungen durchgeführt.
    Das ist affig. Da kannst du mir erzählen was du willst. Und wie gesagt, ich sehe den Zusammenhang nicht zu deinem Code.



  • Optimizer schrieb:

    Ich sehe den Zusammenhang nicht.

    In beiden Fällen muss man wissen, was == bedeutet. Wenn man PHP programmiert, muss man halt wissen, dass Zeichenketten mit eq (oder was auch immer) verglichen werden und == eine andere Bedeutung hat, so wie du in C strcmp nehmen musst und es in C++ bei stringobjekten auf einmal doch wieder mit == geht.

    Vielleicht wird so ein "wischiwaschi-Vergleich" im Kontext der Webprogrammierung viel häufiger benötigt als der genaue Zeichenkettenvergleich.

    Ich kenne weder Perl noch PHP genauer aber nur weils ungewohnt erscheint, muss es ja nicht unlogisch sein.


Anmelden zum Antworten