viernes, 24 de enero de 2014

Se que muchos han criticado mi postura sobre dejar php por sus errores del intérprete, y quiero aclarar un poco la entrada de hace un mes atrás.
Como dije no era la única razón, pero me pareció una primera razón y más que válida.
Se que llevo bastante tiempo sin hacer una entrada nueva así que mis disculpas, entre vacaciones y otras cosas dejé de publicar entradas.
Comenzaré por la primer entrada del año para reafirmar una entrada anterior.
La verdadera razón para dejar php... (ver entrada anterior de referencia aquí)


Bueno inicialmente quiero aclarar, que los errores del interprete para los que no hallan entendido en absoluto lo que estaba tratando de decir, no son la causa directa, sino son una demostración de la falencia en el diseño del interprete de php, no porque el interprete de errores cuando uno hace las cosas mal voy a dejar de usar php, sino porque el hecho de que si se permitan ciertas cosas y que luego tiren error dependiendo del contexto cuando en primera instancia no deberían ser posibles, marca la ineficiencia de los desarrolladores a la hora de plantear bien la estructura del interprete y me hace pensar que estoy trabajando con cosas INESTABLES.

Se que muchos de ustedes habrán notado que era poco probable que yo tomara una decisión tan drástica en base a pequeños errores del intérprete y yo esperaba que lo tomaran así, pero como recibí criticas al respecto les comentaré con más detalles mi razón.

La entrada anterior representa digamos la gota que rebalsó el vaso, no obstante voy a empezar diciendo que la principal razón por la que abandoné php es por sus limitaciones respecto a sintaxis y estructura general.

PHP es un lenguaje relativa mente feo (type casting, triple igual para comparación de tipos, eso es definitivamente una mala decisión de diseño que no debería existir por ejemplo), en lo que se refiere a sintaxis y estructura, que depende de un equipo que actualice constantemente las funciones nativas del lenguaje, y que mejore constantemente la sintaxis del lenguaje (véase que en las últimas versiones agregaron cosas como los Traits que son sumamente útiles y necesarios, si ven mi Property en php, podrán notar el uso que se le puede dar), el hecho es que el lenguaje cambia constantemente obligando a cada uno de los programadores a actualizar el código, además por su forma, suele obligar en algunos casos a que hagamos código basura, puesto que para hacer un código real faltan cosas importantes, como en versiones anteriores la falta de trait o la mala implementación de interfaces.

Por otra parte, yo mostré una serie de errores del interprete de php, que no mostré otros casos puesto que me parecían demasiados complejos para el lector en general, pero me ha sucedido de tener ciertos problemas a la hora de implementar un bloque de ejecución diferida por ejemplo.

Otra causa importante es la limitación absoluta del modo PHP-CLI (command line interface) que no cuenta ni con control nativo de salida en pantalla, (el que incorpora es horrible y no debería tomarse en cuenta) por lo que decidieron implementar ncurses (pero aún a esta altura de la vida, se encuentra en testing)

Si continuamos podemos deducir también que php carece de gestión de componentes, puesto que de hecho toda la filosofía del lenguaje no se basa en componentes, si vemos la industria actual, la tendencia general y la mayor fuente de ingresos industriales referido al software tiene relación directa con modelos de componentes variados (empezando por el modelo de componentes de Microsoft hasta modelos como el de CORBA). Si bien uno puede extender la clase nativa de php COM para por ejemplo como yo hice hablar a php usando la dll de speech de microsoft, es realmente triste su forma de manejar componentes, sin contar que no puede crear componentes.

Pero recién estoy empezando, php cuenta con un lenguaje que fue variando en el tiempo y fue emparchado en el tiempo, por lo que a futuro irá cambiando, eso me representa la tarea de tener que ir remodelando cada código que hice en mi vida para que realmente quede bien, sea seguro y funcione correctamente.-

El control de tipos nativos de php es realmente malo, a comparación con otro tipo de lenguajes como haskell. Suele tener errores de interpretación y sobre todo a la hora de verificar el tipo de dato de una variable tiene bastantes fallas y pueden verse con normalidad.

Por último quiero decir que no son las únicas razones hay muchas más pero si siguiera estaría todo el día.
Se que muchos puntos pueden ser "criticables" en realidad no, pero como siempre los fanáticos del lenguaje saldrán a comentar que hay alguna alternativa (totalmente inútil en realidad) para solucionar cada cosa que dije.

En conclusión php es una fabrica de hacer monstruos (y para que lo entiendan pueden leer esta entrada)

Les dejo un feliz año, y comenzaré de nuevo con las entradas regulares sobre distintos temas, si es la primera vez que visitas mi blog te invito a ver la lista de teoría y manuales aquí

Le quiero mandar un saludo a mi amigo ingeniero de snifer-l4abs (josé), y a mi amigo Eddy WIlson que siempre responde con sus opiniones y me da nuevos e interesantes puntos de vista, y un saludo para todos mis lectores!

2 comentarios:

  1. Hola entonces que lenguaje recomiendas ?

    ResponderEliminar
  2. Perdona la tardanza al comentar, no he tenido tiempo de revisar el blog estos dias, bueno depende de para que, por ejemplo, si quieres programar para escritorio mi recomendacion es obviamente C++, si deceas programar para web, tomando como base CGI puedes usar practicamente cualquier lenguaje (incluido c++) para que corra como backend de CGI, tambien puedes chuzmear py, que es un lenguaje interpretado realmente interesante, sobre todo para web tiene un framework (o al menos uno que yo conozca), no te puedo decir cual lenguaje es el definitivo, tienes que probar y analizar cada lenguaje hasta que encuentres uno en el que puedas programar sin inconvenientes cualquier cosa que te propongas, por ejemplo yo en php hay unas cuantas cositas que no puedo hacer...

    saludos!

    ResponderEliminar

Subscribete al RSS Follow me on Twitter!