Muchas veces he tenido discusiones con otros desarrolladores de software, hablando sobre las limitantes y no de algunos lenguajes de programación. La mayoría de estas discusiones han sido con desarrolladores que utilizan JAVA ( lenguaje de programación orientado a objetos). Ellos se centran mucho en el lenguaje JAVA y critican Fuertemente los demás existentes. Uno de los lenguajes con más críticas es PHP (Hypertext Pre-processor).
PHP es uno de los lenguajes más utilizados para desarrollos en la web y aunque tienen sus falencias como todos los lenguajes, existen 10 ideas erróneas sobre el lenguaje que los desarrolladores a veces no conocen.
1. PHP no es un lenguaje “compilado”, es un lenguaje interprete
Esta idea es errónea, pues a partir del 2000 con el lanzamiento de PHP 4, este se convirtió en un lenguaje compilado. Cuando se ejecuta, el código fuente de PHP es compilado por el motor de compilación de Zend en los datos de código de máquina, luego Zend opcodes los almacena en la RAM, para que después opcodes ejecute el código.
De esta forma PHP se convierte en un código compilado, así como lo son JAVA o C#. Del no ser así sería un lenguaje muy lento.
2. PHP no puede… (Acceder a Memoria, Utilizar Hardware, etc.)
Es otra idea que nos han querido vender ¡pero no es cierto! PHP es un lenguaje extensible. Si no existe la extensión para la tarea que necesitamos en la distribución principal del PHP, podemos crear una extensión en C o C ++, de esta manera podemos realizar cualquier operación que estas dos lenguajes nos proporcionen.
De igual forma podemos revisar PECL PHP extension repository para ver si ya está realizado lo que necesitamos.
3. PHP no puede hacer algo que se puede hacer en la lengua X
Es algo que están en duda, existe es una variación del cómo hacerlo, pero de que lo puede hacer, lo hace. Igual no encuentro mucha diferencia entre los lenguajes, más bien en su sintaxis. Sin embargo, si usted encuentra algo que sólo solo se puede hacer en algún otro lenguaje o que tienen que confiar en los componentes existentes escritos en ese lenguaje, siempre se puede tratar de interactuar con el código escrito en otros lenguajes con extensiones PHP disponibles. Esto es un hecho poco conocido, probablemente porque no es algo que tiene gran demanda, pero hay extensiones de PHP que te permiten ejecutar código en otros lenguajes a partir de scripts PHP.
4. PHP es solo para el desarrollo en WEB
El uso más común de PHP es para los desarrollos en la web, corriendo a través de un servidor web. También puede correr PHP sin un servidor web por medio del ejecutable PHP CLI (Command Line Interface) . Es un programa que se puede iniciar desde el shell de línea de comandos para llevar a cabo todo tipo de operaciones, siendo el sitio Web relacionado o no.
Incluso las aplicaciones intensivas de CPU se han desarrollado en PHP y se ejecutan fuera de un servidor Web mediante el programa PHP CLI, como por ejemplo el envío de boletines a suscriptores. El PHPClasses envía millones de mensajes de boletín de noticias cada mes con el programa PHP CLI.
5. PHP solo es controlado por Zend
Desde la aparición de PHP en 1994 (Rasmus Lerdorf), PHP ha tenido diferentes desarrolladores que han colaborado para el desarrollo y crecimiento de este lenguaje de programación (Entre ellos los fundadores de la compañía Zend), pero esto no significa que estos sean los amos y señores de PHP, solo son un pequeño grupo de los que han convertido este en un gran lenguaje de desarrollo.
Existen empresas como Oracle y Microsoft, entre otras que también han puesto su grano de arena y que han querido adquirir este lenguaje.
6. La documentación de PHP es incompleta he insuficiente
Al contrario de lo que promulgan algunos programadores, La documentación de PHP es de las más completas, creo que un desarrollador novato o experto nunca se atasca buscando una función, clase o extensión para PHP. Además debemos destacar, que la documentación no solo se encuentra en un idioma, se encuentra en varios idiomas fácilitando que los desarrolladores de muchas partes del mundo se puedan documentar mejor con el lenguaje.
7. Los proyectos de PHP no son reutilizables, ya que no son orientados a objetos
Una de las razones por las que PHP es tan popular gracias a las aplicaciones que dominan el mercado Web ( WordPress, Drupal, Joomla, etc.).
Hoy en día WordPress es sin duda, la más popular de las aplicaciones PHP. Recientemente, Matt Mullenweg (creador del proyecto WordPress), anunció en su discurso del Estado de la Palabra 2011, que WordPress está presente en el 14,7% de los sitios Web.
Matt comentó que muchos desarrolladores modificaron sus instalaciones de WordPress con plug-ins para que funcione como un CMS (sistema de gestión de contenido) y eventualmente como otros tipos de aplicaciones. Sin embargo el código de Wordpress está escrito principalmente en código no orientado a objetos. Viene con las clases de la misma base para implementar algunas funcionalidades comunes.
La funcionalidad principal está escrita en código de procedimiento, por lo cual no es del todo necesario que el código sea todo orientado a objetos para que sea reutilizable.
8. PHP es peor que Ruby On Rails, Python Django, X framework en otro lenguaje
PHP viene con gran cantidad de extensiones que ofrecen muchas características, pero comparar una lengua con un framework completo es como comparar perros y manzanas.
Creo que es justo comparar PHP con Java, C #, Ruby, Python, etc. También es justo comparar a Ruby on Rails, Django, etc. con un framework similar en PHP como PHPCAKE, Symfony, Zend, etc. (PHP Framewroks).
9. PHP no es bueno para los sitios Web escalables o aplicaciones de alto rendimiento
Para desmentir esto, solo piensen en Facebook, es una red social gigantesca que corre en PHP. El rendimiento de una aplicación no depende del lenguaje, sino en la arquitectura de sus desarrollo y la realidad es que la mayoría de las aplicaciones web no son intensivas en la CPU. Por ejemplo: una de las actividades en que las aplicaciones Web pasan más tiempo es accediendo a las bases de datos. Es cuando la aplicación ejecuta una consulta SQL, en el que la mayoría del tiempo se dedica a esperar que el servidor de base de datos ejecute la consulta y devuelva los resultados.
Por eso si usted piensa en escalar su aplicación PHP, en una aplicación de alto rendimiento mastique la idea de utilizar lenguajes como C o C++ para poder generar consultas más eficientes y rápidas, además de mejorar la arquitectura de su aplicación.
10. Los desarrolladores de PHP son baratos porque no están calificados
Los programadores de PHP, son tan calificados como los programadores de lenguajes como JAVA, C#, etc. Simplemente los precios de sus salarios los da el mercado. Además los desarrolladores también son pagados por el tipo de trabajo que deben realizar. No es igual desarrollar una aplicación de alto rendimiento en PHP, que simplemente hacer unas modificaciones en JOOMLA o WORDPRESS.
Recuerden profundizar en el contenido
Fuentes: phpclasses.org – Manuel Lemos - phpframeworks.com – Wikipedia


