lunes, 22 de octubre de 2012

Java vs PHP - La mentalidad de aquel.

Java y PHP, ambos son buenos, ambos son malos, depende de para qué lo vas a usar.  Primero SACATE DE LA CABEZA LA RETROGRADA IDEA de "el mejor lenguaje".  Arranquemos por aqui.

En lo personal, tengo años de experiencia en C, C++, Java, PHP y otros mas que no vienen al caso. Porqué tantos lenguajes...para impresionar ? NO.  Para cubrir necesidades y lograr objetivos ? SI.

Hay gente con problemas personales muy severos que los hacen creese seres superiores hijos de la nasa solo porque aprendieron a programar en un lenguaje, quizá en dos...ahí dándole...Conozco mucha gente que te presenta el gran software que han hecho en java como si eso les garantizara su perfección.

Si ellos supieran que dirían todos mis colegas que como yo se ganan su dinero haciendo software serio día a día en proyectos que incluyen piezas de software hechas a veces en casi todos los lenguajes conocidos.  Será que somos idiotas ? Yo en realidad creo que si, porque por ahí hay gente que se dice que los idiotas no programan en java porque para ellos es muy difícil.

El mal software:

* Solo él y dios comprenden el código hecho ahí. (tu no entiendes su trabajo porque es para genios de la nasa, y obviamente tu no debes ser uno de ellos).

* No tiene la menor planificación de software, y la arquitectura..pues bien, según su creador es obvia porque él es un genio y su software esta hecho para gente inteligente, no para brutos. Según él. (Debe ser verdad, digo yo).

* Su cliente (el pobre ser inferior que lo contrató para hacerle el sistema) debe  amoldarse a las genialidades del creador. (No vamos a molestar al genio para que nos ayude a automatizar un proceso de negocio...debemos amoldarnos a lo que él nos hizo, sino se va..y que será de nosotros sin él.)

A veces Java, A veces PHP, a Veces C++... y a veces un pizarrón...

Todo depende de cual es el que mejor beneficia a la solución que el cliente necesita. Ni mas allá, ni mas acá.

Ejemplo complejo:

Supon que te tocase hacer un reporte de ventas de todas las sucursales de una empresa internacional.

Que harías en PHP ? conectarte a cada una ? pasando por internet asi a rin pelao..? conectandose y desconectandose...yendo de aqui para allá ejecutando scripts por todas partes ? y si un server falla ? y si las sucursales tienen distintos modelos de datos en cada una ? que haras ? si se puede en PHP...pero el camino es terrible...por tanto NO ES LA SOLUCION, y ademñas por razones de que hay muchos desarrollos involucrados en cada sucursal no será factible, será un código complicado y seguramente inestable e inseguro..no por PHP sino por TI. He aqui la diferencia.

Has oido acerca de Glassfish ?  Pues bien, con esta herramienta resuelves un problema de software complejo, en Java principalmente, para que procesos de negocio compartan distintas fuentes de datos de forma unificada.  En este caso de ejemplo de sucursales que tienen muchas bases de datos, y peor aun, distribuidas en servidores distintos de distintos paises con distintas interfaces y configuraciones JAVA es la solución, porque su madurez como lenguaje, la arquitectura de sus paquetes y la fuerza que provee permite solucionar.  Quiza en PHP también lo hagas, y muy bien, pero lo liviano como PHP trata a los errores de tipeado te jugará una muy mala pasada por tanto no será la mejor solución.

Y C++, que harás en C++ en ese cliente con sucursales de ejemplo ?  Quiza drivers, quiza servicios, quiza recolectores de datos en bajo nivel, o procesos de actualización o lo que sea que necesite ejecutarse para una máquina específica, digamos una maquina corriendo en Linux y otras en Windows. No vas a hacer la interfaz de usuario web en C++ aunque podrías, porque gastarás demasiado tiempo reinventando la rueda. Por tanto, C++ serviría para un propósito bien definido.

Y el pizarrón ?

