Spec First oder Code First? Hitzige Debatte um Facebooks PHP-Spezifikation
Kommentare

Facebook wird nicht einfach eine fertige Version der PHP-Spezifikation „über die Mauer werfen“ und dann wieder verschwinden. Mit dieser Aussage hatte Sara Golemons die erhitzten Gemüter in der PHP Community

Facebook wird nicht einfach eine fertige Version der PHP-Spezifikation „über die Mauer werfen“ und dann wieder verschwinden. Mit dieser Aussage hatte Sara Golemons die erhitzten Gemüter in der PHP Community besänftigt, nachdem sie angekündigt hatte, Facebook werde diese Woche noch eine komplette Spezifikation von PHP vorlegen

Klärungsbedarf

Nach der Ankündigung Golemons letzte Woche war der Klärungsbedarf in den PHP Internals natürlich groß. Viele hatten sich die Frage gestellt, ob Facebook hier der Community womöglich seine eigene Sichtweise der PHP-Sprache aufdrängen wolle.

Doch in der Diskussion stellt Golemons klar: Facebook wird in den nächsten Tagen nichts weiter als ein erstes Entwurfspapier einer Spezifikation von PHP vorstellen, das selbstredend in der Folge eingehend mit der Community diskutiert werden solle und etliche Revisionen erfahren werde, bevor irgendwer es ernsthaft als „final“ bezeichnen könne.

Kein Facebook-Alleingang also.

Aufatmen.

Wer kontrolliert was?

Doch Facebook meint es durchaus ernst, auch das wurde in der Diskussion klar. Facebook will zumindest den Anstoß zu dem geben, was viele als wichtigen Meilenstein für die Zukunft von PHP ansehen – die Spezifizierung von PHP, vor der man bislang wegen des immensen Aufwandes zurückschreckte. Facebook will mit dem Entwurfspapier einen Vorschlag für den formalen Rahmen einer PHP-Spezifikation unterbreiten und das Dokument auf einer kollaborativen Plattform – wahrscheinlich als GitHub-Projekt – veröffentlichen. Laut Golemons ist man auch offen für die Option, dass eine andere Instanz – etwa die PHP-Core-Gruppe – von da an das Ruder übernimmt.

Und in der Tat: Viele scheinen sich besser mit der Idee anfreunden zu können, dass eine PHP-Spezifikation nicht von Facebook getrieben, sondern von der PHP-Gruppe kontrolliert wird. Beispielsweise Andrea Faulds:

Myself I think it’d be best if the PHP Group runs it. The same organisation controlling the specification and the reference implementation of sorts (Zend PHP) is probably more practical than some external organisation.

Oder ein neues PHP-Konsortium? Dieser Vorschlag von  hatte in den Internals wenig Beifall erhalten.

Spec first oder Code first?

Die entscheidende Frage stellt indes Larry Garfield: Wird die PHP Community zukünftig einen Wechsel zu einer Spec-First-Mentalität vollziehen? Wird also zuerst spezifiziert, und dann auf dieser Spec-Basis implementiert? Oder folgt die Spec immer der jeweilig aktuellen Referenzimplementierung, die da lautet: Zend PHP?

Andrea Faulds meint: „It will always be Zend code first, spec second. HHVM can play catch-up.“ Doch sind wir uns da alle so sicher?

Ben Ramsey meint jedenfalls, dass eine Spezifikation von PHP nur dann Sinn macht, wenn sie VOR der Implementierung steht. Zend PHP könnte zwar als „Referenzimplementierung“ gelten, doch würden sich alternative Implementierungen nicht mehr als „kompatibel zu Zend PHP“ bezeichnen, sondern als „konform zur offiziellen Spezifikation“. Auch Versionsnummern würden sich auf eine Spezifikation beziehen, nicht auf eine Implementierung, fügt Ramsey mit einem Seitenhieb auf die unselige Diskussion um die Versionierung der nächsten PHP-Majorversion hinzu.

Chance für PHP

Das Verhältnis zwischen Spec und Implementierung wird in der Folge noch genauer austariert werden müssen, so viel ist klar. Die Vergangenheit hat indes gezeigt, dass ein Mentalitätswechsel nicht so einfach zu bewerkstelligen ist, wie es scheint. „Einfach mal umdenken“ funktioniert vielleicht bei einem Individuum. Eine heterogene Gruppe, wie sie die PHP Kern-Community nunmal ist, wird sich schwerer auf einen gemeinsamen Nenner bringen lassen.

Ein Punkt ist es hier noch wert, erwähnt zu werden. Andrea Faulds begrüßt eine PHP-Spezifikation, scheint aber skeptisch, ob das Projekt ob der vielen inkonsistenten PHP-Sprachkonstrukte gelingen kann. Golemons Antwort: Der Junge, der die Spezifikation schreibe, sei ein erfahrener Verfasser von Specs und unglaublich sensibel für Details. Alle inkonsistente Semantik sei also abgebildet.

Da kommt uns doch sofort in den Sinn: Wenn Probleme transparent werden, wird es auch leichter, sie zu beheben. Vielleicht dient die PHP-Spezifizierung im Umkehrschluss also auch dazu, PHP an der einen oder anderen Stelle aufzuräumen.

Und das allein wäre ja schon der Mühe wert!

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -