1unitedpower: PHP: Vorerst keine Union-Types.

Beitrag lesen

PHP ist eine beliebte Allzweck-Skriptsprache, die vor allem für die Web-Entwicklung geeignet ist. Schnell, flexibel und pragmatisch

Das ist sowas wie eine Grundsatzerklärung welche die Ziele der PHP-Entwickler vorgegibt.

Und ein algebraisches Typsystem passt da deiner Meinung nach nicht hinein, wieso? Mal abgesehen von dem kompliziert anmutendem Namen.

Mag sein das "hack" ("hhvm") PHP in einigen Fragen "abhängt", aber überbordende Funktionserweiterungen sind so manchem EDV-Projekt nicht gut bekommen.

Die Befürchtung lässt sich leicht beilegen. Das Proposal enthielt keine Abwärtsinkompatibilitäten. Es hätte also niemanden daran gehindert, der das Feature nicht nutzen wollte, von PHP 7.0 auf 7.1 zu wechseln.

PHP ist zu dem eine sehr anwendernahe Sprache, es wird offensichtlich Wert auf einfache Nutzbarkeit gelegt, was man z.B. an den "password_*"-Funktionen gut sehen kann.

Da passen algebraische Datentypen doch perfekt hinein. Die zusätzlichen Typannotationen hätten Code-Editoren eine neue Werkzeug-Palette ermöglicht, die beim Aufspüren von Fehlern, beim Analysieren großer Codebasen und beim Schreiben selbst reichhaltige Unterstützung garantieren.

Andere werden gute Gründe dafür sehen, die Sprache nicht wegen eher äußerst selten genutzter Funktionen zu verkomplizieren.

Das wird so sein, aber dass der Seltenheitswert in der Begründung eine Rolle spielt bezweifle ich. Algebraische Datentypen sind längst Mainstream: Swift, Rust, TypeScript.

Ich vermute auf die entscheidende Frage "Und? Wer braucht das?" gab es keine Antwort die den erwarteten Aufwand rechtfertigte.

Deine Vermutung beruht worauf?

Das muss dann ja auch noch einer pflegen und ich weiß nicht wie tief der notwendige Eingriff in bestehenden, erprobten und als sicher geltenden Code wäre vermutlich erheblich.

Diese Fragen muss man für jedes neue Feature beantworten. Im Falle dieses Proposals wäre der Aufwand angemessen gewesen, ein Pull-Request lag ihm bereits bei.

Im Gegensatz dazu sollten sich die wenigen und eher seltenen, durch den Vorschlag lösbaren Programmier-Probleme wohl auch durch den einen oder anderen, in PHP geschriebenen "Fünfzeiler" lösen lassen.

Das Proposal hätte neue statische Typchecks ermöglicht. Dadurch hätten eine ganze Menge mehr Programmierfehler bereits zur Entwicklungszeit ausgeschlossen werden können. Die Werkzeuge, die ich oben bereits erwähnt habe, können auch nicht einfach substituiert werden.