Aunque no creas, a veces un proceso de usuario se vuelve mas facil de manejar en una pizarra con cintas y cuadrículas que luego se llevan a un equipo de cómputo.  Sino pregúntale a los que fabrican software para barcos de guerra...ellos tienen mucho software que automatiza casi todo, pero hay cosas que solo los humanos saben hacer bien mediante un dibujo.

CADA LENGUAJE ES UNA HERRAMIENTA PARA RESOLVER UNA DETERMINADA CONDICIÓN DE UN PROCESO DE NEGOCIO DEL CLIENTE.

(no existe el mejor lenguaje, ni el lenguaje de los "bravos", ni el de los "idiotas". Solo existen "idiotas" que creen lo contrario y lo gritan a toda voz solo porque ese día aprendieron a programar en un lenguaje)





12 comentarios:

  1. Muy buen punto de vista! me gusto tu articulo y pues yo programo en php y me gusta mucho, pero no estoy cerrado a él

    ResponderEliminar
    Respuestas
    1. exacto, esa es la clave. no cerrarse, no creer que porque usas java ya eres un genio....mucha gente asi lo cree, sino mira los comentarios aqui mismo y veras a que me refiero..

      Eliminar
  2. Yo programo en php por ahora, he programado en java y .net, y es verdad christian, como dice este articulo hay gente que es perfecto ya porque programa en java, vaaaaaaaa, el secreto es hacer bien las cosas y satisfacer en cualquier lenguaje y ya dependera del requerimiento y la economia de que disponga el cliente.

    ResponderEliminar
  3. Hola!!
    Me gusto tu articulo. Ando buscando hace tiempo a una persona que pueda resolver mis necesidades de programación. Alguien que entienda bien el resultado final que esperamos y sepa como programarlo en el mejor lenguaje que nos brinde seguridad eficacia y eficiencia.
    Intente encontrar información de contacto pero no halle no se si porque no se usar bien estas tecnologías (lo mas probable). Lo único que averigüe es que estas en Venezuela.
    Bien Nuestra empresa esta en México, y antes de contarte mas sobre nuestros proyectos me gustaría saber si estarías interesado en trabajar con nosotros y que tanta disponibilidad de tiempo tienes por tu agenda y compromisos actuales.
    Te dejo mi correo y espero saber de ti pronto.
    Saludos Cordiales
    Alberto Legorreta
    email: albertt7778@hotmail.com

    ResponderEliminar
  4. El mejor comentario sobre lenguajes de programación que he leído en 40 años.

    ResponderEliminar
  5. Jajajaja eso dicen los inútiles que jamas pudieron programar en java.

    ResponderEliminar
    Respuestas
    1. (comunidad: Aqui tienen una muestra de la razón de este post, solo que no se identifica).

      Eliminar
    2. En parte tiene razón muchos critican a JAVA y suele ser muy molesto, cuando ni siquiera lo conocen.

      Eliminar
  6. Para aplicaciones web creo mi recomendación es JAVA EE, .NET ó PHP/Frameworks MVC ORM. Cuando estamos usando bases de datos MUY grandes, o transacciones MUY concurrentes es otro tema.

    ResponderEliminar
  7. Amén, yo trabajo con aplicaciones muy cercanas al tiempo real, para un mercado muy exigente en cuanto a estabilidad y rendimiento.

    Históricamente se optó por C++ y ADA, pero hoy poco a poco vamos consiguiendo que para algunos desarrollos menos críticos se opte por JAVA.

    El problema es cuando llegan los 'vendemotos' que sin tener ni idea de lo que se hace y por qué se hace, empiezan a decir que tenerlo todo en ADA y C++ es un anacronismo y que hay que 'tirarlo y rehacerlo en Java', como si Java fuese la respuesta a todos los problemas.

    Claro, las discusiones son de órdago, porque no entienden o no quieren entender que si bien Java tiene unas virtudes, también las tienen C++ o ADA.

    ResponderEliminar
    Respuestas
    1. bueno para muestra un botòn, puedes leer los comentarios en este post mas arriba y veras que no eres el unico con este problema. Solo la gente sin real experiencia se va de bruces con el lenguaje que mejor sabe manejar, sin considerar que ser programador implica programar en el lenguaje que mejor se adapte a la situaciòn.

      Eliminar