Controversia sul namespace separator

di Andrea Turso - 8 novembre 2008

Finalmente il PHP core team ha deciso il carattere da usare come namespace separator: il backslash!

La questione fa pensare. Nella storia del PHP diverse scelte hanno rischiato di minare la credibilità di questo linguaggio, scelte alle quali si è cercato più volte di porre rimedio, ma che comunque hanno portato ad un notevole calo di notorietà di PHP nel panorama dei linguaggi di scripting. Mi riferisco a magic_quotes, register_globals, safe_mode e short_tags che, oltre a mettere a rischio la sicurezza delle applicazioni, hanno rallentato notevolmente il passaggio alle nuove versioni di PHP.

La decisione del backslash ha sollevato un polverone, chi da una parte afferma che la scelta sia semplicemente "okay", chi invece la rifiuta categoricamente argomentando con diverse motivazioni. Probabilmente ci vorrà un po' di tempo per superare i vari typo e gli errori di confusione che tormenteranno sopratutto i novizi. Ed è proprio questo il problema del backslash: molti dei linguaggi in circolazione possiedono un unico operatore per accedere ai namespace ed ai membri delle classi, per PHP invece non sarà così. Riporto un'ironica vignetta di PHPImpact che rende meglio l'idea delle differenze:

Java:
Attribute/Method access: foo.bar
Static method access:    Foo.bar
Package access:          foo.bar.baz

C#:
Attribute/Method access: foo.bar
Static method access:    Foo.bar
Namespace access:        foo.bar.baz

Python:
Attribute/Method access: foo.bar
Static method access:    Foo.bar
Module access:           foo.bar.baz

PHP:
Attribute/Method access: $foo->bar
Static method access:    Foo::bar
Namespace access:        C:\foo\bar\baz

Che ci piaccia o meno la scelta è fatta, il dado è tratto. Per chi fosse interessato a saperne di più è disponibile il log pubblico della conversazione IRC in cui è stata presa la decisione. Nel frattempo che sia rilasciata la versione di PHP 5.3 possiamo sperare che un lume di ragione faccia aprire gli occhi al PHP core team prima che sia rilasciata la "patch" che introduce questa modifica.

In fin dei conti mi chiedo se il buon vecchio Paamayim Nekudotayim non fosse stato sufficiente.

1 commento

1 Gianni Tomasicchio Gianni Tomasicchio domenica 9 novembre 2008, ore 08:55
In fin dei conti un carattere vale l'altro...

Ma proprio il backslash dovevano scegliere!!! :cry:
Effettua l'accesso o registrati per inserire un commento