domingo, 10 de enero de 2010

Java vs PHP

Me gustaría reproducir aquí una discusión muy interesante sobre Java y PHP (y sobre Moodle y Sakai) que ha tenido lugar en la lista de distribución de e-learning de Red Iris.
Tengo el permiso de todos los usuarios para copiar aquí sus mensajes así que, aunque incluiré la referencia directa a la lista de Red Iris, incluiré el mensaje original y...¡que la discusión comience!

6 comentarios:

  1. Al hilo de la comparación de la tecnología que subyace a Sakai y Moodle (Java y PHP), un interesante análisis comparando ambas en este breve articulo:http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=PHPVsJava.
    Espero que sirva de vuestro interés(aunque sea un poco tecnico).
    Jorge Dieguez

    ResponderEliminar
  2. Hola a todos,

    personalmente discrepo totalmente con la afirmación de que Java es una
    tecnología superior a PHP.

    Antes que nada mi curriculum:

    Programando en PHP desde el año 2000 aproximadamente
    He desarrollado en Java, tanto en entornos de escritorio con Netbeans y
    Eclipse como J2EE. Eso sí, en mucha menor medida que PHP pero conozco la
    tecnología por haber convivido con entornos Java unos cuantos años
    Hago desarrollos para Moodle desde su versión 1.1

    Creo que este es un debate bastante antiguo y hacía tiempo que no leía
    una de estas discusiones, creo que decir que Java era superior a PHP se
    podía decir en el año 2003 pero en el año 2010 no tiene lugar.

    Personalmente creo que no es adecuado comparar Java y PHP dada la
    finalidad de cada una:
    Si bien ambas o parte de ambas están orientadas al desarrollo de
    aplicaciones en entornos cliente / servidor principalmente en Internet,
    el tiempo y los muchos años de ambas tecnologías ha puesto cada una en
    su lugar:

    Java -> ámbito empresarial, orientado a "negocio" (banca, intranets
    corporativas, gestores documentales, portales empresariales)
    Ejemplos: Liferay, Alfresco, OpenBravo, Bancos como LaCaixa, etc..

    PHP -> blogs, cms, sitios de noticias, red social
    Ejemplos: Wordpress, facebook, flickr, drupal, joomla, ez, youtube,
    wikipedia, elpais, elmundo, meneame.net

    Ahora os paso a revatir o dar mi opinión de cuestiones en concretas

    /Mejor escalabilidad/

    Esta me gusta especialmente. ¿Flickr no escala, Facebook no escala,
    Wikipedia no escala?
    Estamos hablando de que actualmente bajo PHP están funcionando muchas de
    las webs con más tráfico en el mundo. Y os aseguro que para eso hace
    falta escalar o tener una tecnología que soporte escalabilidad.

    En Moodle tenemos a la Open University con miles de usuarios.

    En Java tienes escalabilidad a golpe de talonario y crecer en horizontal
    (metiendo servidores con muucha RAM y mucha cpu).


    /Mejor posibilidad de integración/

    A bajo nivel:
    PHP se integra con todo lo habido y por haber, la base de PHP es C, en C
    hay libererías para integrarse con cualquier
    servicio/aplicación/protocolo, con PHP simplemente hay que hacer un
    wrapper y ya tienes integración nativa.

    A mayor nivel:
    Webservices soap, xmlrpc, rest, etc...
    Conexión con cualquier tipo de base de datos PDO, ADODB
    Servicios de directorio como LDAP


    /Mejor mantenimiento/

    El mantenimiento de una aplicación en gran medida no lo da la
    tecnología, lo da el programador o el framework utilizado para el
    desarrollo realizado.
    He visto chapuzas en Java que nadie podría mantener y desarrollos en PHP
    utilizando MVC con el Zend framework que son una maravilla.

    En el caso de Moodle hay que tener en cuenta que empezó como un hobby
    por parte de gente que no eran programadores expertos en PHP en una
    época en el que el lenguaje no es loque es ahora y hay muchas decisiones
    de base que afectaron a su arquitectura y que aún tienen implicaciones.
    Os invito a echar un ojo al código fuente de Moodle de los programadores
    profesionales que la empresa Moodle ha contratado como Petr Skoda, Sam
    Marshall o muchos otros así como a las últimas decisiones de
    arquitectura que se están tomando. Todo es público en http://docs.moodle.org
    (Sakai por ejemplo se empezó a desarrollar con una financiación inicial
    de 7 millones de dólares si no recuerdo mal por un equipo profesional)

    Por otro lado, mantener Moodle es muy sencillo. Hay herramientas como
    XREF, http://xref.moodle.org que permiten navegar por su código fuente,
    encontrar referencias, llamadas a funciones etc... en pocos minutos

    Podría hablar de muchas características más de Java y PHP pero eso es
    otro debate.

    No creo que Sakai sea mejor que Moodle o más apropiada por su base
    tecnológica, esto no es cierto. Otra cuestión es que si tu institución
    es toda Java y tienes gente ya preparada en ese lenguaje se opte por Sakai.

    Saludos
    Juan Leyva Delgado

    ResponderEliminar
  3. Estimado Dr. David Roldán Martínez

    Reciba un saludo, cuenta con una lista o parametros estandarés para la evaluación de plataformas educativas. Me podria ayudar con una lista. Muchas gracias.

    ResponderEliminar
  4. Hola Pedro,
    Aquí tienes una presentación en la que encontrarás la información que me pides. De todos modos, si necesitaras más, házmelo saber pero te pediría que lo hicieras a través de éste post

    ResponderEliminar
  5. Saludos desde Perú

    Mi nombre es Miguel, soy docente y trabajo en eLearning desde el 2002. Hace más de un lustro preparé una presentación sobre un entorno gratuito basado en Java, para proponerlo como alternativa frente a nuestro costoso LMS. ¡Y no funcionó! Hay muchos nodos y redes con restricciones hacia aplicaciones Java. Adicionalmente, al trasladar los procesos a la PC cliente, los vuelve lentos; eso les pasaba a quienes trabajaban en otras ciudades (con conexiones de por sí lentas).

    ResponderEliminar
  6. Hola Miguel,

    Java (y PHP) ha evolucionado mucho desde hace 5 años. No creo que las conclusiones a las que llegaste entonces sean muy aplicables a la actualidad, la verdad.
    Además, si utilizas tecnologías como JSF en donde el procesamiento costoso se hace en el servidor, la carga sobre el cliente es similar.
    ¿Tienes alguna referencia del LMS al que te refieres?
    Muchas gracias por colaborar.
    David

    ResponderEliminar