"¡Que fácil que caemos en las guerras entre lenguajes/plataformas!"

Cuando escribí el post sobre que los desarrolladores de PHP debíamos profesionalizarnos (inspirado en una respuesta que di en forosdelweb.com), un colega subió el mismo a Menéame (famoso sistema de promoción de noticias) y este generó un pico abrupto de nuevas visitas a este blog. Entre medio del proceso de votación que posibilita a que este artículo pasara de "la zona de revisión" a "la portada" de Menéame, se dieron algunas discusiones entre usuarios lo cual fácilmente derivo en la clásica lucha entre "lenguajes / tecnologías" (lo cual no aporta nada útil).

Esta es mi opinión sobre el tema, que aprovecho a rescatarla y dejarla "vigente" en el blog del autor (o sea, yo ;-) y terminar de reforzar la idea que intento transmitir en cada artículo que escribo, curso que dicto o charla en la que participo:

La idea de mi artículo (si, soy el atrevido que escribió esto ;)) es hacer reflexionar a los "programadores php" que con solo scripting no se hacen sistemas medios en adelante... y eso no es solo por un tema de "falta de plataforma" (porque al día de hoy PHP sigue siendo "solo un lenguaje" pero que se puede complementar con un conjunto de herramientas) es también un tema de "falta de mentalidad de desarrolladores", donde la gran mayoría de los programadores desconoce los conceptos básicos de la POO.

En mi muy humilde opinión, si tomamos en cuenta el avance en las plataformas más populares, como Java o .Net, los conocimientos de los programadores han quedado en el pasado bordeando en la actualidad el "analfabetismo" en todo lo que concierne OO, Diseño, Patrones, etc. **

PHP5 incorpora el manejo de "interfaces", pero al día de hoy es habitual hablar con desarrolladores que no entienden siquiera el concepto que hay detrás, ni la diferencia entre "programar orientado a la implementación" versus "programar orientado a la interfaz", donde la mayoría de los principios de diseño te sugieren que tus diseños dependan de "implementaciones abstractas" y no de "implementaciones concretas" (para obtener los beneficios tan publicitados del paradigma: flexibilidad, mantenibilidad y reusabilidad).

Y todo esto se hace con la ayuda de las "interfaces" (que no es, como he escuchado decir, para poder implementar "herencia múltiple"... estrategia desaconsejada que difícilmente verás implementada en un patrón de diseño).

Estas grandes carencias las percibo habiendo estado muy poco tiempo estudiando estos temas desde la óptica del mundo Java (muchos de los conceptos que quiero transmitirles a los programadores php, para que abran su cabeza, aquí son elementales). Cuando se liberó la versión 5 de PHP y al ver que implementaban la mayoría de las características que tiene cualquier lenguaje OO (interfaces, visibilidad de atributos y métodos, abstract, etc) me di cuenta que era perfectamente directo pasar los conocimientos y experiencias de un lado a otro.

Pero todo esto te das cuenta cuando vienes de una plataforma, de una arquitectura; si siempre estuviste "dentro" del ambiente PHP, ni te percatas de los grandes cambios que puedes hacer y del salto que pueden hacer tus sistemas.

No fue solo un agregado menor en la sintaxis.

Eso es lo que intento transmitir. ;)

No hay comentarios.:

Entradas populares