Crizzo schrieb:
Ne, so war es nicht gemeint. PHP hat viele Vorteile und viele Nachteile oder Fallstricke zu bieten, die nicht so toll sind. Aber eher solch eine News oder eine Sicherheitslücke in einem PHP-Modul/-Programm als Aufhänger zu nutzen die Sprache generell als unnötig, veraltet, bla etc. abzustempeln ist eben mMn nicht angebracht.
Kann man so sehen. Und wer so ne Diskussion nicht haben will, muss sich ja auch nicht daran beteiligen. Ganz einfache Sache.
Crizzo schrieb:
Das kannst du halt quasi mit der jeder Script- und Programmiersprache machen. Wenn man halt die Vorteile Verfügbarkeit, Einsteigerfreundlichkeit oder analog irgendwas anderes, streicht, plötzlich bleiben weniger Vorteile übrig. Ach was?!
Ich bezog mich bei der Kritik explizit auf Spracheigenschaften.
Crizzo schrieb:
Wenn sich die ganzen, evtl. besseren, Alternativen nicht durchsetzen, dann sind die vielleicht doch nicht soooo geil, dass alle Welt daraufspringt
In der Tat ist es immer wieder erstaunlich, warum sich so oft eigentlich eher suboptimale Lösungen durchsetzen.
Ging es um rein konzeptionelle oder technische Aspekte, wären Sprachen wie Javascript oder PHP sicherlich nicht so weit vorne.
Ein Punkt hab ich ja bereits genannt. Nämlich das man relativ schnell sichtbare Ergebnisse produzieren kann. Ähnliches galt/gilt ja z.B: auch für ähnliche Sprachen wie Visual Basic, VBA etc. Wenn man so will ist PHP das Visual Basic des Web. :-)
Das Problem dabei ist, dass es häufig Lösungen a-la "It works for me" produziert. Also unsaubere Lösungen die einem auch mal schnell um die Ohren fliegen können. Das klassische Beispiel ist so das verarbeiten von Eingaben via ''eval()''. Eine simple Lösung mit der man sehr schnell seien Ziele erreichen kann, aber halt auch schnell große Sicherheitslöcher produziert.
Andere Sprachen (selbst Skriptsprachen) versuchen dem Problem zu begegnen. Beispielsweise Ruby hat ein eingebauten Sicherheitsmechanismus, der verhindert, dass man externe Eingaben direkt so verwendet, wie sie sind. Das heißt, man ist mehr oder weniger gezwungen sie erstmal zu behandeln (überprüfen etc.), bevor man sie wirklich nutzbringend verwenden kann.
Das bewahrt einem nicht davor Unsinn zu machen. Aber solche Sachen lenken die Entwicklung in eine andere Richtung.
PHP tendiert dazu, dass das Sachen (scheinbar) möglichst schnell funktionieren. Der Programmierer muss im Gegenzug selbst darauf achten, mögliche Probleme und Sicherheitslücken zu vermeiden.
Bei Ruby/Rails ist das umgekehrt. Der Fokus liegt darauf, es sicher zu machen. Um den Preis das hingeschriebene Lösungen nicht sofort funktionieren. Wenn also etwas potentiell ein Sicherheitsproblem darstellt klappt es nicht. Der Programmierer wird also eher davor beschützt, unbeabsichtigt Fehler zu machen.
Übrigens nehmen sich ja neue Sprachversionen oder Frameworks den Schwächen von PHP durchaus an, indem sie beispielsweise Sachen aus anderen Sprachen übernehmen.
Was man ja als Eingeständnis dafür werten kann, dass das bisherige Sprachdesign ja doch nicht so toll war. Leider ist dieses nachträgliche einfügen von teilweise grundlegenden Features nicht so gut. Denn am Ende hast Du ein wildes Durcheinander und die Sprache selbst folgt keinen klaren Konzept mehr, was wiederum die Benutzbarkeit erschwert und neue Probleme erzeugt.
Facebook betreibt ja auch immensen Aufwand, um sein PHP-Code geradezuziehen und PHP-Probleme zu lösen.
Man denke nur an
HipHop, einen PHP-to-C++-Compiler um die Geschwindigkeit in den Griff zu kriegen. Oder die von Facebook entwickelte Sprache
Hack, die PHP um z.B: statische Typisierung u.v.m. ergänzt.
Oder auch die Investitionen von Facebook in Sprachen wie
Haskell.
Solchen Aufwand würde man sicher nicht betreiben, wenn PHP so großartig wäre. Aber auch ein schönes Beispiel dafür, was passiert, wenn man sein Projekt nicht von Anfang an auf eine solide Basis stellt. Wobei Facebook noch das Glück hat das nötige "Kleingeld" zu haben, um solche massiven Umbauten stemmen zu können.
Crizzo schrieb:
oder die Sache braucht mehr Zeit.
Jain. Kurzfristig betrachtet hast Du Recht. Schnell irgendne Lösung hinfrickeln geht in PHP gut.
Langfristig betrachtet (so behaupte ich mal), braucht man bei PHP eher mehr Zeit um ein qualitatives Produkt zu erstellen und zu warten.
Crizzo schrieb:
Von daher chillt mal, PHP hat seine Daseinsberechtigung und Funktionilität seit Jahren bewiesen
Es würde ja auch niemand ersthaft behaupten, dass PHP komplett unnütz ist oder keine Erfolge vorweisen kann. Die Frage ist eher, ob es immer das richtige Tool ist. Und oftmals wird sich auch nicht wirklich darüber Gedanken gemacht.
Das fällt mir auch immer wieder bei Neulingen auf, die wie selbstverständlich davon ausgehen, dass man für (serverseitige) Webprogrammierung PHP und MySQL braucht. Die haben gar nicht im Blick, dass es auch andere Möglichkeiten gibt. Und nicht selten ist ja PHP auch einfach nur "gut genug".