← Ir a portada

¿Está PHP preparado para la empresa?

Leyendo el artículo de la infoQ sobre si PHP está preparado para la empresa, me vienen varios pensamientos a la cabeza. En primer lugar, preguntarse si un lenguaje está “preparado para la empresa” me parece muy del mundo Java. A día de hoy no sé muy bien qué significa. Y, en segundo lugar, sigo en mis trece con la “tendencia” que comenté en un artículo anterior: creo que los lenguajes de backend están perdiendo importancia. Dicho esto, ¿está PHP preparado para la empresa? Descomponiendo ésta pregunta en subpreguntas:
¿Permite PHP técnicas ágiles como pruebas unitarias, funcionales, integración contínua, etc?
SI (, , , etc.)
¿Permite PHP aplicar metodologías ágiles de gestión de proyectos como SCRUM, etc?
Dado que esto no tiene que ver con el código… ¿Cómo no?
¿Tiene PHP los suficientes mecanismos de POO, patrones y buenas prácticas?
Zend Framework es una buena demostración de la posibilidad de escribir programas MVC, active record, con ´s, Conventions over Configurations, etc.
¿Qué tal funciona PHP cuando hace falta alto rendimiento?
Cuando se trata de aguantar a millones de usuarios, PHP no tiene competidor. Está demostrado que ofrece mayor rendimiento que Java y, por supuesto, que Ruby. Cuando la clave no está en tener muchos usuarios sino en tener complejas transacciones con bases de datos, normalmente se confía en Java (el rey del software bancario). Por mucho que Oracle siga gritando que se puede utilizar perfectamente PHP para estos menesteres.
¿Ofrece algunas ventajas sobre los otros lenguajes?
PHP es, sin duda, el rey del software libre. Y prueba de ello son desarrollos como , el rey del , MediaWiki, el rey de los wikis, (nadie le iguala en plugins y themes, y es un potentísimo CMS) y es el lenguaje que permite tener un hosting más barato.
Entonces, ¿es el mejor lenguaje, plataforma, y sólo deberíamos desarrollar en PHP?
Pues no, claro. Si quieres hacer una aplicación no-web, en PHP lo tienes difícil (a menos de que sea con Flex). Aunque PHP permita montar un marco de desarrollo realmente profesional, no obliga y permite chapucear a base de bien, hay que tener más cuidado que en otros lenguajes, por ejemplo. Y es verdad que hasta ahora le faltaban mecanismos básicos de distribuión de código como PHAR o Namespaces.

Apuntes relacionados:

20 Respuestas a “¿Está PHP preparado para la empresa?”

  1. blaxter dice:

    Eso de que php tiene mayor rendimiento respecto a java, ¿en qué te basas? No tiene ni pies ni cabeza [0].

    En mi opinión, php no está preparado para la empresa debido a ser un lenguaje con un diseño muy pobre.

    [0] http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=java&lang2=php&box=1

  2. Muy de acuerdo con lo que dices salvo en un matiz.

    Estando de acuerdo que Moddle es una excelente plataforma de e-learning, tiene unos consumos de Servidor Apache muy elevados.

    En cuanto a mi anterior comentarista, está demostrado que la simplicidad y eficacia de PHP con respecto a JAVA hace que sea una herramienta muy eficaz. Las posibilidades de crear objetos en PHP están más que probadas, siempre y cuando se utilicen bien las funciones y estilos correctamente. Para conseguirlo, es preciso que el programador colabore con otras personas en el momento de configurar bien los recursos y además de ser cuidadoso con el diseño.

    PHP ofrece estabilidad y rapidez de descarga al cliente, mientras que JAVA no ofrece eso. Además de las limitaciones de compatibilidad con distintos tipos de navegadores.

    Yo prefiero PHP sin ningún género de dudas.

    Buen post

  3. blaxter dice:

    @Enrique, Simplemente he comentado que en términos de rendimiento, Java es superior a PHP, de forma más que obvia. Me ha llamado la atención que en el post se nombrase justo lo contrario de forma tajante y sin despeinarse, “se ha demostrado que ofrece mayor rendimiento que Java”, WTF?.

    ps: ni defiendo java (eso nunca), ni a php, ni a ningún lenguaje.

  4. Damian dice:

    El último comentario demostró la poca idea que tiene con su anteúltima oración:
    “Además de las limitaciones de compatibilidad con distintos tipos de navegadores.”

    Evidentemente no tiene ni la más remota idea de qué estamos hablando aquí. Compatibilidad entre navegadores? Te estarás confundiendo con JavaScript que es un lenguaje que nada tiene que ver con Java. Aquí hablamos sobre tecnologías del lado del servidor, los navegadores no tienen absolutamente nada que ver.

  5. Damian dice:

    Me refería al comentario de Enrique.

  6. Luis Artola dice:

    Hola Blaxter!
    Que PHP es MUY superior a Java en rendimiento es un hecho más que contrastado. Ahora mismo me estoy refiriendo al rendimiento como la escalabilidad del sistema, no como la velocidad de desarrollo… ojo.
    Te dejo un link para que le eches un vistazo!

    http://www.programania.net/diseno-de-software/javaphp-y-ruby-nueva-comparativa/

  7. Damian:

    JS (JavaScript) es una cosa y JAVA efectivamente otra muy distinta. También coincido que el lenguaje de programación de JAVA es mucho más complejo que el JS. Pero afortunadamente, en el código de JS está perfectamente documentado el tema de compatibilidad de navegadores http://w3schools.com/js/js_browser.asp
    es cuestión de introducir bien el código y cumplir los estándares fijados.

    ¿Se puede decir lo mismo de JAVA sin necesidad de instalar parches en el equipo del cliente? http://www.java.com/es/download/manual.jsp

  8. Luis Artola dice:

    Hola Enrique….

    la verdad es que no sé hacia donde caminas con el tema de la compatibilidad de JAVA y los estándares de los navegadores… arrójanos algo de luz por favor!

  9. Luis:

    Vamos…no es lo mismo un código PHP que acepte cualquier tipo de máquina que soporte cualquier tipo de sistema operativo o navegador vs. JAVA donde el usuario tenga que descargarse un parche para poderlo ver (amén de actualizar)

    Afirmar que JAVA es superior que PHP (como decían Damian y Blaxter) no me parece del todo correcto.

    ¿Qué JAVA es compatible? si… para geeks si, pero la inmensa mayoría de usuarios/as de la Net no.

  10. Luis Artola dice:

    Hola Enrique, ¿y para qué tiene que bajarse un parche alguien para ver una página desarrollada con Java? Me parece que estás mezclando algún concepto por ahí…

    Java es el principal lenguaje de desarrollo utilizado en el mundo… digamos que algo más que para “geeks”… :-D :-D

  11. Rubén dice:

    Creo que la cuestión sería más bien:

    ¿Está el programador de PHP preparado para la empresa?

  12. Luis Artola dice:

    Hola Rubén,

    eso si que me parece un mito. No porque en PHP haya grandes programadores, hay programadores buenos y malos, como en todos lados. El mito me parece que se crea que en Java, por ser Java, los programadores ya son buenos.

    Mito mitiquísimo! :-D

  13. Dani Latorre dice:

    Estoy con blaxter, java tiene mayor rendimiento que php, básicamente porque rendimiento!=escalabilidad.

    Cuando hablamos de que php escala bien, no hablamos del rendimiento del lenguaje, lo hacemos de la facilidad para escalar donde sí destaca php.

  14. Luis Artola dice:

    Hola Dani!

    entonces… a qué te refieres tú con rendimiento?

    Un saludo!

  15. Dani Latorre dice:

    Hola Luis,

    Cuando me refiero al rendimiento de un lenguaje de programación, me refiero a lo rápido que es ejecutando operaciones. Aunque dependiendo del tipo de operación puede variar cuál es más rápido, como cuál consume más memoria.

    En el enlace que ha compartido blaxter hay un benchmark comparativo de php y java donde también puedes ver el código de cada test, puedes ver los valores absolutos en estos dos enlaces:
    http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=php&lang2=php&box=1
    http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=java&lang2=java

    Yo no puedo asegurar que java tenga mejor rendimiento que php en todos y cada uno de los escenarios que se le ocurran a cualquiera, pero sí en muchos. Hay bastantes casos conocidos donde el frontend se desarrolla por ejemplo con Ruby/PHP/Python/… y para el backend, por ser operaciones computacionalmente más costosas, lenguajes más rápidos como java/c/c++ (a bote pronto se me ocurren facebook, google, yahoo…)

    Y claro, tampoco está directamente relacionada la velocidad de un sistema con la capacidad/facilidad para escalar, ni viceversa.

  16. Luis Artola dice:

    entiendo.
    La verdad es que yo de lo que estaba hablando en el artículo es de escalabilidad. Debería haberme explicado mejor.

    Además, creo que la escalabilidad es lo importante en estos casos, más allá del rendimiento por operación, ya que a la hora de la verdad, cuando miles de usuarios estén accediendo, es lo que más te va a importar.

    Si lo que buscas es velocidad por operacion… pues te vas a C o a lenguajes sin máquina virtual… no?

    De todas formas yo pensaba que la gente de Java se me iba a echar más encima con mi afirmación de que puedes hacer transacciones igual de buenas en PHP que en Java… esa me parece una discusión más difícil de defender (que es a lo que creo que te refieres tú con el ejemplo del facebook, más que al coste operacional, sino al coste transaccional.)

    por cierto, tienes por ahí algún link que pueda vampirear donde se explique la arquitectura de facebook, y donde ponga que el backend va en Java, o como sea? me parece muy interesante…

  17. Dani Latorre dice:

    Martín Pérez ha escrito alguna vez sobre la arquitectura de facebook(http://brigomp.blogspot.com/2009/04/notas-sobre-la-arquitectura-de-facebook.html), un ejemplo conocido de servicio hecho en java(hadoop) es su datawarehouse (http://brigomp.blogspot.com/2009/05/mas-sobre-facebook-esta-vez-hadoop-y.html)

    Yo soy de la opinión que al menos en web casi con cualquier lenguaje se pueden dessarrollar la mayoría de proyectos que hacemos los “mortales”. Más que las herramientas, es una cuestión de quién las utiliza y a partir de que arquitectura se trabaja.

    Sobre escalabilidad, se dice que php escala bien porque es más “fácil” añadir servidores(escuchado de gente de sistemas a la que le ha tocado pelearse bastante), pero hay que tener en cuenta que un cuello de botella típico es lo relacionado con la persistencia de datos(por eso en mi opinión tiene más peso la arquitectura)

    Por cierto, que cada vez que se habla si PHP/Ruby/Python/etc están preparados para la “enterprise”… ya sea a favor o en contra, les presto poca o ninguna atención, porque suelen referirse a macro-corporaciones y ahí tienen muy difícil entrar, y más que por cuestiones técnicas, por la inversión que ya tienen infraestructura. Para empresas “de las otras”, juraría que hace un tiempo que han emepezado a entrar ;)

    Saludos!

  18. Luis Artola dice:

    hola otra vez!

    muy buena pinta esos links… gracias!

  19. Aunque el articulo de análisis le falta mas sustanciación para llagar a la conclusión. la idea general es muy completa. Estoy de acuerdo con la pregunta de Ruber ¿Está el programador de PHP preparado para la empresa?, en la respuesta personal esta la diferencia.

  20. Aunque el articulo de análisis le falta mas sustanciación para llagar a la conclusión. la idea general es muy completa. Estoy de acuerdo con la pregunta de Ruben ¿Está el programador de PHP preparado para la empresa?, en la respuesta personal esta la diferencia.

Deja un comentario