Namespaces es PHP 5.3.... ¿una burla cruel?

27 octubre, 2008
Como habiamos anunciado con orgullo la incorporación de namespaces a php 5.3, ahora me da la rabia de anunciar que ya está decidido el separador... muy mal decidido...

Desde Vivaphp leo su noticia de haber definido ya el separador para los namespaces en PHP, algo que se viene deseando hace mucho.

Lo malo es la horrible implementación que hicieron, si bien PHP empezó como un lenguaje orientado a la web, se podria decir como un gran competidor al ASP, PHP fue evolucionando mucho para ir convirtiendose en un lenguaje orientado a objetos con todo lo que eso pide (Encapsulación, herencia, Polimorfismo... etc) un salto muy grande de su versión 4 a la 5, incorporando interfaces, clases abtractas y estaticas y demás, tambien se facilitaron muchos aspectos que le faltaba a PHP.

Ahora volviendo al tema, el caracter definido \ (barra invertida), tipica de un windowsero, fue la escogida para separar los nompres de namespaces, asi que veremos sintaxis del tipo:

use foo\bar;


o

$oUser = new Controllers\Model\Users();

Y si bien lo definen así por los conflictos con el doble punto (:) por metodos estáticos:
namespace foo::foo;
function bar(){echo "func\n";}
namespace foo;
class foo {
static function bar(){echo "method\n";}
}
foo::bar(); // method
?>

Las razones marcadas no son del todo "respetables", como estas:

  • \ is a single keystroke on U.S. keyboard layout without shift key
  • \this\is\used for paths on Windows and is intuitively familiar to those developers. According to a php|arch survey (as relayed by Steph Fox), most of their readers develop on Windows and deploy on Unix, which would imply that \these\paths are familiar
Osea, teniendo un teclado no U.S. sea español, no tenemos "comoda" la \, y la segunda que marca aca, es totalmente absurda, ya que habla de que es familiar para los que trabajan con win-dos.... me parece una patetica "razón".

Realmente espero que esto cambie pronto y recapaciten

Links:
Consepto de Namespaces
RFC oficial
Noticia en VivaPhp
Discución en Web&Beer

0 comentarios: