Perl oder PHP oder doch besser was anderes?

Ich sitze gerade über meinem 2ten Perlbuch und surfe durchs internet… dabei finde ich 100 seiten die dynamisch durch PHP3/4 erzeugt werden… und nu 2 die mal ein CGI script nutzen…
is es zur Zeit ein modegag PHP zu nutzen oder is da was dran?
denn sonst steige ich lieber auf PHP um, vieleicht bringt einen das im beruf/ausbildung weiter?!
Hmm ich bin da überfragt und würde gerne etwas hilfestellung zu meiner entscheidung beantragen =)

PS: ich höre auch immer gerne was von anderen Programmiersprachen =)

MfG Steffen

hi,

Du gehörst eigentlich nach WWW-Programmierung, aber egal jetzt:

is es zur Zeit ein modegag PHP zu nutzen oder is da was dran?
denn sonst steige ich lieber auf PHP um, vieleicht bringt
einen das im beruf/ausbildung weiter?!

wichtig ist, dass Du was *kannst*, nicht ob das jetzt Perl oder PHP ist.

Schau Dir mal http://www.koehntopp.de/php/faq-3.html#ss3.2 (Wie vergleicht sich die Performance von PHP zu Perl?) an, vielleicht kann das ja einige Fragen beantworten.

a’letzte worte für zwei Wochen’l

Wenn du Perl kannst ist der Umstieg auf PHP eh ein Kinderspiel, die Syntax is zu 80% identisch. Als ich PHP entdeckte war ich halbwegs gut in Perl und hatte 0 Problemo schnell erste Ergebnisse zu erzielen.

mfg Bruno

Hi Steffen,

