# Perl vs. PHP - warum Perl?



## DataFox (6. Dezember 2007)

Hallo

wir haben gerade darüber diskutiert wieso neben PHP manchmal noch Perl eingesetzt wird. Unter uns ist aber kein wirklicher Perl-Experte, daher will ich einfach mal in die Runde fragen... welche wesentlichen Unterschiede gibt es, die im vergleich zu PHP für bzw. gegen Perl sprechen?

thx
Laura


----------



## renee (8. Dezember 2007)

Gegen Perl: 
* Es gibt viele Webhoster, die kein Perl mehr anbieten
* Für Skript-Kiddies sehr leicht lernbar
* großer Hype
* Bessere OO (jedenfalls PHP5)
* TIMTOWTDI (There is more than one way to do it)
* Kontextsensitiv

Für Perl:
* Es ist vielseitiger (GUI, Systemadministration, Webentwicklung)
* Namespaces
* Mächtigkeit
* CPAN
* TIMTOWTDI
* Kontextsensitiv
* Einzeiler
* Sicherheit der Sprache (aber auch mit so einer Sprache können unsichere Programme geschrieben werden - je nach Programmierer)
* ...

Man sollte sich erst in die Programmiersprachen einarbeiten, bevor man sich für eine entscheidet...

Ich persönlich setze viel lieber Perl ein, weil Perl auch ein wenig Lebenseinstellung ist. Und dank CPAN kann ich viele Sachen in wenige Zeilen (aber dennoch gut lesbar) lösen.

Häufig hört man, dass Perl "tot" sei, stimmt nicht. Die aktive Entwicklung geht weiter und Perl 5.10 steht kurz bevor. Und dass Perl "unlesbar" ist stimmt nur zum Teil. Was häufig als "unlesbar" bezeichnet wird, sind die Regulären Ausdrücke und die sind in vielen Sprachen ähnlich, während es z.B. in Java noch viel hässlicher ist als in Perl (oder PHP), da dort die "\" auch noch escaped werden müssen.

Ein guter Programmierer programmiert in (fast) jeder Programmiersprache gut, während ein Anfänger in jeder Sprache Sch*** bauen kann. Dadurch Perl extrem mächtig ist, wird es den Anfängern relativ leicht gemacht, sich auch mal ins Knie zu schießen. Wer aber die Mächtigkeit einsetzen kann, lernt sie zu lieben.


----------



## Aqutes (30. Dezember 2007)

ich kann den vorredner nur zustimmen, ich habe bereits seit jahren PERL im einsatz
aber im endeffekt ist es eine programmiersprache, die man einmal erlernt hat und sich selber   weiterentwickelt hat und somit auch viel wissen angeeignet hat. Darum kommt es auch immer zu diverse streitigkeiten, welche programmiersprache ist nun die beste.

Was ich mittlerweile mehr und mehr feststellen musste ist, dass viele webhoster gar kein PERL mehr installiert haben, bzw wenige zusatz module anbieten. Das ist sicher bei PHP angenehmer für den HOSTER, einmal installiert braucht er sich nicht über die zusätzlichen Funktionen zu kümmern da sie bereits bestandteil sind.

Ich persönlich hatte zuvor nie PHP programmiert, deshalb werde ich es mit sicherheit einmal antesten um nicht völlig die gegenwart zu verschlafen.

Fakt ist, dass man mit PERL und PHP die gleichen Programme schreiben kann, umständlich als auch funktionell und gut leserlich.

Kurzer denkanstoss:
PHP ist eine reine webbasierende programmiersprache, die in den jahren viel dazugelernt hat.
PERL kann hingegen auch anderwertig genutzt werden.

Aber webn man will kann man auch in C# weblösungen schreiben 

Hier noch zwei Artikel
http://www.infos24.de/phpe/handbuch/1_php_unterschied_zu_perl.htm
http://www.inspire-world.de/board/showthread.php?t=682


----------



## DataFox (30. Dezember 2007)

Ich danke Euch für die Antworten  

Ich persönlich bevorzuge PHP - aber vermutlich auch nur deshalb, weil ich es besser kann als Perl.

Gruß
Laura


----------



## Aqutes (30. Dezember 2007)

so ist es, man versucht doch immer jenes zu machen, dass man besser kann 

ich hab mich eben ein wenig eingelesen mit PHP-Templates
PHP ist ja eigendlich dafür geschrieben, bzw hauptaugenmerk Programmcode und Design in einer Datei zu verbinden. Zumindest kommt mir das so vor.
und da ich hauptsächlich in PERL mit Templates arbeite + gearbeitet habe, musste ich mich gleich mal informieren, ob das bei PHP auch so komfortabel geht

aber die meisten unter uns, bleiben sowieso bei den alten gewohnheiten und das ist ja auch keine schande.

lg + guten rutsch
Daniel


----------



## Irgendjemand_1 (30. Dezember 2007)

Aqutes hat gesagt.:


> Fakt ist, dass man mit PERL und PHP die gleichen Programme schreiben kann, umständlich als auch funktionell und gut leserlich.


Naja, gut leserlich, darüber lässt sich streiten  Also die Syntax ist in beiden Fällen hässlich, aber okay, man kann es auch so schreiben, dass es übersichtlich ist. Wobei es in Perl sogar einen Wettbewerb gibt, wer den unleserlichsten Code schreiben kann. Soweit ich das in erinnerung hab  Und das ist dann WIRKLICH kein Stück mehr zu entziffern.



Aqutes hat gesagt.:


> Kurzer denkanstoss:
> PHP ist eine reine webbasierende programmiersprache, die in den jahren viel dazugelernt hat.
> PERL kann hingegen auch anderwertig genutzt werden.
> 
> Aber webn man will kann man auch in C# weblösungen schreiben


PHP kann man auch zweckentfremdet für GUIs etc benutzen. Theoretisch kannst du dir damit auch ein 3D-Game schreiben. Deshalb stimmt das nicht so ganz.
Und natürlich kannst du auch mit C# Websiten schreiben. Das geht mit ziemlich vielen Programmiersprachen. Ich behaupte sogar, dass es mit vielen Sprachen besser geht als mit Perl oder PHP.


----------



## Aqutes (30. Dezember 2007)

na wie gesagt ich bin ein reiner neuling in sachen PHP und hab bis jetzt nur gelesen, dass dies eine reine webbasierende scriptsprache ist.

hehe wettbewerb, find ich mal witzig 
ich glaub ich würd ganz weit hinten landen, ich kann erst gar nicht einen ununununleserlichen code schreiben, das ist gegen meine natur, haha

Leserlichkeit einer Sprache = Objektorientiertes Programmieren
aber ja ich hab auch schon C / Perl / Java / etc. Programme geschrieben und auf die lesbarkeit aus faulheit verzichtet 


Ob andere Programmiersprachen besser/einfacher zu handhaben sind als PERL oder PHP, sei mal dahingestellt. Die beiden Sprachen machen nichts anderes, als funktionen für ein gebiet bereitzustellen, das ist bei diesen beiden das WEB.

In wirklichkeit ist das sowieso überflüssig, da es sich um eine reine EIN und AUSGABE handelt und dazu ist jede sprache geeignet.

also DataFox wie du siehst, ist es föllig egal und wenn dir, wie schon geschrieben, php leichter fällt, dann ist's auch gut


----------



## R00Ki3 (30. Dezember 2007)

Für Personen die vor PERL erfahrung mit PHP5 gesammelt haben, wird PHP5 für Webanwendungen wohl vorteilhafter sein.

Ich selbst habe erst PERL dann PHP programmiert.
PERL's vorteil liegt wohl in Regulärenausdrücken und den verschiedenen GUI formen.
Aufgrund der verschiedenen GUI's wird Perl auch in anderen Bereichen eingesetzt als nur Webanwendungen...

Ansonsten gleicht PHP die aufgelisteten Vorteile von CPAN usw... wohl mit PEAR, ZEND usw. aus.


----------



## renee (30. Dezember 2007)

Aqutes hat gesagt.:


> Ob andere Programmiersprachen besser/einfacher zu handhaben sind als PERL oder PHP, sei mal dahingestellt. Die beiden Sprachen machen nichts anderes, als funktionen für ein gebiet bereitzustellen, das ist bei diesen beiden das WEB.


Nope... Perl wurde am Anfang entwickelt um Systemadmin-Aufgaben usw. zu erleichtern. Da war noch nix mit Web! Perl bietet auch keine Built-In-Funktionen wie die Ausgabe des Headers oder Parsen der Request-Informationen. Dafür gibt es dann die Module (CGI.pm,...)



Aqutes hat gesagt.:


> also DataFox wie du siehst, ist es völlig egal und wenn dir, wie schon geschrieben, php leichter fällt, dann ist's auch gut



Völlig egal vielleicht nicht, da es immer auch darauf ankommt, *was* man am Ende machen will. Aber wenn Dir PHP besser liegt, dann ist es ok...


----------



## renee (30. Dezember 2007)

R00Ki3 hat gesagt.:


> [...]
> Ansonsten gleicht PHP die aufgelisteten Vorteile von CPAN usw... wohl mit PEAR, ZEND usw. aus.



Naja, das wage ich ehrlich gesagt noch zu bezweifeln. CPAN bietet für nahezu alles ein Modul, was es in PEAR etc (noch) nicht gibt. Das entwickelt sich erst so richtig... Aber ob man die Vielfalt von CPAN braucht, hängt wiederum davon ab, *was* man machen will (und wie einfach man es sich machen will).


----------



## Irgendjemand_1 (30. Dezember 2007)

