P++: Der nächste große Schritt für PHP?

P++: Ein PHP-Dialekt, der die Community vereint?
1 Kommentar

Die PHP-Welt ist gespalten: Braucht die Programmiersprache eine radikale Erneuerung oder nicht? Um die Lager wieder zu vereinen, hat Zeev Suraski nun das Konzept P++ vorgestellt: Ein Dialekt innerhalb der Sprache soll es möglich machen, PHP in Zukunft sowohl dynamisch als auch statisch typisiert zu nutzen. Noch ist aber nichts entschieden.

Zeev Suraski, PHP-Core-Entwickler, hat ein Konzept vorgestellt, das die zerstrittenen Lager der PHP-Community vereinen soll: P++ ist der Codename für einen PHP-Dialekt, der im Core verbleiben, bewährtes erhalten und trotzdem radikale Neuerungen ermöglichen soll. Suraski sieht darin einen Mittelweg, auf dem die derzeit zerstrittenen Lager der Community wieder zusammenfinden sollen. Aber worum geht es dabei genau?

P++: Worum geht es überhaupt?

Soll PHP bei der dynamischen Typisierung bleiben, die es traditionell verwendet, oder strikter typisiert werden? Soll die Sprache weiterhin Short Tags umfassen, die von manchen Entwicklern als eine Art Altlast empfunden werden? Braucht PHP komplexere oder fortgeschrittenere Features oder reicht das, was derzeit vorhanden ist? Muss der Fokus auf der Abwärtskompatibilität erhalten bleiben, den PHP traditionell setzt oder dürfen neue Versionen damit brechen?

Die PHP-Community teilt sich zu diesen Fragen in zwei Lager auf, wie Suraski beschreibt. Ein Teil der Community möchte an der klassischen Philosophie von PHP festhalten, wozu die Einfachheit und dynamische Typisierung, sowie der Fokus auf Abwärtskompatibilität gehören. Das andere Lager vertritt die entgegengesetzte Position. Suraski selbst sagt, dass er sich eher als Traditionalist sieht, den Wunsch nach Veränderung allerdings nachvollziehen kann. Darum hat er das Konzept von P++ zur Diskussion gestellt.

P++: Was sich ändern könnte

P++ soll kein Fork von PHP sein, sondern einen Dialekt etablieren, der dazu genutzt werden kann, bestimmte Features parallel in mehreren Versionen zu implementieren. Die zu nutzende Version könnte dann im Code markiert werden, beispielsweise über einen speziellen P++-Header. Grundlegend soll jedoch weiterhin ein gemeinsamer Sprachkern genutzt werden, sodass keine zwei Projekte parallel geführt werden und kein unabhängiger Fork entsteht. Suraskis Konzept sieht vor, dass Entwickler auf der Ebene einzelner Dateien entscheiden können, welchen Dialekt sie verwenden möchten. Auch sei denkbar, eine Namespace-basierte Definition für Frameworks einzuführen.

Als Nachteil am Konzept benennt Suraski die Gefahr einer Fragmentierung der Community. Er geht jedoch davon aus, dass das bereits der Fall ist, und dass keine Lösung für PHP gefunden werden könne, die beiden Lagern gerecht werde. Ein ewiger Support für PHP 7.4 und eine  große Veränderung zu PHP 8 würden beispielsweise bedeuten, dass neue Features und Performance-Verbesserungen nicht mehr für alle PHP-Anwender verfügbar gemacht werden könnten.

P++ oder Editions?

Neben Suraski hatte auch Nikita Popov einen Vorschlag zum Umgang mit den zwei Lagern in der Community vorgelegt. Popov hat dazu das Konzept der Rust Editions heran gezogen, die genutzt werden, um ein bestimmtes Featureset zu deklarieren. Details zu den Unterschieden der Konzepte und offenen Fragen auf dem Weg zu einer friedlichen Kooperation beider Lager können dem FAQ zu P++ sowie Suraskis Mailinglist-Nachricht „Bringing Peace to the Galaxy“ entnommen werden. Noch steht nicht fest, wie es mit PHP weitergehen wird.

Auch der Name für Suraskis Konzept gehört zu den offenen Fragen, die im FAQ genannt werden: P++ ist nur ein Arbeitstitel, und es gehöre, so drückt es Suraski aus, zu den größten Herausforderungen auf einem Weg zur Lösung, einen vernünftigen Namen dafür zu finden.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

1 Kommentar auf "P++: Ein PHP-Dialekt, der die Community vereint?"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Lars Moelleken
Gast

Feasibility of P++ === 100% glauben nicht, dass das machbar / gut ist -> https://wiki.php.net/rfc/p-plus-plus

X
- Gib Deinen Standort ein -
- or -