ehrlich gesagt kann ich den ganzen Hype um PHP nicht so wirklich verstehen. PHP ist sicherlich 'ne echt nette Sache, aber irgendwie hat mir noch niemand begründet erzählen können, warum es überhaupt nötig war eine ganz neue Sprache zu entwickeln.
Ich benutze zum Beispiel sehr gerne Python zur CGI-Erstellung. Die Sprache als solche bietet programmiertechnisch halt im Vergleich zu PHP schon einige nette Features mehr, so ist z. B. (einigermaßen) _ORDENTLICHES_ OOP möglich, Funktionen sind „Bürger erster Klasse“ (Lambda-Ausdrücke möglich), Überladung von Operatoren etc., das alles war zumindest bei PHP3 nicht möglich (ich hoffe mal, das hat sich mit PHP4 wenigstens ein bisschen gebessert).
Ausserdem gibt es wirklich ordentliche Python-Bibliotheken (z. B. CGI-Modul, Reguläre Ausdrücke…). Insbesondere gibt es einen Python Datenbak-API Standard (Version 2.0). Damit ist es (zumindest theoretisch) möglich, das zugrundeliegende DBMS durch Ersetzen einer einzigen Zeile zu wechseln. Ausserdem gibt es eine „pure python“-Bibliothek zum Erstellen von PDF Dateien (-> http://www.reportlab.com), die im Gegensatz zur PDFLib (-> u. a. bei PHP verwendet) Open-Source ist (und nebenbei auch objektorientiert).
Für Apache ist ein Python-Modul (www.modpython.org) vorhanden, hab ich aber unter Windwos nie zum Laufen gekriegt (lag aber sicher an mir :o).
Was halt ziemlich nervt (aber man gewöhnt sich daran) ist, dass bei einem Syntaxfehler im Browser garnichts zu sehen ist (man muss halt dann in einer Konsole „python .py“ starten, um herauszufinden, wo das Problem liegt).
Einen genaueren Blick ist Python auf jeden Fall wert -> http://www.python.org

Übrigens könnte ich mir vorstellen - hab’s leider nie richtig ausprobiert :o( - dass Funktionale Sprachen für CGI eigentlich prädestiniert sein sollten (wegen einfachem INPUT->[Blackbox]->OUTPUT-Prinzip). Leider fehlt es denen aber oft an entsprechenden Bibliotheken.

Das war also Lalas kleiner Kommentar zum Thema CGI/PHP.

Peace
Lala

<small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>

is es zur Zeit ein modegag PHP zu nutzen oder is da was dran?
denn sonst steige ich lieber auf PHP um, vieleicht bringt
einen das im beruf/ausbildung weiter?!

Der riesige Vorteil von PHP im Vergleich zu anderen CGI-Sprachen ist, dass in PHP die meisten (wenn nicht alle) bekannteren Datenbanken, die so verwendet werden von der Sprache direkt Unterstützung finden. In Perl gibt’s sicher ein Modul, dass das auch kann, aber erst mal finden. Die Dokumentation zu PHP ist knapp und verständlich, die ganze Sprache an sich ist sehr leicht zu erlernen (so ging’s zumindestens mir). Zudem gibt es in PHP keine solchen (IMHO komischen) Variablen wie $|. Vielleicht gibt’s in Perl sogar $:smile:. Das hat mich schon immer an Perl gestört, auch wenn man diese Variablen nicht benutzen muss (ausser vielleicht @_).

Die Nachteile von PHP (jetzt im Vergleich zu Perl) sind folgende:
Bis zur Version 3 war PHP nur interpretiert, es war also langsam, in der Version 4 wird jetzt PHP wie Perl auch vor der Ausführung kompiliert und optimiert. PHP unterstützt keine richtige OOP, das Überladen von Funktionen ist nicht möglich (Stichwort Polymorphie). PHP lässt sich im Gegensatz zu Perl auch mies (IMHO) debuggen. Da PHP sich so leicht erlernen lässt, macht zum Beispiel in unserem lokalen Intranet jeder (auch Ahnungslose) damit rum, und es gibt Bestrebungen PHP durch JAVA (das kann nicht gerade jeder auf Anhieb) zu ersetzen.

Sagen wir mal so:
Wenn Du Perl kannst, dann kannst Du auch PHP. Wenn Du PHP kannst, dann kannst Du noch lange nicht Perl.

Der Vorteil von PHP ist schlicht die simple Datenbankanbindung. Mehr nicht.

Jetzt muß ich doch auch noch mal was dazu sagen :

Die Performance-Nachteile von PHP haben sich seit Version 4
relativiert. PHP ist sicher einfacher zu erlernen und wird sich
daher mit Sicherheit als CGI-Script-Sprache durchsetzen und perl mit der Zeit verdrängen, auch wenn sich die Perl-Freaks unter euch beharrlich weigern das zu Akzeptieren. (Meine lieben Kollegen die dieses Website programmiert haben leider auch :wink:)
Trotzdem, welches die richtige Sprache für Dich ist entscheidet allein Dein Geschmack, probiers halt aus.
Ich empfinde als angenehm bei PHP, das ich den Quelltext direkt
in die Templates einsetzen kann, deshalb arbeite ich lieber mit
PHP.
Wenn Du mal beruflich in diese Richtung gehen willst mußt Du eh beides ein bischen können.
Wenn Du jedoch eine komplexe Anwendung fürs web programmierst,
ist meine persönliche Meinung, daß Sprachen wie Java die
Zukunft sind. Denn für Businesslösungen bieten sie einfach mehr. Sicherheitskonzepte, Schnittstellen zu beliebigen anderen Systemen,mehr Stabilität usw. usw.
Ich bin gespannt wie sich C# („sharp“ gelesen) ,die Neuentwicklung von Microsoft, positioniert, die wohl sehr in dieser Kategorie einzuordnen ist.

;-Dennis
„DerBrain“

Moin,

Übrigens könnte ich mir vorstellen - hab’s leider nie richtig
ausprobiert :o( - dass Funktionale Sprachen für CGI eigentlich
prädestiniert sein sollten (wegen einfachem
INPUT->[Blackbox]->OUTPUT-Prinzip). Leider fehlt es
denen aber oft an entsprechenden Bibliotheken.

Das gilt nur bei den einfachsten Seiten, eben bei den, die auch mit CGI-Skripten funktionieren. Schon eine persistente Session ist mit Servlets ungleich einfacher als mit Skripten.

Thorsten

Das ist so nicht ganz richtig. Sowohl php als auch perl können
direkt in Server wie den Apache einkompiliert werden.Und als diese Servermodule können sie nicht nur Persistenzen händeln, sondern bieten auch ein effektives Sessionmanagement.

;-Dennis
„DerBrain“

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moin,

INPUT->[Blackbox]->OUTPUT-Prinzip)
[darum funktionale Sprachen?]

Das gilt nur bei den einfachsten Seiten, eben bei den, die
auch mit CGI-Skripten funktionieren. Schon eine persistente
Session ist mit Servlets ungleich einfacher als mit Skripten.

Das ist so nicht ganz richtig.

Was genau? Ich rede wohlgemerkt von Skripten.

Thorsten

Die Schwierigkeit eine Persistenz zu erzeugen, begründet sich in
der Natur vom http, da in diesem Protokoll etwas derartiges nicht vorgesehen ist. Grundsätzlich ist es daher
weder leichter noch schwieriger ein Sessionmanagement in Perl/php gegenüber Java-Servlets zu etablieren.
Alle drei Sprachen bieten die Funktionalität Dir praktisch dieses
Management abzunehmen.
Wie Du an wer-weiss-wass siehst, lassen sich auch komplexe Anwendungen wunderbar mit Perl lösen.
Servlets sind nach meinem Empfinden eh als Frontenderweiterung
des EnterpriseSDK von Java zu verstehen. Eine wunderbare Sache in Kombination mit den EJBeans, aber alleine nicht wirklich
komfortabler als andere CGI-Lösungen.
Vergleicht man php4,perl5 als serverinterne Module mit
den JServlets erkennt man klare Performance-Nachteile von Java die in der Beschaffenheit der VirtualMashine begründet sind.
Erst wenn man sich über Dinge wie Sicherheit,Skalierbarkeit und/oder Schnittstellen zu anderen Applikationen machen muß,
ist es Sinnvoll sich mit Sprachen wie Java zu beschäftigen.
Gerade die EJBeans ermöglichen es einem dann schon auf viele bestehende Komponenten und Schnittstellen zurückzugreifen.
Letztlich ist es doch aber jedem selber überlassen, mit welcher Lösung er am besten klarkommt.
Die Vor- oder Nachteile werden meistens dadurch ausgeglichen.
;-Dennis
„DerBrain“

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moin,

INPUT->[Blackbox]->OUTPUT-Prinzip)
[darum funktionale Sprachen?]

Das gilt nur bei den einfachsten Seiten, eben bei den, die
auch mit CGI-Skripten funktionieren. Schon eine persistente
Session ist mit Servlets ungleich einfacher als mit Skripten.

Das ist so nicht ganz richtig.

Was genau? Ich rede wohlgemerkt von Skripten.

[snip]
Da bin ich völlig Deiner Meinung, ich rede aber von Skripten, von bash und so’m Zeugs.

Thorsten

Hi,

Der riesige Vorteil von PHP im Vergleich zu anderen
CGI-Sprachen […]

PHP ist keine CGI-Sprache, genau wie SSI. Es ist eine Inline-Sprache, die vom Server geparsed und ausgeführt wird, bevor er das Dokument zurückschickt.

Der Vorteil von PHP ist übrigens der, daß die Sprache für den Einsatz im Internet konzipiert wurde. Darum findet man häufig gebrauchte Funktionen wie DB-Anfragen, eMail-Versand, Parameterauswertung schon von Hause aus.

Cheatah

Moin,

INPUT->[Blackbox]->OUTPUT-Prinzip)
[darum funktionale Sprachen?]

Das gilt nur bei den einfachsten Seiten, eben bei den, die
auch mit CGI-Skripten funktionieren. Schon eine persistente
Session ist mit Servlets ungleich einfacher als mit Skripten.

Das ist so nicht ganz richtig.

Was genau? Ich rede wohlgemerkt von Skripten.

[snip]
Da bin ich völlig Deiner Meinung, ich rede aber von Skripten,
von bash und so’m Zeugs.

Ja, was denn sonst bei php/perl?
linux-bash? Ich glaub Du weißt nicht genau, wovon Du redest :wink:
;-Dennis
„DerBrain“

Moment mal
Hallo,

Der riesige Vorteil von PHP im Vergleich zu anderen
CGI-Sprachen ist,

PHP ist eine serverseitige Scriptsprache, Perl eine Scriptsprache, mit der man sehr schön CGIs Programmieren kann. Daher schon mal völlig unterschiedlicher Ansatz.

dass in PHP die meisten (wenn nicht alle)
bekannteren Datenbanken, die so verwendet werden von der
Sprache direkt Unterstützung finden. In Perl gibt’s sicher ein
Modul, dass das auch kann, aber erst mal finden.

DBI und das ist IMHO in der Standart Distri mit drin.

Die
Dokumentation zu PHP ist knapp und verständlich, die ganze
Sprache an sich ist sehr leicht zu erlernen (so ging’s
zumindestens mir).