Que buena compañero, varias cosas que no la sabía, gracias por el aporte….mil gracias
Saludos desde perú
Hola Milton.
Gracias a ti, por tomarte el tiempo de compartir tu opinión.
Me alegra que te haya servido la información para reforzar el conocimiento que ya tienes. Es una de las grandes motivaciones para seguir compartiendo información y conocimiento.
Te invito a que nos sigas en las redes sociales.
Facebook: http://facebook.com/rhissnetweb
Twitter: @rhissnet
Totalmente de acuerdo!
Muchas gracias por el artículo, me ha servido para justificar de mejor manera lo que pensaba.
Saludos desde Arica, Chile
Hola Marco
Qué bueno que hayas podido hacer uso de estas líneas de texto que compartimos. Puedes contarnos ¿Qué debías justificar?
Te invito a que hagas parte de nuestra comunidad en redes sociales:
http://facebook.com/rhissnetweb
http://twitter.com/rhissnet
Gracias por publicar, la información es muy interesante.
Antes de empezar quisiera aclarar algo. He sido desarrollador de PHP por más de 6 años, PHP es una excelente herramienta para el 95% de los proyectos Web (pequeños), es accesible y tiene una comunidad bastante extensa y heterogénea. También desarrollo en Java y he hecho algunos proyectos en C Sharp con .NET, Flex y actualmente me encuentro en un desarrollo que utiliza Grails (Groovy on Rails) y Griffon por lo que he tenido algo de experiencia con tecnologías muy distintas y filosofías casi opuestas.
Y si puedo decir sin temor a equivocarme que PHP no es suficiente para proyectos Enterprise donde se tienen que considerar cosas como Estándares, Instrumenting, Automatic Procurring, Mensajeria y casi cualquier cosa que tenga que ver con trabajar en ambientes distribuidos (en cluster). Los “short comings” de PHP se deben precisamente a la falta de una plataforma de desarrollo dirigida no solo por la comunidad sino regulada por alguna instancia que la mantenga vigente y sobre todo actualizada.
He aquí mi crítica a los puntos tratados:
1.- PHP no es un lenguaje “compilado”, es un lenguaje interprete
El hecho de que el motor de Zend permita “compilar” los scripts a un estado intermedio optimizado (bytecode?) no quiere decir que el lenguaje sea compilado ya que esto es una funcionalidad del motor de Zend y no del lenguaje (La inmensa mayoría de los proyectos corren en una instalación estándar de Apache). Lo mismo se puede hacer con Javascript utilizando Rhino (y algo de voodoo) y eso no hace a Javascript un lenguaje nativamente compilado, o si?
2.- PHP no puede… (Acceder a Memoria, Utilizar Hardware, etc.)
El tener que recurrir a un lenguaje de bajo nivel para compensar las carencias del intérprete de PHP valida precisamente esta afirmación. Es lo mismo si yo digo que con Python puedes leer los pensamientos de las personas… claro solo necesitas crear el Hardware que lo transfiera a paquetes compatibles con TCP/IP y lo envíe hasta el servidor donde Python los leerá.
3.- PHP no puede hacer algo que se puede hacer en la lengua (lenguaje?) X.
Este punto es redundante con el punto 2, creo que el propósito de incluirlo fue meramente de marketing para llegar al mítico “10″ en la lista para que se vea más “oficial”. Sin embargo al inicio listé una serie de cosas que PHP no puede hacer y durante el transcurso de las demás criticas incluiré más, y no solo por la limitante de ser un lenguaje Script interpretado y estructurado, sino que a Diferencia de Java o C (Utilizando .NET) PHP es solo un lenguaje mientras que C y Java son Plataformas de Desarrollo. Ahora, casi cualquier cosa es posible con la cantidad de tiempo y recursos necesarios el problema es el esfuerzo requerido para hacerlo, en cuyo caso PHP requeriría un esfuerzo ENORME para lograr hacer algunas cosas que Nativamente los Frameworks de Java y .NET.
4.- PHP es solo para el desarrollo en WEB
PPH fue concebido con el propósito de hacer paginas dinámicas y es claramente un lenguaje para desarrollos web. Es decir, no puedes programar drivers para una tarjeta gráfica o un Smartphone con PHP, los usos que planteas son solo extensiones del propósito WEB del lenguaje.
5.- PHP solo es controlado por Zend
En esto tienes toda la razón. Lo que me parece curioso es que puedo inferir basado en tu comentario que por alguna razón consideras que el hecho de que PHP sea controlado por Zend es algo de alguna manera negativo. Me parece curiosos porque eso es precisamente lo que le ha faltado al lenguaje durante más de la mitad de su existencia; Una instancia seria que lo regule, esto permite que la evolución del lenguaje y de toda la gama de tecnologías que las que depende sean dirigidas y sean por lo tanto más exitosas, propongan más avances y por lo tanto atraigan a más desarrolladores. Eso ha sido uno de los grandes éxitos de Java (Con SUN y ahora Oracle) y de C y C++ con .NET (con MS).
6.- La documentación de PHP es incompleta he insuficiente.
Existe documentación oficial del lenguaje y es bastante completa. Sin embargo al no haber regulaciones ni estándares cada Liberia puede o no tener documentación suficiente o de plano no tener documentación alguna, pero esto no es algo exclusivo de PHP ya que lo mismo sucede con Java por ejemplo, aunque en menor medida ya que los desarrolladores Java favorecen grandemente a aquellas librerías que se apegan a las implementaciones sugeridas por Oracle o SUN en su momento y eso es un incentivo fuerte para que aquellas que no lo hacen caigan eventualmente en desuso y desaparezcan. Esta es otra de las ventajas de tener una instancia reguladora.
7. Los proyectos de PHP no son reutilizables, ya que no son orientados a objetos.
En esto tienes razón también, pero por las razones equivocadas. WordPress es un CMS y el usarlo no significa reutilizar código. Lo que la crítica plantea es que existe un gran número de desarrolladores PHP que no tienen ni siquiera fundamentos básicos de OOP. El OOP implica (usándose bien) componentes reutilizables por lo que muchos desarrollos en PHP no cumplen con esta buena práctica. Sin embargo, nuevamente esto no es un problema de la tecnología en si sino de la comunidad que hace mal uso de ella.
8.- PHP es peor que Ruby On Rails, Python Django, X framework en otro lenguaje
No creo que se pueda comparar un lenguaje contra un framework. El acercamiento orientado a modelos de Ruby on Rails o Grails es muy útil y muy fácil de usar para cierto tipo de proyectos, pero calificarlo como “mejor” es completamente subjetivo. Ahora es una realidad que el crecimiento de estas tecnologías es algo que debería alertar a los desarrolladores PHP ya que ofrecen lo mismo que la plataforma PHP pero mucho más robusto y accesible. Creo que la transición de PHP a Ruby on Rails es algo que se puede dar de forma muy natural para un desarrollador PHP, muchos de los que conozco ya han comenzado a agregar Ruby a su CV. Ruby debe ser visto como una herramienta más en el arsenal del desarrollador y no como una competencia, estamos hablando de tecnologías de desarrollo no de religiones.
9.- PHP no es bueno para los sitios Web escalables o aplicaciones de alto rendimiento
Facebook es una excepción. La razón por la que esa hecha en PHP no es porque haya sido la mejor opción sino porque era lo que Mark Zuckerberg sabia usar cuando comenzó el desarrollo del sito y desde ahí se comenzó a ampliar el fundamento que el planteó. Facebook ha tenido que compensar las limitantes de PHP utilizando técnicas bastante interesantes de Infraestructura y por eso el sitio opera bastante bien, pero insisto, esto no prueba que PHP sea apto para aplicaciones de alto rendimiento ya que su éxito dependería de herramientas externas (y algo de voodoo). Este artículo por ejemplo habla de cómo tuvieron que reescribir desde cero el Intérprete de PHP para poder hacer su plataforma extensible: http://www.sdtimes.com/blog/post/2010/01/30/Facebook-rewrites-PHP-runtime.aspx
10.- Los desarrolladores de PHP son baratos porque no están calificados
En esto tienes toda la razón, es mentira totalmente. El costo de un desarrollador obedece a las reglas de mercado de cualquier servicio o producto; Oferta y Demanda. Existen menos ofertas para desarrolladores PHP y muchos desarrolladores y muchas ofertas para Java y .NET, y pocos desarrolladores. Es por eso que Java y .NET es más caro porque es un bien “escaso” y por lo tanto los desarrolladores Java y .NET ganan mejor que los PHP (de 25 a 30% más dependiendo del Seniority).
Lo interesante de esto es ¿Qué causa esta diferencia de números?. PHP al ser una tecnología mas accesible permite que más gente con menos experiencia pueda adoptar el lenguaje, Mientras que Java y .NET tienen una curva de aprendizaje mayor y son más demandantes como primer tecnología para la gran mayoría de la gente. Yo creo (aunque no lo podría probar) que el éxito de PHP se debe precisamente a esta accesibilidad (No ser fuertemente tipado, el OOP es opcional, No compilas, no hay un framework o API que debas aprender para poderlo usar, No te metes con Patrones de Diseño si no quieres, No hay Maven ni ANT ni builds, ni dependencias, etc) pero como todo tiene su costo y este es que siempre habrá más gente y más competencia y por lo tanto los sueldos no son tan buenos.
Para concluir.
No soy muy fan de este tipo de posts porque hacen parecer a las tecnologías diferentes como religiones y plantean una división en la gente que no es realista. Las tecnologías son solo herramientas y como tales hay unas que son buenas para clavar clavos y otras para apretar tornillos, esto no las hace ni mejores ni peores. Existen algunas herramientas que tiene más de un uso y otras que son más especializadas eso es todo. Lo importante como desarrollador es que no te aferres a al lenguaje que sabes usar como si fuera un credo infalible y te ofendas cuando alguien que maneja alguna otra tecnología señala fallas de la que tú sabes usar y trates de defenderlas ciegamente. Lo importante es que mantengas la mente abierta y que agregues más de esas tecnologías a tu caja de herramientas y te hagas un desarrollador más completo. Quieres ser un mejor desarrollador PHP? Simplemente aprende Java, Python, Scala, Lingo, C o cualquier otro lenguaje.
Me parece muy bueno el comentario de Chepech, Agradesco las aclaraciones.
Yo he programado en fox para DOS, Visual basic, y fox para Windows casi 10 años, luego cambie de rumbo, ahora ya llevo otros 10 años sin programar pero deseo actualizarme y estaba buscando justo este tipo de comentarios para ver que aprender, quiero desarrollar una web que maneje base de datos pero que no necesite mucho hardware, recien lo estoy investigando. me refiero a poder instalrlo todo en un solo servidor dedicado.
Estoy pensando aprender Java con .Net. para poder desarrolar un sistema de almacen. O que me recomiendais.
Hola Álvaro.
Puedes ver que hay pros y contras en cualquier herramienta que elijas para hacer tus desarrollos.
También es sabido que las tecnologías evolucionan y cada vez aparecen más y mejores.
Tanto como una recomendación no. solo te digo que a nosotros nos ha funcionado el trabajar con php.
Tú tienes la última palabra.
Visita las redes de Rhiss.net
http://facebook.com/rhissnetweb
http://Twitter.com/rhissnet
Es muy interesante la información publicada.
Arriba PHP dejen el fanatismo con las tecnologias que nisiquiera probecho le sacan…
PHP, write less, do more !

Saludos