Naja ich bin nur der Meinung, dass man auf PHP eigentlich verzichten könnte. Über Perl weiß ich jetzt leider nicht viel, daher lasse ich das mal weg.
PHP ist sogut wie nur für Webentwicklung zu gebrauchen. Hat eine hässliche Syntax. Hat keinen Vorteil gegenüber anderen Sprachen, nichtmal den der angeblichen Einfachheit der Sprache. Was ist daran Einfach, wenn man

```
while ( $row = mysql_fetch_array($result) )
```
 etc schreiben muss?
Oder immer dieses versteckt Objektorientierte. Eigentlich ist mysql_fetch_array eine Methode von $result, mysql_select_db eine von $link und so weiter.
Was ist daran einfach, wenn ich extra ne eigene Datenbankklasse o.Ä brauche, damit ich gescheit mit MySQL-Datenbanken arbeiten kann? (siehe SQL injection)
Was ist daran einfach, dass man als Anfänger mit 10.000 Fehlerquellen für Sicherheitslücken bombadiert wird, die man am Anfang noch gar nicht nachvollziehen kann? Welcher Anfänger weiß schon was SQL Injections sind, oder ahnt was davon, dass man seine Variablen generell irgendwie manipulieren kann? 
Oder wenn man dauernd nachschauen muss, wie eine bestimmte Funktion heißt, weil sogar die Namensgebung inkonsequent ist?
Außerdem, welcher Anfänger versteht schon den Sinn von while ($row = mysql_fetch_array($result))? Ich hab mir das Anfangs immer abkopiert bis ichs mir irgendwann mal gemerkt hatte. Wenn's einfach wäre, hätte ich das auch verstanden und dann hätte ich's mir gar nicht 1000 mal kopieren müssen, bis ich's mal im Kopf hatte.
Ist das einfach?
Zugegeben, man muss sich kein deut darum kümmern, mit was für einem Datentyp man gerade arbeitet, etc, aber macht es das wirklich besser?
Mit PHP kann man genauso gute und sichere Webanwendungen schreiben wir mit anderen Sprachen, aber in meinen Augen ist es nicht gerechtfertigt zu sagen PHP wäre da einfacher oder so. Also halte ich die Sprache fast für überflüssig. Auch wenn's meine erste Sprache war und ich sie mittlerweile ziemlich gut kann 
Das einzige was noch für PHP spricht ist die hervorragende Doku 

Ich will nicht weiter auf PHP rumhacken, es hat ja auch durchaus seine guten Seiten 
Aber ihr glaubt ja nicht, wie viele in PHP geschriebene Seiten man durch SQL-Injections oder sonstigem "hacken" kann. Da habt ihr dann eure Einfachheit


----------



## Culebra (3. Januar 2008)

Python! Python! Python!


----------



## Spaghetto (13. Oktober 2009)

ich mag objekt orientierte COBOL: ADD 1 TO COBOL...


----------



## dbl (30. Juni 2010)

PHP stößt schnell an seine Grenzen. 
Wenn man OOP Programmiert und z.B. auf das Zend-Framework zurückgreift, dann sind da ruckzuck 6-8 MB nur für 
den Bootvorgang bis zum Dispatchvorgang weggefressen.
Im Gegensatz zum CPAN gibt es in der etwas verwaisten PECL Variante weniger Auswahl an Bibliotheken auf die
man zurückgreifen kann - was letzten Endes und in Anbetracht der Resourcen die Verwendbarkeit von PHP sehr.
auf den Zweck für den es entwickelt wurde einschränkt und darüber hinaus diesen auch mal nicht zufriedenstellend 
erledigen kann. Man denke hierbei nur an die oft erreichte Speichergrenze die z.B. aufgrund fehlender Garbage-Collection
immer wieder erreicht wird.

Das Objektorientierte Konzept in Perl, um auch größere Projekte noch weiter verwendbar zu machen, ist meiner Meinung nach 
nicht empfehlenswert. Hier könnte man sich jetzt die Frage stellen ob man auf Objektorientierung zurückgreifen will und dafür, 
nur mal z.B., Ruby in Frage käme.

Ich liebe PHP, seine Syntax und seine leichte Handhabe. Wer schnell Tippen kann und sich mit den gängisten 
Konzepten versteht kann es effektiv und vor allem SEHR VIEL SCHNELLER als Perl einsetzen.
Teammitglieder können sich schneller in bestehende und neue Programme einarbeiten und die Entwicklungskosten
können bei gleichem Nutzen erheblich reduziert werden.

In Sachen Zukunftssicherheit würde ich aber nicht auf PHP setzen, es gibt keine integrierte Kompatibilität
zu Vorgängerversionen was seit der Version 4 Migrationen erschwert. Das gilt nun auch für das kommende PHP 6.
Wenn man Objektorientiert programmiert und die ein oder ander Migration hinter sich bringen kann, dann kann
man seine vorhandenen Programme nicht nur mehrfach verwenden sondern auch auf Änderungen in der "realen Welt",
eben die Anpassung des Programms an aktuelle Begebenheiten, schnell reagieren.

Das sind die Gründe die mir einfallen.


----------