Und Perl ist nicht leicht zu lernen ? Ist doch fast so leicht wie Basic…

Zudem gibt es in PHP keine solchen (IMHO
komischen) Variablen wie $|. Vielleicht gibt’s in Perl sogar
$:smile:. Das hat mich schon immer an Perl gestört, auch wenn man
diese Variablen nicht benutzen muss (ausser vielleicht @_).

Eben, die haben nämlich alle einen ausgeschriebenen Namen $_ = $ARG.

Da PHP sich so leicht erlernen
lässt, macht zum Beispiel in unserem lokalen Intranet jeder
(auch Ahnungslose) damit rum, und es gibt Bestrebungen PHP
durch JAVA (das kann nicht gerade jeder auf Anhieb) zu
ersetzen.

hmm… wie wäre es den Zugang zu den PHP Dateion zu beschränken statt die Sprache zu wechslen um Unfug zu verhindern ?

Sagen wir mal so:
Wenn Du Perl kannst, dann kannst Du auch PHP. Wenn Du PHP
kannst, dann kannst Du noch lange nicht Perl.

Na so einfach kann man es sich auch nicht machen… Aber ich würde schon auch sagen, dass es sich relativ leicht umsteigen lässt.

Gruß
Arne
Der übrigens beide Sprachen mag und je nach Aufgabe einsetzt.

Der Vorteil von PHP ist schlicht die simple
Datenbankanbindung. Mehr nicht.

Moin,

Das ist so nicht ganz richtig.

Was genau? Ich rede wohlgemerkt von Skripten.

[snip]
Da bin ich völlig Deiner Meinung, ich rede aber von Skripten,
von bash und so’m Zeugs.

Ja, was denn sonst bei php/perl?
linux-bash? Ich glaub Du weißt nicht genau, wovon Du redest

CGI wurde AFAIK zuerst mit Skripten, vor allem mit sh benutzt, aber auch wenn man bash, ksh etc. hinzunimmt, hat man es mit Persistenz schwer, darum wurde Perl dann ja entsprechend erweitert.

Thorsten

Hallo,

dass in PHP die meisten (wenn nicht alle)
bekannteren Datenbanken, die so verwendet werden von der
Sprache direkt Unterstützung finden. In Perl gibt’s sicher ein
Modul, dass das auch kann, aber erst mal finden.

DBI und das ist IMHO in der Standart Distri mit drin.

Die Standard Distro gibt’s ja gar nicht, hat man UNIX Server, hat man Windows Server, etc., aber einige nützliche Module sind schon üblicherweise auf „allen“ Web-Servern installiert, eben u.a. DBI und CGI.
Finden muss man es aber nicht selber, das macht der Perl Interpreter schon für uns:
use DBI;

Entweder er findet es, oder es gibt ne Fehlermeldung.

Und Perl ist nicht leicht zu lernen ? Ist doch fast so leicht
wie Basic…

Leider ist fast alle Doku auf englisch, auch die tollen teueren O’Reilly Bücher bei in der Buchhandlung. Wie das bei PHP ist weiss ich nicht.
auf jeden Fall ist in Perl vieles möglich, was ich mir damals bei BASIC (Commodore Basic 3.5 oder gar 2.0) immer gewünscht hätte.

Sagen wir mal so:
Wenn Du Perl kannst, dann kannst Du auch PHP. Wenn Du PHP
kannst, dann kannst Du noch lange nicht Perl.

Ist sehr pauschal gesagt, sowas wie „wenn du Französisch kannst, kannst Du auch Spanisch“. Oder Deutsch und Niederländisch (Dutch) - sehr ähnlich beim ersten Hinhören, aber wenn Du NL richtig lernst, fallen Dir erst die ganzen kleinen Besonderheiten auf.

Ingo

Hallo,

Leider ist fast alle Doku auf englisch, auch die tollen
teueren O’Reilly Bücher bei in der Buchhandlung. Wie das bei
PHP ist weiss ich nicht.

Stimmt so auch nicht. Die beiden Büchervon Larry Wall und Randal L. Schwartz sind z.B. auch auf dt. erhältlich. Sowie einige andere (Amazon listet beim Stichwort Perl 45 dt. Bücher). Bei PHP ist das (war vor 1/2 Jahr) noch etwas beschaulicher, da habe ich nur 3-4 Bücher gefunden. Wie das jetzt in Zeiten von PHP4 ist weiss ich nicht…

Gruß
Arne