No me considero el mejor programador del mundo, de hecho se que me falta mucho por aprender. Pero si algo tengo es que realmente no tengo un “lenguaje favorito” que le llaman, me gustan todos carajo! analogicamente hablando: si llevas tu carro donde un mecánico y este te lo deja peor que como estaba antes, definitivamente no puedes culpar a la llave de 9/12, al martillo y al compresor que utilizó, simplemente piensas que es un mal mecanico y no lo vuelve s a llevar a con el. Bien pienso que en cuanto a lenguajes de programacion concierne la historia es similar, si el programador tiene malas practicas no habra lenguaje que encuentre bueno excepto aquel que sea tan robusto que soporte sus malas practicas.
Pero el proposito de este post no es criticar a los programadores (cada quien con su estilo no?) si no que es encontrar que es lo que hace que el gremio odie tanto este lenguaje de programacion.
Cuando programas en php la libertad de hacer cosas es demasiada, podrias escupirle en la cara a la seguridad de tu sitio y el lenguaje no diría pero ni pio. y es que php realmente no fue diseñado en principio como un leguaje de programacion como tal. PHP surgio cuando Rasmus Lerdorf se vio en la necesidad de crear un pequeño sistema para rastrear las visitas a su curriculum online, y a esta serie de archivos le llamo “Personal Home Page Tools” unos ficheros en C, bueno para no haceres la historia larga la cosa evoluciono y se convirtio en uno de los primeros motores de plantillas (templating engine) del mundo, es decir que en conclusion PHP no nacio, ni fue diseñado como un lenguaje de programacion, Y vaya que esto parece molestarle sobremanera a muchas personas.
Es cierto, inicialmente PHP no tenia una gramatica formal diseñada, ni mucho menos un analizador lexico/sintactico, fue un proyecto mascota que se convirtio en un verdadero patea/traseros, ya que le duela a quien le duela, hay varios millones de sitios de internet que son posibles gracias a php, y no estoy hablando de sitios pequeños y desconocidos.
Otra de las razones es que los nombres de las funciones que php provee, son bastante inconsistentes, algunas usan underscore y otras estan todo de junto:
get_type -> getclass str_ireplace -> strchr sesion_enconde -> urlencode htmlentities -> html_entity_decode
Vaya que bochorno! incluso hay sitios dedicados completamente a “apuntar” este tipo de cosas y lo han llamado “tristeza php” (apuesto $1 a que esta escrito en php) xD
Pero creo que hay una buena razon por la cual php tiene nombres tan inconsistentes! y es que tiene muchos usuarios, imaginence ustedes los headquarters de php, cuando comenzaron a hacer mejoras al lenguaje:
Programador: “Oye esta version tiene una estructura de nombres de puta madre!! ya no vamos a recibir mas cyber bulling al respecto”
CEO: “Genial, oye y es retrocompatible? ya sabes para todos nuestros amigos que ya usan nuestras funciones”
Programador: “No 🙁 “
CEO: “bueno dejemolas ahi… en caso de alguien las necesite y las depreciamos con muuuuucha anticipacion :)”
talvez no sea un dialogo textual, pero para ser un lenguaje con tanto exito… debe haber una buena razon para no hacer las cosas de manera ideal, no lo creen?
Discutir este tema con alguien puede ser larguisimo e inconcluyente, y estoy de acuerdo con muchas de las razones por las cuales estan inconformes, pero vamos, php tambien tiene cosas buenas, como la facilidad y el precio con el que puedes construir, esto es un pro si tu start-up no tiene mucho presupuesto (puedes tener hosting de php desde $12) y lanzar rapido! a los inversionistas no les importa el lengaje, les importa que funcione, ya mas tarde vas y migras todo a herramientas mas poderosas.
Como nota finla y recomendaion, les recomiendo un libro, si quieren programar en PHP:
Estoy conciente de lo doloroso que puede ser programar en php (pero no lo odio), y en lugar de sentarme a criticar el lenguaje, mejor les sugiero que si quieren usarlo lean ese libro! y que obligatoriamente usen un framework de php.
Tengo este post de frameworks para php que les podria servir como guia 🙂
Apuesto que bajo los patrones de diseño correctos, un buen framework y buenas practicas de programacion, todo puede salir bien en su proyecto de PHP.
[…] que regresa es mutable (puede ser un entero o un boolean). Este tipo de cosas son las que hacen que el mundo odie php. Ademas exec nos deja desprotegidos ante un mundo que busca inyectar SQL en donde pueda ya que los […]