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)
(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)