Bueno, escribo esto porque estoy harto de que cada dos por tres aparezca un «listo» diciendo que para «hacer las cosas bien» en PHP hay que usar el modelo mental de la Programación Orientada a Objetos.
Bueno, iré por partes:
1. PHP no está diseñado ni pensado para trabajar con el paradigma de POO. Está diseñado a imagen de C, no de Java. Eso que quede claro. Que el objeto DateTime sea eso, un objeto (desde 2004), es una excepción, la mayoría de las funciones de PHP son funciones, no métodos de clases. Otra cosa, es que, dadas las reclamaciones de gente «pro POO» se le haya añadido soporte para objetos. Nada mas.
2. Llevo muchísimo tiempo viendo ejemplos de código de Rasmus Lerdorf, Marco Tabini, etc, gente que realmente es buena y dirige el propio desarrollo de PHP y, muchas veces, no se molestan en usar POO. PHP es rápido y directo, muchas veces no hace falta más que un pensamiento procedural.
Hay un dicho que dice «si funciona, no lo toques» pues yo tengo otro: «si funciona, no me importa cómo lo hayas hecho»

[Ahora, si tu eres tan listo que te consideras capacitado para superar el trabajo de Rasmus y demás, creo que la discusión está de mas ...]

3. no nos engañemos, PHP ha tenido y tiene éxito porque es rápido y se pueden hacer ñapas. Veamos como se resuelve un bug en RoR: el gurú de turno tardará 10 minutos, si, pero, si es como debe ser, se pasará 2 días haciendo tests unitarios. Veamos en java: tardará mas forzosamente porque tiene que lidiar con el obligatorio andamiaje de objetos con el que capean a diario. En PHP se tarda 10 minutos y en otros 5 está en producción. Es así, PHP es guarro y efectivo, por eso ha triunfado.
Ojo, no estoy diciendo que la POO sea una mala idea. Al contrario, digo que no siempre es adecuada para PHP. Lo entiendo como lo más adecuado para un framework (Zend, CodeIgniter ...) o una librería, pero se me ocurren muchos casos en los que no merece la pena.
Por ejemplo: cualquier tarea de sistemas, scripts de control o monitorización, micro-sites, una página personal, etc. Veamos en detalle el ejemplo de un micro-site comercial que vivirá lo que dura una campaña (unos meses) Pues no merece la pena usar POO, es más, ni siquiera plantillas. Señores, si no vas a reutilizar el código, las líneas van a ser pocas y no va a haber mantenimiento la POO no merece la pena. La POO se inventó para equipos de desarrollo de muchas personas donde se iba a reutilizar el código en el futuro ¿Sois pocos desarrollando? ¿No vas a reutilizar el código? Pues no uses POO, está claro.

El problema es que eres una persona (con o sin carrera) que se cree inteligente y le gusta admirar las cosas complejas. Empezaste a programar en un numeroso equipo picando Java. Te metieron a fuego en la cabeza cosas como patrones de diseño, closures, namespaces y cosas de esas ... y ahora, claro, llegas a PHP y pretendes hacer lo que sabes hacer.
Para eso está Java, no trabajes con PHP: serás mas feliz.

¿De verdad el patrón fachada, por ejemplo, es necesario en PHP? ¿Sólo porque viste que era lo mas usado en Java ahora tienes que repetirlo en PHP aunque sea con calzador? ¿Hay alguna razón objetiva para ello?
¿De verdad te merece la pena complicarte la vida y tardar más sólo para satisfacer tus exigencias estéticas o académicas?
¿Por qué hacer las cosas bien es hacerlas como se hace en un entorno empresarial?
Me gustaría saber, en serio, de dónde vienen estas ideas.

tag: 

Post new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Twitter icon
Facebook icon
LinkedIn icon