Volviendo a programar como antes
Me acuerdo que cuando comencé a programar, allá por el 1996 con Basic, se cuidaba cada línea de código, cada variable, cada campo para que no ocuparan más espacio del que se debiera. Recuerdo armar las estructuras de los archivos para que sean lo más pequeño posibles, por dos razones: espacio en disco, y la memoria del sistema.
Sin embargo, con la aparición de máquinas más potentes, megas y megas de memoria RAM y grandes discos, eso parecía que dejó de ser un problema. Las aplicaciones de escritorio se destacaban por la cantidad de líneas de código, variables, imágenes y cuanta cosa quisieras ponerle a tu programa.
He visto código fuente que sinceramente es para llorar. Eficiencia 0. Al hacer la crítica simplemente te contestaban que no era necesario optimizar tanto la cosa porque con el hardware disponible hoy en día, el programa corre sin mayores problemas.
Sin embargo, en el campo en el que estoy trabajando, la web, la optimización del código fuente es la clave para que tu sitio web sobreviva o no. Sobre todo si tienes una alta demanda. Asi que hoy tienes que considerar muy bien el tema de la programación orientada a objetos, usar plantillas, separación del código, etc. Simplemente porque cualquier “cosita” demás, hará que tu aplicación simplemente colapse, o tendras que irte a un servidor dedicado.
Hace un tiempo empecé a utilizar Smarty en mis proyectos. La verdad es que es fantástico, pero me parece que es redundante. Tranquilamente puedes montar las plantillas con código PHP, y te ahorras de aprender un nuevo seudo-lenguaje como el que implementa Smarty.
Estoy de acuerdo con lo que comenta Ricardo Galli en su blog con respecto a las plantillas: no son soluciones máginas. Si puede que te hagan un poco la vida más fácil, pero no más que eso y su precio (que a veces puede ser demasiado caro).
Igualmente en mis proyectos uso plantillas en algunos casos, como en TuSecreto, por la simple razón que uso un core para toda la aplicación, que es usado por cada uno de los sitios de TuSecreto, y para manejar la presentación visual uso plantillas en PHP que manejo con includes.
En otros proyectos simplemente no uso plantillas. Incrusto mi código PHP directamente en la página PHP, obviamente sin hacer esas mezclas que puedes encontrarte en PHP Nuke (lo peor que he visto hasta ahora). Básicamente procuro tener dos capas:
- Capa de Procesos: El código que maneja todos los datos, consultas, procesos, etc.
- Capa de Presentación: El código para la presentación visual, o sea las páginas en sí.
Mi política, es que el código de la Capa 1 no tenga nada que ver con el HTML. Ninguna de mis funciones te vuelve algo en HTML. Cuando más, en XML, pero nada más que eso. De eso se encarga la Capa de Presentación.
La Capa de Presentación se maneja con muchos includes, cache de objetos (para casos puntuales) y compilación de CSS y JS (para que usen menos espacio o vayan compactados al cliente).
Y así es como me manejo. Ni más ni menos.