LanX: Wozu PHP statt Perl?

Hallo,

Vorweg: PHP mäßig bin ich ein DAU!

Ich bin mir aber nicht klar was ich mit PHP machen kann,
was nicht auch schon in Perl geht.

Templates zu basteln in denen Perlcode im HTML eingebettet ist,
die anschließend evaluiert werden ist mit RegExp doch kein Problem.
(Hab ich auch schon erfolgreich gemacht)

Bin sicher es gibt dafür auch ausgefeilte Module.

Was sind nun die Argumente für PHP?

Geht's um Performance?

Viele Grüße
Rolf

  1. Templates zu basteln in denen Perlcode im HTML eingebettet ist,
    die anschließend evaluiert werden ist mit RegExp doch kein Problem.
    (Hab ich auch schon erfolgreich gemacht)

    Bin sicher es gibt dafür auch ausgefeilte Module.

    Was sind nun die Argumente für PHP?

    Im Prinzip geht mit jeder Programmiersprache, was man auch mit Perl machen kann. Die Vorteile von PHP gegenüber Perl sind die bedeutend bessere Einbindung in HTML und ein sehr reichhaltiger, nützlicher Befehlssatz. Ich würde behaupten, daß PHP wirklich auf HTML spezialisiert ist, während Perl eine eher allgemeine Sprache ist, die _auch_ als CGI genutzt werden kann.

    PHP und Perl unterscheiden sich übrigens garnicht so grundsätzlich, was die Syntax angeht. Wenn du Perl kannst, kannst du auch recht schnell PHP.

    - Sven Rautenberg

    1. Moin,

      Was sind nun die Argumente für PHP?

      Im Prinzip geht mit jeder Programmiersprache, was man auch mit Perl machen kann.

      jein. Einige Sachen gehen zwar, aber sehr umstaendlich. Einige Sachen gehen gar nicht.

      Die Vorteile von PHP gegenüber Perl sind die bedeutend bessere Einbindung in HTML und ein sehr reichhaltiger, nützlicher Befehlssatz.

      hmmmm.
      Dem kann ich nicht zustimmen. PHP schreibt mir an einigen Stellen vor, wie mein HTML-Code auszusehen hat. Das ist fuer mich ein Nachteil, der mir in keiner anderen Sprache bisher begegnet ist.
      Und der reichhaltige Befehlssatz ist IMHO vollkommen ueberfluessig. Das geht ja schon in Richtung BASIC.

      Ich würde behaupten, daß PHP wirklich auf HTML spezialisiert ist, während Perl eine eher allgemeine Sprache ist, die _auch_ als CGI genutzt werden kann.

      das stimmt. bzw. PHP ist fuers Web konzipiert und fuer Anfaenger. Nichts weiter.

      PHP und Perl unterscheiden sich übrigens garnicht so grundsätzlich, was die Syntax angeht. Wenn du Perl kannst, kannst du auch recht schnell PHP.

      liegt wohl an der C-Naehe beiderseits ;)

      Viele Gruesse,

      n.d.p. *duck*

      1. Servus,

        Die Vorteile von PHP gegenüber Perl sind die bedeutend bessere Einbindung in HTML und ein sehr reichhaltiger, nützlicher Befehlssatz.

        das stimmt. bzw. PHP ist fuers Web konzipiert und fuer Anfaenger. Nichts weiter.

        Kurze Frage zwischendurch: Also wäre es doch eigentlich klüger, Perl als PHP zu lernen, oder? Ich kann doch alles, was ich mit PHP anstellen kann, auch mit Perl machen (wenn auch teilweise komplizierter), andersrum allerdings nicht.

        Und meistens wird doch sowohl CGI/Perl als auch PHP zusammmen angeboten. <-- ich meine jetzt bei Webspace-Providern ;)

        Bis dann...

        Alexander :)

        1. Kurze Frage zwischendurch: Also wäre es doch eigentlich klüger, Perl als PHP zu lernen, oder? Ich kann doch alles, was ich mit PHP anstellen kann, auch mit Perl machen (wenn auch teilweise komplizierter), andersrum allerdings nicht.

          Perl's Programmstruktur ist schon etwas seltsam verglichen mit den üblichen Programmiersprachen wie Basic, C oder Pascal. Außerdem spielen in Perl die regulären Ausdrucke eine größere Rolle und sind sehr einfach angewandt, was Perl vor allem für Such- und Listen-Aufgaben zur Nummer 1 macht. PHP ist da normaler. ;) Insofern ist das Lernen von Perl dem Lernen von PHP durchaus vorzuziehen, weil man so (IMHO) mit einer etwas anderen Programmierumgebung in Kontakt kommt. Wer irgendeine normale Sprache kann, und auch Perl, der kann dann ohne Probleme auch PHP begreifen.

          Und meistens wird doch sowohl CGI/Perl als auch PHP zusammmen angeboten. <-- ich meine jetzt bei Webspace-Providern ;)

          CGI/Perl ist noch häufiger anzutreffen als PHP, und es macht IMHO nicht unbedingt Sinn, beides gleichzeitig zu verwenden, es sei denn, man sammelt nur irgendwelche Module zusammen und findet einmal eine Lösung für PHP, ein anderesmal nur für Perl. Wenn die Anbieter beides haben, dann eigentlich nur, um dem Kunden die Freiheit zu lassen, das zu benutzen, was er kann, oder was gerade gut paßt.

          - Sven Rautenberg

          1. Hallo

            Spricht denn wenigstens die Performance für PHP, d.h. wird PHP-Code
            schneller/effektiver in HTML umgesetzt als bei Perl?

            Könnt ja sein, dass der PHP-Code sich gerade wg. seiner Spezialisierung
            gut vorkompilieren ließe (ähnlich wie bei JSP und Java Servlets) oder
            die Webserver eine permanente PHP-Engine haben, die das Starten eines
            eigenen Prozesses pro Request wie bei CGIs erübrigt.

            Ich frag mal so doof weil ich mir einfach nicht vorstellen kann wieso
            jmd der schon die breiten Möglichkeiten von Perl angeeignet hat sich
            auf eine zusätzliche Spezialsprache einlassen soll.

            Viele Grüße
            Rolf

            1. Joho,

              Spricht denn wenigstens die Performance für PHP, d.h. wird PHP-Code
              schneller/effektiver in HTML umgesetzt als bei Perl?

              Jain.

              Könnt ja sein, dass der PHP-Code sich gerade wg. seiner Spezialisierung
              gut vorkompilieren ließe (ähnlich wie bei JSP und Java Servlets) oder
              die Webserver eine permanente PHP-Engine haben, die das Starten eines
              eigenen Prozesses pro Request wie bei CGIs erübrigt.

              So aehnlich ;-)
              Solange man kein mod_perl verwendet (wie es leider ueblich ist), ist PHP mit seinem mod_php
              (wie es ueblich ist) ziemlich ueberlegen von der Geschwindigkeit her. Allerdings CGI-PHP und
              CGI-Perl und mod_php und mod_perl sind ungefaehr gleichschnell.

              Ich frag mal so doof weil ich mir einfach nicht vorstellen kann wieso
              jmd der schon die breiten Möglichkeiten von Perl angeeignet hat sich
              auf eine zusätzliche Spezialsprache einlassen soll.

              Warum nicht?
              Es erweitert den Horizont und macht sich gut auf einem Lebenslauf ;-)
              Ausserdem ist es immer gut, Alternativen zu haben. Und mal so ganz generell: Wissen ist Macht.

              Gruss,
               CK

              1. Hi Christian

                Solange man kein mod_perl verwendet (wie es leider ueblich ist), ist PHP mit seinem mod_php
                (wie es ueblich ist) ziemlich ueberlegen von der Geschwindigkeit her. Allerdings CGI-PHP und
                CGI-Perl und mod_php und mod_perl sind ungefaehr gleichschnell.

                wie schlägt sich mod_perl im vergleich zu tomcat/JSP ?

                Ich frag mal so doof weil ich mir einfach nicht vorstellen kann wieso
                jmd der schon die breiten Möglichkeiten von Perl angeeignet hat sich
                auf eine zusätzliche Spezialsprache einlassen soll.
                Warum nicht?
                Es erweitert den Horizont und macht sich gut auf einem Lebenslauf ;-)
                Ausserdem ist es immer gut, Alternativen zu haben. Und mal so ganz generell: Wissen ist Macht.

                Logisch, Cobol macht sich auch gut im Lebenslauf ;)
                (Hast recht PHP werd ich mir auch ins CV schreiben)

                Wenn man anfängt innerhalb eines Projektes verschiedene
                Technologien/Philosophien zu mischen kommt man schnell in
                Deibels Küche. Ich hab das Gefühl mit Perl viel flexibler
                auf neue anforderungen reagieren zu können.

                Mal was anderes ...
                ...gibt es einen Standard um templates mit eingebetteten
                perlcode zu basteln, oder flickt sich jeder dafür seinen
                eigenen Parser/Syntax zusammen?

                Oder zieht es die Mehrheit sogar vor Seitenweise "println"
                hintereinander zuschreiben statt templates zu nutzen?

                Viele Grüße
                Rolf

      2. Moin!

        Was sind nun die Argumente für PHP?
        Im Prinzip geht mit jeder Programmiersprache, was man auch mit Perl machen kann.
        jein. Einige Sachen gehen zwar, aber sehr umstaendlich. Einige Sachen gehen gar nicht.

        Genauso isses auch andersrum. OOP in Perl ist z.B. eine Zumutung, wenn man den Komfort von anderen Sprachen gewohnt ist...

        Ciao!
        Buggi

        1. Joho,

          Genauso isses auch andersrum. OOP in Perl ist z.B. eine Zumutung, wenn man den Komfort
          von anderen Sprachen gewohnt ist...

          Warum?
          Pro Klasse eine eigene File ist doch in Java genau dasselbe. Und die OO-Engine von PHP
          ist genau so kagge wie die von Perl.

          Gruss,
           CK
           http://wwwtech.de

      3. Huhu!

        Einige Sachen gehen gar nicht.

        z.B.? *g*

        PHP schreibt mir an einigen Stellen vor, wie mein HTML-Code auszusehen hat.

        an welchen Stellen bitte???

        MfG Olli

        1. Joho,

          PHP schreibt mir an einigen Stellen vor, wie mein HTML-Code auszusehen hat.
          an welchen Stellen bitte???

          <input type="text" name="array[]">
          <input type="text" name="array[]">

          Gruss,
           CK
           http://wwwtech.de

          1. Moin

            <input type="text" name="array[]">
            <input type="text" name="array[]">

            Es hält dich niemand davon ab,
             <input type="text" name="keinarray<?php echo $i++;?>">
            zu benutzen.

            --
            Henryk Plötz
            Grüße von der Ostsee

            1. Joho,

              <input type="text" name="array[]">
              <input type="text" name="array[]">

              Es hält dich niemand davon ab,
              <input type="text" name="keinarray<?php echo $i++;?>">
              zu benutzen.

              In Perl wird das aber automatisch erkannt ;-)

              Gruss,
               CK
               http://wwwtech.de

              1. Joho,

                <input type="text" name="array[]">
                <input type="text" name="array[]">

                Es hält dich niemand davon ab,
                <input type="text" name="keinarray<?php echo $i++;?>">
                zu benutzen.

                In Perl wird das aber automatisch erkannt ;-)

                Du willst dich jetzt aber nicht wirklich wegen 2 zeichen beschweren ? ([]) Mal davon abgesehen das es lesbarer ist :)

                BTW: Ich sag nix dazu ob PHP besser als PERL ist, die frage ist irelevant, die frage sollte lauten: Mit was kann ich große application schnell, übersichtlich und einfach bauen. Und die möglcihen antworten bestehen nicht nur aus php und perl, sondern aus:
                <>PHP
                <>Perl
                <>Java
                <>C/C++
                <>Python
                <>Shell-Skripte
                <>Sonstiges CGI
                <>..............

                *kein ansrpuch auf vollständigkeit

                Ludwig

              2. Moin

                In Perl wird das aber automatisch erkannt ;-)

                Du willst mir damit sagen, dass mir Perl vorschreibt was ein Array zu sein hat und was nicht?

                <beispiel class="nichtsehrweithergeholt">

                Wenn ich nun eine dynamische Seite programmiere, die mir etwa etwas aus einer Datenbank holt und mich dann die Einträge ändern lässt, dann produziert in Perl etwas wie

                for(@Eintraege) print "<input type="text" name="entries" value="$_">";

                manchmal ein Array und manchmal nicht, während der entsprechende PHP-Code

                while($tmp=each($Eintraege)) echo "<input type="text" name="entries[]" value="$tmp">";

                verlässlich Arrays produziert.

                </beispiel>

                --
                Henryk Plötz

                1. Moin,

                  In Perl wird das aber automatisch erkannt ;-)

                  Du willst mir damit sagen, dass mir Perl vorschreibt was ein Array zu sein hat und was nicht?

                  natuerlich nicht.
                  Ist das so schwer zu verstehen? Es ist in Perl *egal* wie das Feld heisst. Wenn ich ein Array haben will, weiss ich das, da muss ich mich nicht drauf verlassen (*muessen*), dass die Namen richtig vom Client ueberliefert werden (Sicherheitsluecke !)

                  <beispiel class="nichtsehrweithergeholt">

                  Wenn ich nun eine dynamische Seite programmiere, die mir etwa etwas aus einer Datenbank holt und mich dann die Einträge ändern lässt, dann produziert in Perl etwas wie
                  for(@Eintraege) print "<input type="text" name="entries" value="$_">";

                  grusel, was fuer ein Code *g*

                  print qq[<input type="text" name="entries" value="$_">]
                    for (@Eintraege);

                  manchmal ein Array und manchmal nicht, während der entsprechende PHP-Code [...]
                  verlässlich Arrays produziert.

                  das Array wird an genau der Stelle produziert, wo es gebraucht wird, naemlich im Programm (und zwar verlaesslich). Nicht frueher:

                  use CGI qw/param/;
                  my @entries = param('entries');
                  #  ^^ hier wird entschieden: ja, ich will ein Array

                  (

                  #  perldoc -f wantarray
                  #   view-source: CGI.pm

                  ;-)

                  </beispiel>

                  schlecht gewaehlt ;)

                  Viele Gruesse,

                  n.d.p.

          2. Huhu Christian ;)

            an welchen Stellen bitte???
            <input type="text" name="array[]">
            <input type="text" name="array[]">

            M.E. nach kein Argument. Wenn ich die ganze Zeit mit PHP entwickle, kann ich genauso sagen "Ih, Perl zwingt mich dazu meine HTML Dateien zu aendern". Das mit der Uebersichtlichkeit (siehe Posting von Henryk) sehe ich genauso. Ich erkenne sofort, dass das resultierende ein Array ist. Aber das ist wie so vieles Ansichtssache ;)
            MfG Olli

    2. Hi Sven,

      Templates zu basteln in denen Perlcode im HTML eingebettet ist,
      die anschließend evaluiert werden ist mit RegExp doch kein Problem.
      (Hab ich auch schon erfolgreich gemacht)

      Bin sicher es gibt dafür auch ausgefeilte Module.

      Was sind nun die Argumente für PHP?

      Im Prinzip geht mit jeder Programmiersprache, was man auch mit Perl machen kann. Die Vorteile von PHP gegenüber Perl sind die bedeutend bessere Einbindung in HTML und ein sehr reichhaltiger, nützlicher Befehlssatz. Ich würde behaupten, daß PHP wirklich auf HTML spezialisiert ist, während Perl eine eher allgemeine Sprache ist, die _auch_ als CGI genutzt werden kann.

      Ich zerbrech mir jetzt seit Tagen den Kopf wie du dass mit dem evaluieren
      in C umsetzen willst ;)

      Man könnte natürlich einen Precompiler programmieren der dann JSP-Syntax
      (respektive dann CSP) in C-Code umsetzt und dann kompiliert.

      Klar kann man alles in jeder Sprache machen (DukeNukem in Cobol rules ;-),
      die Betonung liegt aber auf "ist mit Perl kein Problem", im Falle Perl
      braucht man nur nen 4-Zeiler um templates zu parsen und eingebettete scriptlets
      zu evaluieren.

      Aber gut die Message kam rüber, PHP ist eine auf HTML spezialisierte
      Anfängersprache!

      Viele Grüße ;)
      Rolf