Hallo,
Ich habe Dich ja sogar gefragt, wie Felix Problem denn anderweitig lösbar gewesen wäre, aber JS kennt ja assioziative Arrays nicht sondern nur Objekte, die ja (angegeblich) keine Reihenfolge haben. Insofern kapiere ich Deine Argumentation nicht.
Ich habe über Closures in PHP geredet, dann kamst du mit JavaScript. JavaScript ist eine andere Geschichte, und ich habe mich nicht umfassend dazu geäußert. Wie auch immer man das Problem in JavaScript nun löst, es ist sehr einfach mit Bordmitteln zu lösen. Ich muss kein Pattern anwenden, das sonst unüblich ist oder aus dem Rahmen fällt. Higher-Order-Functions sind in JavaScript täglich Brot.
Das Auflisten einiger Mängel - das habe ich ja auch geschrieben - macht aus einer Sprache keine "Scheißsprache".
Es gibt Mängel und es gibt einen grundlegend verwirrenden und beschränkenden Aufbau.
Das kennst Du doch zu genüge von Javascript.
Nein. JavaScript macht vieles falsch, das wurde übrigens von JavaScript-Anhängern dokumentiert. Aber in seinen Grundlagen sehr viel richtig. Es ist möglich, gute Bücher wie z.B. Eloquent JavaScript als generelle Einführung in die funktionale und objektorientierte Programmierung zu schreiben, weil die Sprache so expressiv ist.
Da gibts ganze Vorträge die zum Heulen oder Lachen sind, was für ein Unfug Javascript verzapft in seinen Vergleichen, Objekten (NULL etc.) und ähnlich. Da kann man nur den Kopf schütteln, wenn man nicht weiß, dass JS (wie eigentlich vermutlich alle sprachen) seine good _und_ bad parts hat.
Ja, diese rein phänomenologischen Vorträge kann man sich allesamt sparen, denn informativ sind sie nicht. Diese Leute verstehen in der Regel JavaScript nicht, lesen Spezifikationen nicht und erkennen Logiken nicht. Ganz im Gegensatz zur informierten und grundlegenderen Kritik, die z.B. Crockford in »JavaScript – The Good Parts« äußert, die Autoren wie Axel Rauschmayer und Marijn Haverbeke äußern.
Die eigentliche Erkenntnis ist doch, dass jede Sprache (nur) in bestimmten Zusammenhängen ihren Sinn macht.
Das wäre keine nützliche Erkenntnis. Zu sagen, dass PHP nur in bestimmten Zusammenhängen Sinn macht, ist Quatsch, weil PHP ubiquitär, immer noch erste Wahl für ein Gros der serverseitigen Webprogrammierung ist und die meiste Websoftware PHP erfordert (CMS, Blogsofware, Foren…).
Die Erkenntnis sollte sein, eine Programmierumgebung zu wählen, die mehr richtig macht als falsch, die einem Komfort und Sicherheit bietet, die Grundlagen von Variablen, Werten, Objekten, Funktionen, Scopes, Klassen und Namensräumen korrekt hinbekommt sowie Metaprogrammierung und funktionale Programmierung erlaubt.
Fragt man sich ja, warum sich so viele schlaue Leute so eine Mühe machen, solche ausgefeilten Frameworks (weiter) zu entwickeln, bei einer Sprache, die so ... ach was weiß ich wie sie deiner Meinung nach sein soll, mir ist das Verständnis für Ironie grade abhanden gekommen.
Dass hochintelligente, Informatik-geschulte Menschen mit PHP ein komplexes Framework bauen können, ist nicht die Frage und sagt auch nichts über etwaige Probleme der Sprache aus. Dass große Anwendungen in PHP geschrieben werden und bis zu einem gewissen Punkt funktionieren, steht auch außer Frage. Jetzt lies noch mal, was ich eigentlich geschrieben habe.
Grüße
Mathias