Magazine

¿Por qué programo en php?

Publicado el 12 octubre 2014 por Alexander171294 @std_io
Buenas tardes lectores, hoy quiero hablar de un tema que resulta sin darme cuenta es algo importante para mi como programador, la elección de un lenguaje de programación es una de las cosas más importantes en la vida de un programador, y hoy les traigo la razón por la que yo programo en php.
¿Por qué programo en php?
Quizá es un tema relativamente recurrente en mi blog ya que en entradas anteriores publiqué mi decisión definitiva de cambiar de lenguaje que pueden ver en este enlace, entonces ¿Por qué no cambié?
PHP es un lenguaje que a lo largo de los años sufrió una gran cantidad de cambios muy diferentes, tomando caminos diferentes en cada una de sus versiones, por lo que realmente es bastante desastroso y tiene distintas ideologías sin terminar y problemas de distintas versiones y épocas que aún se arrastran.
Entre los grandes errores de PHP tenemos el problema de los tipos, que si bien no cuenta con un tipado estricto, es quizá eso mismo lo que lleva al interprete a confundir en ciertas situaciones, en ciertas comparaciones, y a equivocarse (por eso actualmente para comparaciones se debe usar ==), pero este quizá sea uno de los menores problemas que tiene, ante por ejemplo polimorfismo (algo de lo que hablo en este paper) php en particular no ayuda mucho en este tema, no hace mucho hincapié en el mismo, por lo que en general se complica bastante, actualmente implementaron interfaces pero realmente son una pérdida de tiempo, casi inútiles e innecesarias en el actual php.
Por otro lado tenemos errores absurdos como lo que ocurre al escribir static class, como dijo un amigo, es un error incomprensible que en su momento me llamó mucho la atención y actualmente es objeto de múltiples burlas de mi parte.
Php también carece de las características necesarias para implementar criterios de calidad de forma correcta como es el caso de reusar código (véase aquía qué me refiero), no es muy rápido y tiene una mala gestión de los recursos o al menos en mi opinión.
Por otra parte hay que agregarle el gran problema de php a la hora de administrar las cargas de las partes del código, generalmente se usa mvc y como se comentó en otra entrada anterior tiene una serie de problemas importantes.
Y hay muchos temas más que complican bastante a la hora de programar algo realmente robusto, pero…
Hay algo sumamente importante, y lo voy a aclarar para todos, php tendrá todos los defectos que ustedes quieran, y habrán todos los lenguajes que ustedes quieran que son absolutamente superiores a php, es un hecho que no se niega, eso no cambia el hecho de que yo en php estoy relativamente cómodo, si bien no puedo llegar tan lejos como quisiera, en la mayoría de los códigos que vendo no necesito implementar ni la mitad de los criterios de calidad, y quizá esto sea algo que muy poca gente comprenda, a la hora de desarrollar no se trata de hacer el mejor código posible, se trata de analizar la situación, el presupuesto y ver cúanto de calidad podemos ponerle según nuestro presupuesto.
Analicemos el caso en el cual estoy actualmente, en underc0de (un foro que recomiendo visitar) se decidió crear una nueva plataforma novedosa con un montón de características, y yo estoy a cargo del desarrollo, el presupuesto es $0, lo que significa que todo el tiempo que invierta en el proyecto va por mi cuenta, ahora bien, no se cómo manejarán ustedes, pero en esta industria el tiempo es equivalente a dinero, y de hecho el tiempo representa dinero, por lo que voy a dejar claro, cada segundo que gasto en tiempo para mi es dinero, no importa si es un proyecto personal o es un proyecto para un amigo, representa tiempo perdido en algo que podría usar para otra cosa incluso para desarrollar otro proyecto que pudiera vender. Por lo que consideré en gastar absolutamente el menor tiempo posible, para tener el menor gasto que amortizar posible. Ahora bien, se me ha puesto en duda la decisión de hacerlo en php, y a lo que respondo con claras palabras y sin pelos en la lengua, hacerlo en otro lenguaje a mi me representa un costo de base muy importante que es el de acostumbrarme a la situación de programar en otro entorno, a los detalles del nuevo lenguaje, y todo eso aumenta el tiempo, también se me ha cuestionado la razón por la que escribí un código tan bruto, que voy a explicar luego más abajo, y la razón por la que usé un framework que será lo siguiente que explico. Quizá para alguien que programa desde hace mucho tiempo o un teimpo razonable en otro lenguaje no sea un inconveniente y no note lo incómodo que resulta llegar a un nuevo lenguaje y encontrar una cantidad de detalles diferentes y que al fin y al cabo los detalles son lo que en verdad llevan costo.
¿Por qué un framework? Es fácil, el framework por más malo que sea me evita escribir un montón de cosas que no deseo gastar tiempo en ellas, se que lo puedo hacer a mi modo programando toda una base, pero bajo ningún contexto puedo tomarme el tiempo en desarrollar nada más y no pienso rehusar cosas que ya tengo por el hecho de que no vale la pena, las cosas que tengo en su momento costaron un tiempo por lo que evidentemente siguen representando dinero, dinero que no gastaré en un proyecto de bajo presupuesto y baja proyección.
¿Por qué programé a lo bruto? Porque la cantidad de tiempo que gasto haciendo el código así de entrada es 3 veces menor que un código decente, y esto lo comprobé por mí mismo. Además de no querer correr con esos gastos tampoco tengo ganas de ponerme a pensar cosas que no me van a aportar nada, que ya hice para otros proyectos y que se hacerlas.
Resumen:
Cuando hagas un proyecto, considerá absolutamente todo, si realmente vale la pena o no y según el presupuesto aplicar o no calidad en el código.
Podría hacerlo con gran calidad pero me llevaría mucho tiempo, y para los requisitos del sistema, el presupuesto y el futuro que tendrá considero que no es necesario.
Pararse a criticar el código de otra persona es muy sencillo, pero la pregunta es, ¿vos en esa situación realmente programarías tomándote el trabajo de invertir tanto por algo que quizá no te reditúe nada?, si quisiese hacer un código perfecto lo haría y me tomaría todo el tiempo del mundo, pero, existen los factores relacionados con la realidad y no el mundo de fantasía ideal para desarrollar soft, para el cual se plantean todos los criterios de calidad que llegado el caso se implementarán.
Entonces si en mi proyecto no necesito hacer grandes cosas, y me siento comodo con un lenguaje, ¿por qué me voy a complicar en buscar una alternativa rebuscada para poder cumplir más de lo que se necesita?
Si te pagan 8 pesos por una hora de trabajo, ¿por qué vas a trabajar 2 horas por 8 pesos sin que te lo pida nadie?, eso ya es pasar por tonto.
Uno puede saber la teoría ideal pero no aplicarla, es dependiente de la situación.
Saludos lectores! Y espero que les haya interesado.
Soy amante de la programación, me gusta ver y crear cosas nuevas... Me gusta el metal, rock, y también daftpunk jajaja

Volver a la Portada de Logo Paperblog