Java,PHP y Ruby : nueva comparativa

Con motivo de la última PHP Conference, Tim Bray (alto directivo de Sun Microsystems) tuvo la oportunidad de comparecer y realizar una comparativa entre la plataforma Java (de Sun Microsystems) y otras opciones en auge. He aquí la gráfica de la polémica:

Lo de que PHP es más escalable ya lo teníamos claro. También estoy de acuerdo en que la velocidad a la hora de desarrollar software es mayor en los lenguajes de scripting (PHP y Ruby) que en lenguajes de tipado fuerte como Java.

Respecto a las capacidades de las herramientas de desarrollo, las de Java son incomparables. Para mí tienen tres puntos distintivos:

  • Compilación: mientras los lenguajes de scripting deben ejecutarse para detectar problemas de dependencias o errores de sintaxis, en lenguajes de tipado fuerte como Java tienes la posibilidad de chequearlo antes. Esto, hoy día, no es muy importante. Gracias a que todas las IDE´s modernas incluyen chequeo de sintaxis, puedes detectar muchos errores antes de la ejecución. Y si sigues una filosofía de pruebas unitarias conseguirás detectar muchos más errores que con cualquier compilación.
  • Refactorizaciones automáticas: es la estrellas de las IDE´s de Java. En los lenguajes de scripting no existe nada parecido. Como ejemplo sencillo, si cambiamos el nombre de una clase, los IDE´s de java buscarán dónde se usaba esa clase y la cambiarán de nombre, compilándolo todo otra vez para ver si da algún problema. Actualmente, en otros lenguajes, algo tan simple como el cambio de nombre de una clase puede convertirse en un enorme quebradero de cabeza. Por supuesto, las refactorizaciones automáticas ofrecen opciones mucho más potentes de lo que yo he puesto aquí.
  • Generación automática de UML: a la hora de realizar documentación UML es la estrella. Y a la hora de generar documentación automática los lenguajes de tipado fuerte ofrecen mucha más información que los de scripting y permiten realizar documentación más rica y detallada.

Lo que más polémica ha suscitado de la gráfica, es el tema de mantenimiento. Tim Bray afirma que PHP está a la cola en ésta materia. Si se estuviera refiriendo a las herramientas que existen para mantener el código, podría entenderlo. Pero esa característica ya la ha comparado antes. Se refiere a la calidad del código que se escribe y a lo mantenible que éste puede ser. En mi opinión PHP ofrece casi los mismos mecanismos de orientación a objetos que el resto de lenguajes comparados. No creo que esté tan a la cola…

Muchas voces han salido al paso de las declaraciones de Tim. Aquí os dejo una interesante opinión.

4 Comentarios

  • 1. miguel  |  noviembre 17th, 2006 at 1:15 pm

    “En mi opinión PHP ofrece casi los mismos mecanismos de orientación a objetos que el resto de lenguajes comparados”

    estas de coña?

  • 2. Luis Artola  |  noviembre 17th, 2006 at 5:43 pm

    jajaja, hombre.. quizá he pasado un poco por encima del tema. Pero frece todos los mecanismos básicos de orientación a objetos como extensiones, interfaces, visibilidades y la posibilidad de diseñar la mayoría de patrones…

    de todas formas… ¿cuál es tu principal crítica? “estás de coña” es difícil de debatir….

  • 3. Blaxter  |  marzo 5th, 2008 at 5:19 pm

    Si tuviese que ordenar los cuatro puntos:

    Mantenimiento
    Velocidad de desarrollo
    Escalabilidad
    Herramientas

    Con una diferencia considerable entre mantenimiento y el resto.

  • 4. Luis Artola  |  marzo 5th, 2008 at 7:06 pm

    Si: la regla 80-20 dice que nos pasamos el 80% del tiempo manteniendo código y sólo el 20% creando código nuevo… con lo que yo también opino que el mantenimiento es lo más importante …

Comenta el articulo:

Requerido

Requerido,