Escribo este post al hilo del artículo que he leido en dosideas.com. En él, se habla de las habilidades que debería tener un programador para tener un currículum relevante en los próximos cinco años:
A partir de este artículo, estuve debatiendo con algunos compañeros y saqué algunas conclusiones que quiero plasmar aquí.
Pienso que el artículo es un poco mejorable, dada la arbitrariedad con la que se han escogido los conocimientos a adquirir. De hecho, muchas de esas habilidades hay que tenerlas en el presente (yo cumpliría de 9 a 10).
Me voy a centrar en el punto 1, uno de los "3 Grandes" (Java, .NET, PHP). Antes de hablar de "grandeza", habría que definir el criterio de comparación. Si la grandeza es la demanda de programadores en términos absolutos (no porcentajes), esos si son los tres grandes lenguajes, sin lugar a dudas. Pero lo son ahora. De hecho, en 1999, por ejemplo, no lo eran, y puede que dentro de cinco años no lo sean.
En 1999, Java y PHP estaban en el punto que están hoy Python y Ruby, y .NET no existía. Por entonces se demandaba C++, Oracle Forms, Delphi y Visual Basic. Erróneamente hay gente que piensa que la demanda de Cobol era grandísima, cuando era muy similar a la que hay ahora, Software Legacy y mantenimiento de aplicaciones críticas (como por ejemplo las de los bancos). Es verdad que por entonces los lenguajes dinámicos orientados a web (PHP y ASP) experimentaron un fortísimo crecimiento.
Si miramos al futuro, ya hay mucho camino recorrido gracias a las aportaciones de los distintos tipos de lenguajes al mundo del desarrollo de software. Creo que el futuro de Python es muy prometedor, ya que además de reciclar aspectos que ya hacía bien Java, aporta sencillez y un incremento en el rendimiento de los desarrolladores que usan este lenguaje. Python va a crecer en proporción a lo que Google siga apostando por él. Sin embargo creo que Ruby se quedará en el camino por muchos motivos (soporte, complejidad, madurez, anarquía...).
Hay gente que opina que PHP es anárquico y ha sido ampliamente aceptado, pero, ¿qué aporta Ruby sobre PHP? PHP demostró que se podían hacer sitios webs dinámicos, multiplataforma, y en software libre de forma muy sencilla. Lo que aporta Ruby sobre PHP aun no lo he descubierto.
También los hay que opinan que Java es el nuevo Cobol o el nuevo C++, y yo vuelvo a discrepar. En cierta medida es más que Cóbol por el número de aplicaciones que se han desarrollado (más allá de su criticidad). Además, el código Java es mucho más mantenible, gracias a la arquitectura de tres capas (aunque el patrón es independiente del lenguaje, las aplicaciones Cobol eran desarrolladas por matemáticos y físicos que ignoraban los patrones de diseño y otras técnicas de ingeniería del software), pudiéndose incluso cambiar la interfaz gráfica quedando la lógica de negocio y/o el dominio como capas que se pueden mantener o no de manera independiente.
Sinceramente Cobol nunca ha aportado gran cosa. Si no estuviera implantada como solución corporativa de los bancos, no nos acordaríamos ni de su nombre.
En cuanto a C++ revolucionó sobretodo la parte gráfica de las aplicaciones. Su orientación a objetos era artificiosa por culpa de la retrocompatibilidad con C (Ansi C está totalmente contenido en C++). Depurar un error a causa de un "puntero loco", podía consumir semanas, y eso sin contar que nunca estabas totalmente seguro de que el arreglo no conllevara efectos colaterales. Realmente el lenguaje "pata negra", y que sigue siendo requerido en muchas empresas (sobretodo de microelectrónica) es el C.
Aportaciones de Java al mundo del desarrollo software:
Java no se ha quedado estancado, se ha adaptado a la programación Orientada a Aspectos (más allá de la orientación a objetos con el framework Spring, por ejemplo), y tiene la comunidad de desarrolladores más amplia del mundo.
Además Java abarca: aplicaciones de escritorio, web, móviles y servicios. Es decir, se puede hacer todo.
Si a eso, le sumamos su aportación en el mundo de la Orientación a objetos (fue el primer lenguaje OO puro y que funcionara), persistencia de objetos (Hibernate, IBatis, JPA), ORM (Hibernate), servicios web (REST, SOAP con Axis), frameworks gráficos (SWT, RCP, AWT, Swing), frameworks MVC (Struts), frameworks web (JSF, Struts, Struts2), adaptación total a UML, pruebas unitarias (JUnit, Testng), logeo en consola (Log4J), dos fantásticos IDEs libres multilenguaje (Netbeans y Eclipse), y todo ello multiplataforma (de manera transparente al programador), podemos concluir que la aportación de Java al mundo del desarrollo software es muy superior a lo que pudo aportar en su día, Cobol, y C++.
Mercado actual
Ahora mismo el 60% de los proyectos que nos llegan son en Java (Web + Movilidad). Me ha sorprendido ver como PHP ha crecido hasta el 30% en época de crisis. Me gustaría encontrar una explicación a este crecimiento (quizás como consecuencia de los CMS Drupal y Joomla que han alcanzado un grado altísimo de madurez). Sin embargo los proyectos en .NET se han reducido. Esto puede tener sentido como consecuencia del coste de licencias, y debería de paliarse con Mono (plataforma para desarrollo libre de aplicaciones .NET), pero no termina de hacerse su hueco, pese a que C# me parece un muy buen lenguaje.
Me gustaría tener demanda en Python, para poder tener algo de tiempo para formarme, pero actualmente no la hay (en mi caso particular, y en Andalucía en general).
Futuro
Dentro de cinco años seguirá habiendo trabajo para desarrolladores PHP y Java.
El desarrollador mejor formado, y más maduro, debe abarcar varios lenguajes y frameworks, eso le dará una perspectiva y una experiencia superior al que solo domine un lenguaje. Esa ha sido mi experiencia personal.
Creo que cada vez será menos importante "con qué se programe", el paradigma al que se tiende es Software as a Service (SaaS) - Cloud Computing (aquí hay una primera aproximación). Apuesto por SOA (arquitectura orientada a servicios), donde lo importante son los servicios y la interoperatividad, no el software de las "tripas".
1. Uno de los "3 Grandes" (Java, .NET, PHP)
2. Aplicaciones Ricas de Internet (RIA - Rich Internet Applications)
3. Desarrollo web
4. Servicios web
5. Habilidades humanas
6. Un lenguaje de programación dinámico y/o funcional
7. Metodologías ágiles
8. Conocimiento de dominio
9. "Higiene" de desarrollo
10. Desarrollo móvil
A partir de este artículo, estuve debatiendo con algunos compañeros y saqué algunas conclusiones que quiero plasmar aquí.
Pienso que el artículo es un poco mejorable, dada la arbitrariedad con la que se han escogido los conocimientos a adquirir. De hecho, muchas de esas habilidades hay que tenerlas en el presente (yo cumpliría de 9 a 10).
Me voy a centrar en el punto 1, uno de los "3 Grandes" (Java, .NET, PHP). Antes de hablar de "grandeza", habría que definir el criterio de comparación. Si la grandeza es la demanda de programadores en términos absolutos (no porcentajes), esos si son los tres grandes lenguajes, sin lugar a dudas. Pero lo son ahora. De hecho, en 1999, por ejemplo, no lo eran, y puede que dentro de cinco años no lo sean.
En 1999, Java y PHP estaban en el punto que están hoy Python y Ruby, y .NET no existía. Por entonces se demandaba C++, Oracle Forms, Delphi y Visual Basic. Erróneamente hay gente que piensa que la demanda de Cobol era grandísima, cuando era muy similar a la que hay ahora, Software Legacy y mantenimiento de aplicaciones críticas (como por ejemplo las de los bancos). Es verdad que por entonces los lenguajes dinámicos orientados a web (PHP y ASP) experimentaron un fortísimo crecimiento.
Si miramos al futuro, ya hay mucho camino recorrido gracias a las aportaciones de los distintos tipos de lenguajes al mundo del desarrollo de software. Creo que el futuro de Python es muy prometedor, ya que además de reciclar aspectos que ya hacía bien Java, aporta sencillez y un incremento en el rendimiento de los desarrolladores que usan este lenguaje. Python va a crecer en proporción a lo que Google siga apostando por él. Sin embargo creo que Ruby se quedará en el camino por muchos motivos (soporte, complejidad, madurez, anarquía...).
Hay gente que opina que PHP es anárquico y ha sido ampliamente aceptado, pero, ¿qué aporta Ruby sobre PHP? PHP demostró que se podían hacer sitios webs dinámicos, multiplataforma, y en software libre de forma muy sencilla. Lo que aporta Ruby sobre PHP aun no lo he descubierto.
También los hay que opinan que Java es el nuevo Cobol o el nuevo C++, y yo vuelvo a discrepar. En cierta medida es más que Cóbol por el número de aplicaciones que se han desarrollado (más allá de su criticidad). Además, el código Java es mucho más mantenible, gracias a la arquitectura de tres capas (aunque el patrón es independiente del lenguaje, las aplicaciones Cobol eran desarrolladas por matemáticos y físicos que ignoraban los patrones de diseño y otras técnicas de ingeniería del software), pudiéndose incluso cambiar la interfaz gráfica quedando la lógica de negocio y/o el dominio como capas que se pueden mantener o no de manera independiente.
Sinceramente Cobol nunca ha aportado gran cosa. Si no estuviera implantada como solución corporativa de los bancos, no nos acordaríamos ni de su nombre.
En cuanto a C++ revolucionó sobretodo la parte gráfica de las aplicaciones. Su orientación a objetos era artificiosa por culpa de la retrocompatibilidad con C (Ansi C está totalmente contenido en C++). Depurar un error a causa de un "puntero loco", podía consumir semanas, y eso sin contar que nunca estabas totalmente seguro de que el arreglo no conllevara efectos colaterales. Realmente el lenguaje "pata negra", y que sigue siendo requerido en muchas empresas (sobretodo de microelectrónica) es el C.
Aportaciones de Java al mundo del desarrollo software:
Java no se ha quedado estancado, se ha adaptado a la programación Orientada a Aspectos (más allá de la orientación a objetos con el framework Spring, por ejemplo), y tiene la comunidad de desarrolladores más amplia del mundo.
Además Java abarca: aplicaciones de escritorio, web, móviles y servicios. Es decir, se puede hacer todo.
Si a eso, le sumamos su aportación en el mundo de la Orientación a objetos (fue el primer lenguaje OO puro y que funcionara), persistencia de objetos (Hibernate, IBatis, JPA), ORM (Hibernate), servicios web (REST, SOAP con Axis), frameworks gráficos (SWT, RCP, AWT, Swing), frameworks MVC (Struts), frameworks web (JSF, Struts, Struts2), adaptación total a UML, pruebas unitarias (JUnit, Testng), logeo en consola (Log4J), dos fantásticos IDEs libres multilenguaje (Netbeans y Eclipse), y todo ello multiplataforma (de manera transparente al programador), podemos concluir que la aportación de Java al mundo del desarrollo software es muy superior a lo que pudo aportar en su día, Cobol, y C++.
Mercado actual
Ahora mismo el 60% de los proyectos que nos llegan son en Java (Web + Movilidad). Me ha sorprendido ver como PHP ha crecido hasta el 30% en época de crisis. Me gustaría encontrar una explicación a este crecimiento (quizás como consecuencia de los CMS Drupal y Joomla que han alcanzado un grado altísimo de madurez). Sin embargo los proyectos en .NET se han reducido. Esto puede tener sentido como consecuencia del coste de licencias, y debería de paliarse con Mono (plataforma para desarrollo libre de aplicaciones .NET), pero no termina de hacerse su hueco, pese a que C# me parece un muy buen lenguaje.
Me gustaría tener demanda en Python, para poder tener algo de tiempo para formarme, pero actualmente no la hay (en mi caso particular, y en Andalucía en general).
Futuro
Dentro de cinco años seguirá habiendo trabajo para desarrolladores PHP y Java.
El desarrollador mejor formado, y más maduro, debe abarcar varios lenguajes y frameworks, eso le dará una perspectiva y una experiencia superior al que solo domine un lenguaje. Esa ha sido mi experiencia personal.
Creo que cada vez será menos importante "con qué se programe", el paradigma al que se tiende es Software as a Service (SaaS) - Cloud Computing (aquí hay una primera aproximación). Apuesto por SOA (arquitectura orientada a servicios), donde lo importante son los servicios y la interoperatividad, no el software de las "tripas".
Estoy estudiando Java y he escrito una entrada en el glosario para quien pueda interesar...
ResponderEliminarhttp://www.andy21.com/glosario/java.html
Cualquier corrección o ampliación será bien recibida.
Muy interesante reflexión, expande mucho la visión sobre el tema.
ResponderEliminarComo bien decís, definitivamente Java seguirá muy activo en 5 años, por toda la base de código actual que tiene.
PHP para mi va a seguir creciendo a buen ritmo, sobre todo por las herramientas increíbles que ofrece (Joomla, Moodle, Mediawiki, Drupal, etc.). Definitivamente, para armar cierto tipo de sitios web no hay como PHP, por las facilidades que tiene.
Y .NET... bueno, mal que me pese, personalmente creo que va a seguir adelante, no sé si creciendo mucho, pero si manteniéndose. Hay muchas empresas (particularmente Pymes) que lo usan porque tienen toda su infraestructura montada sobre productos de Microsoft, y para muchos parece la opción "lógica" para sus aplicaciones.
Bueno me parece interesante que el mundo del internet se pueda mover en torno a estos tres leguanjes de programacion Java, .NET, PHP. yo todavia no se programa, y no se cual me recomiendan...
ResponderEliminarno habia escuchado de RIA sera de averiguar
Hola.
ResponderEliminarPrecisamente ahora ... creo que el futuro de Java no es precisamente mejor. Para mi (por detrás de C/C++) el mejor.
PHP tiene cosas que pulir, pero lo usa mucha gente por lo que tiene futuro.
.NET es la mayor incognita. Coincido que C# es muy buen lenguaje, pero hay muchos esfuerzos valdios (Visual Basic .NET, J#, ...). Además de que M$ tiene mala prensa (ganada a pulso). Si al final levantan la mano creo que tiene su futuro.
El PROBLEMA es que tendemos (por agotamiento de tecnología hardware) a procesadores de múltiples núcleos ... el FUTURO será del lenguaje (mejor dicho compilador) que mejor sepa manejar esta complejidad.
Saludos.
P.D.: Me gustó mucho el artículo.
Tienes razon pero solo para aplicaciones... no me imagino un sistema operativo, un sistema gestor de bases de datos serio o cualquier cosa que tenga que tener un rendimiento critico hecho en java u otros. Vale que para aplicaciones de escritorio el rendimiento es "casi tan bueno" pero no hablamos de eso. Oracle es C/C++ del mas bajo nivel que te puedas encontrar pero todo la pila sobre es sistema critico esta hecha en Java.
ResponderEliminarCon todos los respetos no me gusta nada el artículo.
ResponderEliminar"Lenguajes" y "Frameworks" de desarrollo son cosas diferentes.
Sobre lenguajes de programación, no veo justificaciones sobre, compilado vs. interpretado o estático o dinámico (ej C++ o Java vs. python o ruby).
Y en cuanto a los dos comentarios sobre ruby, el primero lo enfocas a desarrollo web, una de las miles de aplicaciones de ruby (con rails). Y lo de la "falta de madurez", "anarquía", "complejidad" me hace pensar que no conoces realmente el lenguaje.
Dependiendo del area de negocio, unos por diferentes motivos tienen mayor implantación de otros. Si tuviera que dar una receta genérica diría:
- 1 Lenguaje Estático: Java / C++.
Por ejemplo el hecho de que mucha gente diga que Java es el nuevo Cobol obedece a que trabajan en banca y ya sólo por tener que mantener todas esas aplicaciones, hay negocio y trabajo con este lenguaje y no a las características intrínsecas de los mismo que no tienen nada que ver.
- 1 Lenguaje Dinámico: Python / Ruby. Sobre gustos no hay nada escrito, pero los lenguajes dinámicos han cambiando las reglas del juego. Las posibilidades de metaprogramación, reflexión, etc hacen de ellos lenguajes de altísima productividad. Mucho más por mucho menos.
- 1 Framework Windows
- 1 Framework Linux
Y luego será el desarrollo profesional quien te vaya especializando en un area.
Saludos
Gracias por el articulo, pero el JDK7 de java aportara algo INMENSO que es una libreria para la programacion paralela (JSR 166y), el futuro es programar paralelamente y no me explico porque no hay mencion de este aspecto en su articulo interesante.
ResponderEliminarhttp://artisans-serverintellect-com.si-eioswww6.com/default.asp?W1
Saludos,
Ferney
Colombia
Hola; cuando dices "...Ahora mismo el 60% de los proyectos que nos llegan son en Java (Web + Movilidad)..."; te refieres a Web + aplicaciones móviles(j2me)?
ResponderEliminarSaludos
César Vizarreta
Me hace gracia como en cuanto sale PHP, siempre hay alguno que dice que no tiene futuro, es una mierda, le faltan cosas por pulir... etc.
ResponderEliminarPHP es un lenguaje que mejora dia a dia, como todos, se pueden hacer mas cosas que no sean solo para web (como alguno dice por ahi de ruby) y además, es ampliamente usado... será por algo... Si es mas usado que otros es porque los otros fallan en cosas en las que no falla PHP.
PHP es un gran lenguaje, como todos.
Saludos
A mi tampoco me ha gustado mucho el articulo.
ResponderEliminarY eso que comparto muchas de las ideas expuestas. Pero eres demasiado categórico sobre "este no aporta nada, este sí" etc...
Mejor decir "cual es el lenguaje que van a solicitar la MAYORÍA de las empresas?" y así terminamos antes.
Como tu has dicho, no creo que Java tenga nada que decir en la microelectrónica (y si yo me muevo en ese mundo, tu articulo me sonaría a chino).
A ver, en mi opinión:
ResponderEliminarTodo se centra en que lenguajes se van a usar en el futuro, pero ninguno en el problema a resolver. Para mí, lo mas importante es conocer y tener bien determinado el problema a solucionar, y obviamente, tener una muy buena base teorica de que son los lenguajes de programacion. (paradigma al que pertenencen, tipo de tipado, pasajes de parametros que soporta, etc, etc).
Luego, teniendo estas herramientas, y sabiendo concretamente el problema a solucionar con sus caracteristicas particulares, elegir el mejor lenguaje que se adapte a la solucion que tenemos que dar.
Para mi esa es la mejor forma, poniendo un ejemplo, mis desarrollos se basan principalmente en php y mysql, y mas de una vez he tenido que pasar datos desde archivos a bases de datos, y en mi opinión, la mejor forma de hacerlo, es usando perl, ya que para mi es el mejor lenguaje para parsear archivos de texto. Otras veces, he tenido que hacer sistemitas de ABM via Web, y para mi, la forma mas facil y rapida de hacerlas, es utilizando ruby on rails.
Pero en fin, para no irme del tema, me parece que el programador en los proximos 5 años, va a tener que aprender, por sobre cualquier lenguaje la teoria, sabiendo la teoria, les puedo asegurar que agarran cualquier lenguaje y en 15 dias salen programando de lo mas bien (y doy unos dias de gracia, en menos tambien).
Saludos y espero haber aportado algo en la discusión.
PD: En mi parecer, el mejor lenguaje orientado a objetos hasta el momento, que no tiene mucha difución, ya que fue realizado con el fin de utilizarlo para el aprendizaje, es Eiffel. Mirenlo que los va a sorprender muchas cosas, entre ellas, las soluciones que da para la herencia multiple.
y que opinan de Python, quiero estudiar un lenguaje de programacion y no se cual :-s
ResponderEliminarSiempre escribo bajo el paradigma (EMHO: En Mi Humilde Opinión). Creía que no hacía falta decirlo a cada momento, y por este motivo, algunas afirmaciones os pueden parecer categóricas.
ResponderEliminarCésar: El 60% de los proyectos que nos están entrando son en Java, sumando J2ME y J2EE.
Efectivamente, Lenguaje y Framework son cosas distintas. ¿Yo he dicho que fueran lo mismo?
Uno de los parámetros para medir la madurez de un lenguaje puede ser el número de frameworks en el mercado que resuelven problemas conocidos y recurrentes.
A los demás, muchas gracias por los comentarios. Todos son bienvenidos mientras que no sean ofensivos.
"fue el primer lenguaje OO puro y que funcionara"
ResponderEliminarTe equivocas y además tienes prejucios, porque ni es puro (porque tiene tipos primitivos) ni es el primero que tuviera una implementación funcional.
¿Usas tipos primitivos?
ResponderEliminar¿Por qué usar int cuando tienes Integer?
¿Yo he dicho que tuviera una implementación funcional?
"fue el primer lenguaje OO puro y que funcionara"
¿Había algún otro lenguaje potente que fuera OO puro y que funcionara?
Por cierto, 0 prejuicios, y 0 guerras religiosas sobre el software. Pruebo, analizo, y después opino.
Coincido con las opiniones de casi todos vosotros, aunque a mí, como dijo alguien, VB.NET no me parece un esfuerzo baldío por parte de Microsoft. Una de las grandezas de .NET es la posibilidad de desarrollar en varios lenguajes y que cada desarrollador se pueda así sentir más cómodo. Yo, por mi parte, apuesto por .NET y MONO para los próximos años.
ResponderEliminarCreo que ahora mismo .NET está muy por delante en muchos aspectos con respecto Java, como por ejemplo en interfaces de usuario (¿conocéis esa maravilla de API gráfica llamada WPF?) y en herramientas (Expression Blend, Visual Studio Professional, ...). Sí, Eclipse está muy bien y es muy extensible y tal pero en RAD ni se acerca a VS, y mucho menos a una aplicación como Blend.
Salu2!
Los lenguajes del futuro?
ResponderEliminarDepende de qué sector del software no?
Si es para aplicaciones web (que probablemente es dónde hay más plaza para los programadores) están Java, .NET, PHP.
En cuanto a aplicaciones de consola o de cliente es difícil pensar en un sustituto de C. C tiene ya más de 20 años y sigue siendo usado debido a la portabilidad y rendimiento en comparación de otros lenguajes, desde mi humilde punto de vista.
Claro Etienne, por eso hablo de la necesidad de establecer un criterio de comparación para poder hablar de la grandeza de un lenguaje.
ResponderEliminarjava es ahora de Oracle, como siempre, todo es tener esperanzas de un mundo mejor.
ResponderEliminarSegún tengo entendido, Java se basó en SmallTalk 80, que sí fue el primer lenguaje OO puro (con ligadura dinámica y typing dinámico).
ResponderEliminarSaludos
Smalltalk es anterior a Java y era OO. No he programado en él, pero no cabe duda que no tuvo gran éxito en su uso.
ResponderEliminarÉxito ninguno, desde luego. Pero coincido con el comentario anterior en que Java no es OO puro, aunque lo intenta.
ResponderEliminarDesde luego donde indicas que Java fue el primer lenguaje orientado a objetos que funcionará te has lucido. C++ es orientado a objetos y funciona perfectamente. El núcleo de google está escrito en C++. Multitud de aplicaciones gráficas también lo están. Desde luego la mayoría de los videojuegos están en C++, los motores de simulación realistas o cualquier cosa que necesite un trabajo de cómputo importante tiende a implementarse en C++, por los añadidos que tiene respecto a C con los objetos (aunque también existe objective C, pero quizás sea algo más doloroso para el programador utilizarlo. Y lo de la depuración de los punteros por culpa de días.. Utilizando gdb o cualquier herramienta similar la depuración de punteros es cuestión de minutos. Intenta realizar una aplicación de alto rendimiento con Java, verás lo que pasa.
ResponderEliminarRespecto al desarrollo de python también se podría decir que existe django que es un framework web que está tomando casi tanta fuerza como ror o cualquiera de los de php.
La orientación a objetos de C++ es muy artificiosa. Ese ha sido mi comentario, y lo mantengo. La depuración de C++ es más costosa que en otros lenguajes.
ResponderEliminarQue C++ se usa en muchísimos sitios... pues sí, estoy totalmente de acuerdo. Que el rendimiento es mayor que en Java... pues también... y es que yo no he dicho lo contrario en ningún momento.
En cuanto a lo que comentas de Django, pues también de acuerdo... no he dicho lo contrario... de hecho, mira el enlace que hay en el lateral del blog sobre Django.
"...las aplicaciones Cobol eran desarrolladas por matemáticos y físicos que ignoraban los patrones de diseño y otras técnicas de ingeniería del software..."
ResponderEliminarDisculpame, pero eso que decis no es verdad. COBOL y (no cobol)es un lenguaje orientado para la gestion contable, si duro tanto tiempo, es porque realmente funciona para lo que fue diseñado. De echo COBOL no soporta funciones, solo maneja las cuatro operaciones basicas. El lenguaje utilizado por matematicos y fisicos es FORTRAN.
Muy interesante y casi de acuerdo en todo. Soy programador en PHP (fanático), Java (aprendiz) y Python (entusiasta). Sobre este último, bueno, nació antes que PHP y su crecimiento ha sido continuo en el mundo del software libre, y más concretamente en Linux. Además, gracias a frameworks como Django o Zope el desarrollo web con este lenguaje no envidia nada a otros. Personalmente, me parece un lenguaje potente, bonito y sobre todo multiplataforma y libre. Eso le da mucho margen, como Java tuvo en su día, aunque como ya has dicho, con más sencillez: crisis o no crisis, proliferan y seguirán abarcando más mercado las metodologías ágiles y los proyectos cada vez más segmentados, basados en integración de sistemas.
ResponderEliminarAh, y sobre el último párrafo, desentenderse del software "tripas", así como de la arquitectura de los SO o del hardware puede estar bien para tu negocio, pero por mucha nubecita y mucho gurú 2.0 alguien tendrá que seguir programando los servidores web, las aplicaciones núcleo y los motores de bases de datos. El programador del futuro (y del presente) no debe olvidar NUNCA esos aspectos, aunque se dedique a un más alto nivel.
Es curioso hasta que punto puede depender algo como la demanda del "ecosistema" en el que te encuentres.
ResponderEliminarEn nuestra empresa el 70% aproximado de las peticiones son pata .net, el 20% para PHP (a mi pesar) y el 10% restante para Java.
Lo curioso es que no trabajamos para un sector concreto... por eso me resulta tan sorprendente la diferencia de percepciones.
COBOL por matemáticos y físicos ? Eso era FORTRAN. Decir que COBOL no aportó nada.. en fin. Todo es opinable, pero desde la experiencia. La mia viene de "unos cuantos años". Respecto a SOA y no "tripas", me parece un comentario poco serio. Todo son "tripas".
ResponderEliminarInteresante artículo.
ResponderEliminarHola.
ResponderEliminarEspero me perdones, pero discrepo totalmente cuandi dices:
"Si a eso, le sumamos su aportación en el mundo de la Orientación a objetos (fue el primer lenguaje OO puro y que funcionara)"
El lenguaje al que te estás refiriendo con este comentario no es Java, si no Smalltalk. Todavía a día de hoy (con 30 años a sus espaldas) sigue teniendo cosas mucho más avanzadas que Java. Java continua sacando nuevas "features" como algo novedoso e "increible" (o casi), cuando Smalltalk lo hace desde hace años, etc, etc, etc.
Otro tema es que por razones de márketing y demás zarandajas, Smalltalk no ocupe la posición que debería. pero como digo, es otro tema.
Y ojo, que no quiero decir que Java sea malo ni muchísimo menos. Tan solo que "al pan pan...".
Have a nice day ;-)
TooManySecrets
Sé que el lenguaje científico era Fortran. Cuando me refería a que los programas de gestión eran desarrollados en Cobol por físicos y matemáticos quiero decir que no había informáticos, simplemente porque no existía la titulación, y ni físicos, ni matemáticos estudiaban ingeniería del software.
ResponderEliminarEn cuanto a Smalltalk, TooManySecrets, ya hemos hablado de él en los comentarios.
Saludos.
El artículo interesante aunque no deja de ser la opinión personal de una persona y por eso los comentarios complementan a la perfección el artículo aportando datos más plurales y objetivos aunque algunos de los comentarios están escritos en un tono destructivo pero otros son muy interesantes, he aprendido mucho, por ejemplo algo sobre el próximo Java 7 (hay poca documentación aún en la red, según wikipedia iba a salir en 2008 y ya estamos en 2009 y aún no hay una fecha oficial).
ResponderEliminarPaz, amor y código fuente.
Andy, totalmente de acuerdo contigo... y evidentemente, todo lo escrito es mi humilde opinión.
ResponderEliminarLa capacitacion en la ingenieria del software, era dada por empresas como NCR o IBM, cuando no existia la titulacion. Claro, esos cursos eran solo para los empleados de la empresa que alquilaba esos computadores.
ResponderEliminarLa informatica esta muy bien, es muy amplia: sistemas operativos, lenguajes de programacion, hardware, comunicaciones, graficos, algoritmos... En fin la leche. Pero despues en el 90% de los trabajos y proyectos, al final en el dia dia realizas lo de siempre, lo de ser creativo es para los de publicidad y marketing, el trabajo es ingenieria y no hay sitio para creatividad.
ResponderEliminarEn resumen, que en los ultimos años disfruto mas comiendo un buen entrecot y de escapadas y viajes, que tanto java, db2, frameworks, promociones, entornos, bugs, tcp/ip....
Disfruten amigos, que lo que hoy sabemos en esta disciplina en un futuro no sirve para nada.
en el futuro mediano/cercano necesitaremos lenguajes que puedan funcionar facilmente en multi-cores, ninguno de los mencionados cumple este requerimiento.
ResponderEliminarCreo que hace falta en la evaluación, cuales son tus puntos de referencia para decir que estos son los tres lenguajes más utilizados a futuro?
ResponderEliminarCreo que se deben evaluar algunos lenguajes que han ido surgiendo con respecto a la historia, google con su plataforma google apps ha generado una gran expectativa en python, grandes lenguajes como python, quizas lisp o algún otro. sería bueno evaluar también estos lenguajes.
Veo que en el artículo no se habla de python, en el grado que hablas de Java, es más, veo que se le coloca en una posición desfavorable, les dejo un enlace para que den un vistazo de las capacidades de python, porque Google ya invertido tanto en su desarrollo? http://www.slideshare.net/fpalm/python-multiuso
ResponderEliminarSencillamente, no puedo creer como muchos de los que me han antecedido subestiman aun el tiempo de vida de C/C++. He trabajado en los ultimos 5 años en sistemas de alto rendimiento y tiempo real, y cualquier otro lenguaje ajeno a C/c++ resulta infinitamente mediocre. PHP, JAVA son bellos para aplicaciones WIS tradicionales , pero si de tendimiento se habla.. rindan culto al Dios C/C++
ResponderEliminarpython no es que sea la gran maravilla que todos quieren pintar, y con su GIL resigna toda posibilidad de usar varios nucleos.
ResponderEliminaralgo(entre muchisimas cosas) que no se menciona en el articulo es el lenguaje de programacion D, una mezcla entre ruby/python, java y c++.
ResponderEliminarBasic 4 ever :)
ResponderEliminar100 goto fin
:fin
Es horrible hacer paginas web en php o java, despues de probar varios lenguajes opte por openlaszlo, es extramadamente sencillo y limpio y es el unico q genera archivos dhtml y flash. El tiempo de desarrollo es tremendamente inferior a otros lenguajes.
ResponderEliminarflash? no gracias ;-)
ResponderEliminarEcho en falta ingenieros (en informática, se entiende) por aquí, nada mas que veo comentarios acerca de cosas por las que se deben preocupar técnicos de software.
ResponderEliminarSin acritud :).
Ñete,
ResponderEliminarHay bastantes ingenieros, créeme. De hecho, me consta que hay varios compañeros de ETSII por aquí.Además, aunque no lo creas, también es labor de un ingeniero saber las limitaciones y cualidades de un lenguaje de programación.
De todas formas, no sé muy bien a qué comentario te refieres, y qué comentario aportaría un ingeniero al respecto.
También me gustaría comentarte que tengo compañeros Ingenieros que se dedican al desarrollo de software y son capaces de remangarse y ocupar cualquier rol dentro de un equipo. Ese es el tipo de ingenieros que quiero a mi lado.
Por supuesto que también hay algunos que no son ingenieros, pero de igual forma, aportan su punto de vista. Varios de ellos son excelentes profesionales, su opinión vale tanto como la de un ingeniero, y también son capaces de adoptar brillantemente cualquier rol dentro de un equipo. Ese también es el tipo de profesionales que quiero a mi lado.
Saludos.
Pues yo llevo varios dias preocupado... os cuento:
ResponderEliminartrabajo como programador informatico desde hace 5 años con PL/SQL puro y Oracle Forms/Reports y ahora por la graciosa crisis me he quedado en paro y ops! que ha pasado? ya nadie pide forms??!!
Así que me pregunto que debería aprender para poder volver al mercado laboral... tengo nociones de C++ y de Java (aunque este ultimo no se porque nunca me ha gustado) y he pensado en meterme en alguno de los dos a fondo pero es que ultimamente me llama mucho el tema web porque la informatica sin duda va hacia internet.. superordenadores que lo haran todo y nosotros funcionaremos con terminales por lo que quizás PHP que ya va cogiendo mucho impulso y Javascript sean lo mejor no? He hecho mis pinitos con la web http://pornsexvideos4free.com (si al censor del foro no le gusta porque es porno quita el enlace) pero está claro que para poder trabajar tengo que profundizar mucho más.
Que me recomendais para el mercado laboral? Y no me hableis solo pensando en mañana si no en maána y los proximos años, que si tengo que aprender algo a fondo no quiero que sea una perdida de tiempo, que no me sobra aunque este en paro xD Siendo realistas, dejad un poco de lado los sentimientos.
En Andalucía, sigue habiendo demanda de programadores Java, aunque el resto de lenguajes siguen teniendo su nicho de mercado, incluido Oracle Forms.
ResponderEliminarMuchas veces no es mejor prepararse en lo que más demanda hay, sino especializarse en algo con poca oferta (aunque tampoco haya mucha demanda). Puede que se tarde más tiempo en conseguir trabajo, pero seguramente se consiga un trabajo mejor.
Puede pero ahora mismo estoy en paro, me queda solo un mes y no me llaman de ninguna empresa. Que hago pues? Tengo alguna web para ver si gano algo pero son centimos...:_(
ResponderEliminarhttp://pornsexvideos4free.com
http://ashushu.com
http://losvideosfamosos.com
me parece interesante el articulo aunque por experiencia propia por cierto fundamentada por casi diez años de alta programacion, algunas aseveraciones son mal fundadas sobre todo cuando hablas al respecto d cobol o de c++, pues resulta que en su nivel maximo estos lnguajes podian hacer cualquier cosa en cualquier plataforma que los soportara, incluso yo lo ponia a comptir con cualquier herramienta o lenguaje existente y peresonalmente podia programar cualquier cosa, en efecto el lenguaje no era para cualquier persona, se consideraba elitista en sus niveles superiores pues el crear graficos o estadisticas solo ing. en sistemas podiamos realizar ese tipo de prog. enriquecidos por la experiencia de la vida empresarial. ahora los lenguajs son light, cualquier persona pued utilizarlos y manejarlos con dos dedos de frente, sto permite que php o java aunados a la publicidad se hayan convertido en las herramintas por excelencia cuando hay aplicacions como oracle previas a java o php o cualquier otra aplicacion que eran verdaderos lnguajes OO, s importante que sepan que incluso hubo hereramientas no muy utilizadas de autodesk llamada ACTOR el primer lenguaje neto orientado a objetos y luego le siguieron algunos otros multiplataforma.
ResponderEliminar]Saludos si desean conocer algunos otros aspctos con toda confianza pueden hacerme el comntario, tengo poco mas de 30 años dedicado a la informatica y la mitad de ellos a la consultoria empresarial alta direccion.
felipe aguilera gomez mx d.f.
Se que es facil criticar sin haber hecho nada, y por eso respeto tu blog, pero discrepo en lo que decis sobre COBOL. Yo lo utilizo hace 5 años en su version MAINFRAME y si bien uno de los motivos por los que subsiste es por la gran capacidad del computador de manejar grandes lotes de informacion, te puedo decir que en el banco en que trabajo esta perfectamente integrado con miles de aplicaciones tales como PHP, META4, .NET, Java, etc. (por enumerar algunas de ellas).
ResponderEliminarY si, como lei en algun comentario anterior, el lenguaje es mejor por facilidad, es cierto que COBOL no marco tendencia ni popularidad fuera de los bancos, porque es un lenguaje a bajo nivel, trabaja con estructuras de datos complicados y no se puede "arrastar y pegar" nada.
Aclarado el punto anterior, me gustaria ver dentro de unos años, que por la facilidad de las nuevas tecnologias, seamos desplazados por gente que nunca estudio nada relacionado, por lo que de alguna forma volveriamos a la epoca de los matematicos y fisicos con Fortran. Y no hablo por hablar, porque conozco muchas personas sin estudios en sistemas o informatica incursionar en desarrollos de paginas web, y si bien les cuesta un poco mas aprender, por la facilidad de hoy en dia terminan igualandonos en conocimientos a la larga.
No te preocupes hay cientos de operaciones en Software Legacy desarrolladas en COBOL. Siempre habrá trabajo para los expertos en COBOL.
ResponderEliminar