En las últimas semanas me he percatado de como diferentes comunidades de desarrolladores y otros participantes de la industria del software en México comienzan a hacer guerras entre que es lo mejor o que se debe utilizar para desarrollar, tanto de lenguajes, metodologías como IDE´s.
Van desde la típica guerra entre el mundo .NET y el mundo J2EE, que si el mundo J2EE es más válido o menor que el mundo Spring. Y por supuesto los últimos jugadores del mercado como JRuby y Groovy. Lo que es interesante es que además mezclan las diferentes metodologías de desarrollo en juego, que si RUP que si Ágiles. Y claro, todos somos expertos en todo lo que se mueve alrededor de nosotros o nos incumbe. No abarcaré nada al respecto de RIA's porque no tengo suficiente información para comentar sobre ellos y esto es una reflexión más que un ensayo.
Si hablamos de como se está moviendo la situación de metodologías de desarrollo es que las propuestas ágiles está tomando importancia y un verdadero cambio se están sucediendo dentro de las organizaciones de desarrollo, tanto en los modelos de fábrica de software como las que tiene áreas de desarrollo internas. Hace años nos decían que eso de usar ágiles o eXtremme Programing (XP) era cosa de gente que no tenia orden o eran "revolucionarios" de lo forma y establecido. Pero ahora con la crisis y los diferentes retos a los cambios del mercado, tan repentinos y de forma súbita, los tortuosos y largos caminos del desarrollo de software tradicionales han claudicado y generan altos costos en las empresas, tanto de desarrollo como de mantenimientos y costos operativos. Y han volteado a ver a los métodos ágiles como la forma de llegar a feliz término de la mejor forma en el menor tiempo posible y sobre todo al menor costo.
Pero que sucede con los lenguajes, queda claro que los operadores de sitios o sistemas no quieren ya ver en ningun lado servidores windows, por lo que definitivamente las opciones que se tienen para desarrollo en ASP, ASPX o .NET se comienzan a reducir poco a poco igual que en la tendencia mundial. Entonces no gastemos tiempo hablando de ello, porque aunque lo que si es cierto es mantenimiento de algunas aplicaciones de escritorio en .NET que sigue teniendo de lejos el mejor IDE de desarrollo con soporte en idioma español.
Bueno ya hablando de plataformas UNIX, pues tenemos varios actores, entre ellos los principales (dejemos un poco a un lado a lenguajes con otro ámbito de acción como C, Cobol, etc) tenemos ahora a Java y PHP para aplicaciones Web, no mencioné ni JRuby ni Groovy porque obviamente son lenguajes derivados y que al correr en la JVM pues al final del dia son lenguajes "casi" Java, asi que los dejaremos categorizados como Java. En éste ámbito es importante notar como realmente si queremos aplicaciones Web robustas y escalables no hay alternativa: Java, porque PHP tiene un gran nicho para aplicaciones que puedan ser fácilmente desarrolladas y de constante modificación, algunas personas dicen que es sumamente escalable pero yo tengo mis grandes dudas de ello cuando he visto aplicaciones desarrolladas en PHP, quizás la suerte de como fueron realizadas.
Por el lado del lenguaje Java, creo que tiene muchas fortalezas, y que todos aquellos hoyos, o dicho de otra manera, sus deficiencias han sido cubiertas mediante otras implementaciones de lenguajes o hack de diversas formas. Sus principales beneficios como son el recolector de basura y su API generan aun mas valor al satisfacer las necesidades de fácil desarrollo y robustez para los programadores típicamente nuevos en el medio.
Lo que si es de preocuparse, es el bajo nivel de programación y lógica que poseen los nuevos recursos desarrolladores que incursionan en el medio de Java, queriendo que todo se resuelva de forma mágica a través de un IDE, y que conforme pasa el tiempo es aun mayor la brecha, y no vemos a corto plazo la solución a menos que todas las instituciones de enseñanza medio superio y superior hagan consciencia en el reto que tiene el enfocar cosas a lenguajes o tecnologias que está requieriendo el ámbito empresarial y que pueden generar una mayor economía, porque de otra forma, esos puestos de trabajo o requerimientos tendrá que ser cubiertos a un altísimo costo, o mediante recursos fuera del mismo pais.
Ojala esto sirva de reflexión para aquellos que se preocupen en el medio, no se dejen llevar por corrientes, pero si por cosas que son importantes como el continuar incrementando el mercado de desarrollo de software en México, pero sobre todo, software de calidad y con costos bajos.