Die Verwendung von Closures in PHP soll auch einfacher vonstatten gehen

PHP-RFC: Short Closures
Keine Kommentare

Ein bis zum 2. Oktober für das Voting offener RFC hat es sich zur Aufgabe gemacht, die Schreibweise von Closures mit dem Tilde-Operator (~) deutlich zu verkürzen.

Bereits am 01. Mai 2015 hatte Bob Weinand den seinen Vorschlag für Short Closures veröffentlicht. Mit Hilfe des Tilde-Operators soll sich so die Schreibarbeit für anonyme Funktionen verringern; was vor allem Anhängern der funktionalen Programmierung entgegen kommt.

Short Closures

Als Weinand den RFC vor über vier Monaten veröffentlicht hat, ging es ihm vor allem darum, die Verwendung von Closures, die im Vergleich zu anderen Sprachen seiner Meinung nach zu kompliziert sei, zu vereinfachen – und vor allem die Schreibarbeit zu verringern. Konkret sieht ein sehr simples Beispiel wie folgt aus:

function ($x) {
  return $x * 2;
}

Dieses recht umfangreiche Konstrukt versucht sein RFC zu vereinfachen. Mit der neuen Syntax ließe sich der Code so realisieren:

$x ~> $x * 2;

Natürlich funktioniert der eingegebene Vorschlag auch mit mehreren Parametern und umfangreicheren Statements. Ob der Vorschlag jedoch immer zu einer besseren Lesbarkeit des Codes beiträgt, sollte jeder für sich selbst entscheiden. Denn während das sehr simple Beispiel durchaus gefallen kann, sind aufwändigere Konstrukte überaus komplizierter nachzuvollziehen.

International PHP Conference

Passwords are so 1990

by Sam Bellen (Auth0)

Domain-Driven PHP

by Henning Schwentner (WPS – Workplace Solutions)

IT Security Summit 2020

Zero Trust – why are we having this conversation?

mit Victoria Almazova (Microsoft)

Digitaler Ersthelfer

mit Martin Wundram (DigiTrace GmbH)

~

Im Zentrum des Geschehens steht also der neue Short-Closure-Operator ~>. Weinand schlägt die Tilde – deren Aussehen ein wenig an die Armbewegungen eines „Inflatable Man“ erinnert – aus zwei Gründen vor:

The symbol ~> was chosen as it is a mnemonic device to help programmers understand that the variable is being brought to a function. It is also unambiguous as it has not been used elsewhere in PHP.

In Hack wird diese Funktionalität der kurzen Schreibweise für Closures über den Operator ==> realisiert – der jedoch dem Key-Value-Paar-Symbol => zu nahe kommen würde.

Auf Reddit wurde indes argumentiert, dass die Ähnlichkeit zwischen ~> und -> wesentlich stärker sei als zwischen => und ==>, jedoch gilt es zu bedenken, dass man mit dem Double Arrow durchaus validen Code erzeugen kann, der jedoch nicht das erwartete Verhalten an den Tag legt …

Das Voting

Seit Dienstag ist das Voting für den RFC eröffnet. Es gibt keine zu befürchtenden Brüche mit der Abwärtskompatibilität, als Zielversion ist das nächste Minor-Release von PHP angedacht – in diesem Fall also PHP 7.1.

Trotz der zu erwartenden Einsparung an Schreibarbeit ist der RFC nicht ganz unumstritten; aktuell (Donnerstag, 24. September, ca. 08:00 Uhr) zählt er 19 Stimmen dafür – bei ebenso vielen Gegenstimmen. So wird es eng mit der angestrebten 2/3-Mehrheit.

Das Problem ist eindeutig im Fehlen der Type Hints zu suchen:

Type Hints are not added due to technical problems in parser and the RFC author is not sure about whether they should be really added. If anyone achieves to solve these technical issues, he should feel free to do that in a future RFC for further discussion. And as introducing half a typesystem would be inconsistent, the RFC proposes to not include return types either.

Generell also ein spannender Ansatz, an dessen Feinschliff vielleicht noch ein wenig gearbeitet werden sollte.

Wie steht es bei euch: Nutzt ihr Closures, und würdet ihr eine kurze Schreibweise dafür in eurem Code einsetzen?

webinale – the holistic web conference

Diversity matters – Onlinemarketing 2020

mit Astrid Kramer (Astrid Kramer Consulting)

Das Recht auf Privatsphäre – eine Chance für UX

mit Lutz Schmitt (Lutz Schmitt Design & Consulting)

The Revenge of Structured Data

mit Stephan Cifka (Performics Germany GmbH)

IT Security Summit 2020

Zero Trust – why are we having this conversation?

mit Victoria Almazova (Microsoft)

Digitaler Ersthelfer

mit Martin Wundram (DigiTrace GmbH)

 

 

Aufmacherbild: Vector illustration dancing man silhouette set (modifiziert) von Shutterstock / Urheberrecht: Kolesov Sergei

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -