Informática: la batalla de los lenguajes

Los jóvenes programadores se inclinan por lenguajes como Ruby, Perl, Smalltalk, Python y PHP antes que por estándares de la industria como Java y .Net. Cuáles son los herramientas de programación más populares en la Argentina, por qué las eligen y cómo aprovechar lo mejor de cada una. 15 de Octubre 2010
Informática: la batalla de los lenguajes

La nueva generación de desarrolladores es más afín a Ruby y PHP que a Java y .Net”, disparó Jeffrey Hammond, analista de Forrester Research, en abril. Pero esta “crónica de una muerte anunciada” para Java y .Net debe ser tomada con calma: hay un declive en el uso de esas herramientas pero perdurarán por años.

El índice TIOBE Programming Community muestra la popularidad de los lenguajes de programación según las búsquedas que se hacen en motores de Internet y otras fuentes. Entre junio de 2009 y de 2010, los primeros cinco puestos los ocuparon Java, C, C++, PHP y Visual Basic, en ese orden. Java y Visual Basic bajaron 2,1 por ciento en ese lapso; C creció uno por ciento, y C++ y PHP casi no variaron.

En la Argentina se verificaría la tesis de Hammond, como lo indica un análisis hecho por Gustavo Sadovoy, docente de Ingeniería de Software en la carrera de Ciencias de la Computación de la Facultad de Ciencias Exactas y Naturales de la UBA. Sadovoy, que trabaja en la consultora Baufest como Software Delivery Leader, analizó 2.144 e-mails con ofertas laborales que llegaron entre julio de 2004 y de 2010 a la lista de alumnos de esa facultad. “Si se admite la muestra como representativa, se ve que Ruby, Perl, MySQL, Python y PHP son los que más crecieron en demanda entre los períodos 2004/2008 y 2008/2010. La demanda de Java y .Net bajó alrededor de 12 por ciento entre las dos etapas”. Pero representan el 58 por ciento del total de búsquedas.

 ¿Verdad o consecuencia?
Para Fernando Boettner, responsable de Desarrollo de Sistemas de la firma de servicios financieros Credencial Argentina, la tendencia hacia esos lenguajes “es una verdad a medias. PHP, Ruby y Perl ofrecen mucha versatilidad y potencia, y permiten resolver problemas rápidamente. Y .Net y Java son plataformas completas de desarrollo, adecuadas para proyectos complejos. Todo depende del objetivo: para hacer un sitio web simple, Java es muy ‘grande’ y .Net implica costos de licenciamiento. Pero, para desarrollar grandes sistemas, hay más experiencia y soporte en esas plataformas. Usamos el lenguaje más adecuado en cada caso. Los desarrollos web los hacemos con PHP; para procesamiento nocturno donde se trabaja con expresiones regulares, Perl es bueno; para procesos repetitivos, con un ‘shell script’ alcanza”.

Por su parte, Guibert Englebienne, CTO de Globant, analiza: “Hay divorcio entre la adopción de las empresas y la elección de los programadores. Las compañías adoptan una tecnología por las posibilidades de crear soluciones ‘world class’, trabajar en grandes grupos y hallar personal capacitado. Por eso Java y .Net son elegidos por grandes corporaciones. En la costa este de Estados Unidos, donde hay grandes empresas, hay más adopción de tecnología de Microsoft. Y en la costa oeste, donde hay firmas más innovadoras, predomina Java, igual que en Europa. Por otro lado, C++ disminuyó su presencia y PHP creció en desarrollo web pero no está listo para la gran escala”. Respecto de los desarrolladores, Englebienne destaca que “algunos siguen programando fuera del horario de trabajo en el mismo lenguaje que lo hacen de 9 a 17. En la movida open source, Python, Ruby y Perl son muy populares pero en esa comunidad son pocos con respecto al total de programadores. Son lenguajes lindos pero con poca aplicación en el mercado”. 

Las experiencias
Jorge Staricco (22) trabaja en un organismo estatal y está por recibirse de Analista en Sistemas en el Instituto Universitario Escuela Argentina de Negocios (IUEAN). Staricco, que programa en objetos, detalla: “Uso C# para proyectos simples y Smalltalk para los más complejos. Smalltalk es un lenguaje de facultad y si no fuera por el trabajo, no programaría en él. No obstante, tiene muchas ventajas desde lo técnico pero C# es más didáctico y decidí especializarme en él porque me gusta la interfaz gráfica y, al ser similar a C y a Java, permite migrar a ellos sin dificultad”.

El cordobés Mariano Guerra (25) es un entusiasta de Python. Es ingeniero en Sistemas de Información (UTN) y acaba de ingresar a IBM. Cree que la predicción de Hammond es cierta pero “no del todo porque en las empresas de desarrollo los cambios son lentos o resistidos, tienden a mantener lo que conocen”.

Según Sadovoy, existe relación entre el lenguaje de programación y el mantenimiento del software, que durará años. “Podría ser que se discontinúe una tecnología, cambie el licenciamiento o no se consigan expertos en ella. Por eso, las empresas más conservadoras suelen evitar tecnologías nuevas hasta comprobar que estarán vigentes por años”. En Baufest hacen aplicaciones empresariales y, entonces, usan mucho Java y .Net, “pero estamos atentos a Ruby y hay proyectos en ABAP, NetWeaver, Flex, Silverlight, SharePoint y Forms”, dice.

Según Guerra, la tendencia hacia la adopción de nuevos lenguajes se ve más en empresas chicas o donde los programadores toman decisiones. Y aún más, en proyectos que éstos hacen en su tiempo libre “donde eligen lenguajes dinámicos o con más expresividad. Ruby, Python o Scala permiten que el programador exprese fácilmente conceptos y los ponga rápidamente en marcha, y minimizan el código necesario. Pero a veces esto implica menor velocidad de ejecución o mayores errores. Cuando uso Java o C# siento que converso con el compilador, le digo qué hay en cada línea. Le hago la vida fácil a expensas de hacérmela difícil. También son importantes los recursos: un buen lenguaje sin documentación o una comunidad que responda dudas no es útil”, opina Guerra, a quien le gusta Python, Javascript y Erlang. El programador usa Python para aplicaciones web, de escritorio, de consola y pequeños utilitarios; JavaScript para la interacción con el usuario de las aplicaciones web; y Erlang para manejo de muchas solicitudes en paralelo, como aplicaciones web, servidores de chat y bases de datos.
Código abierto
La mayoría de los lenguajes que crecen en popularidad son open source. Desde siempre, las empresas eligieron este software para bajar costos. Pero, según Forrester Research, eso cambió entre 2008 y este año, cuando el 83 por ciento de los ejecutivos globales de IT eligieron software open source por “mejora de la velocidad de procesamiento” y un 81 por ciento, por el “aumento del soporte”. 

Para Andrés Bursztyn, director de la carrera de Ingeniería en Sistemas de Información de la Facultad Regional Buenos Aires de la Universidad Tecnológica Nacional (UTN), “la elección del lenguaje es una de las últimas etapas. El lenguaje debe ser apto para el medio y el dispositivo. La tendencia es usar los que optimizan el canal de comunicación —hoy Internet— y son compatibles con monitores táctiles y smartphones, por ejemplo”. Según Forrester, el 57 por ciento de las empresas emplea PHP, el lenguaje open source de mayor adopción. Sadovoy dice que es muy usado desde hace una década para aplicaciones web, como parte de la plataforma LAMP (Linux, Apache, MySQL, PHP), que no tiene costo de licenciamiento.

Hernán Gómez (25) es técnico Superior en Programación de la UTN, trabaja en una empresa y es fanático de PHP. “Necesitábamos hacer un programa de interfaz simple, basado en la web y que pudiera usarse desde cualquier PC: PHP era la mejor opción. Los lenguajes de alto nivel como Visual Basic o .Net tienen entornos de trabajo más fáciles; con PHP es escribir y escribir código, pero a mí me gusta. No usé Perl, Python, Smalltalk o Ruby pero cada vez se escucha más sobre ellos”.

Para Gómez, hay dos formas de aprender a programar. Una es la usada por él: empezar con un lenguaje de bajo nivel —C o Pascal—“que son puras líneas de código y que exigen usar el ingenio y la lógica para resolver algo con herramientas básicas”. La otra “es aprender a ‘hacer programas’ con Visual Studio, por ejemplo, que tiene un entorno Windows, donde se necesita mucho menos código y es más fácil”, acota.

El impacto de la academia
Sadovoy asegura que “aunque la mayoría del software empresarial se hace en Java, .Net o PHP, hay puristas que eligen Smalltalk, usado en las universidades para enseñar programación orientada a objetos. En los últimos años se oye hablar mucho de Ruby, que heredó de Smalltalk la idea de que ‘todo es un objeto’. Muchos creen que puede ser el próximo más popular”.

La elección está ligada a la oferta educativa, entre otros factores. Así lo cree Englebienne, de Globant: “Hoy se enseña Java (especialmente en universidades públicas) y .Net, ligado al pedido del mercado. Pero, por ejemplo, hay facultades donde aún se enseña Delphi y las empresas cercanas lo usan”.

A Guerra no le influye lo que se enseña. “Las universidades priorizan lo que el mercado pide y éste está atrasado varios años. Creo que elegir un lenguaje distinto puede ser una ventaja competitiva.” Para Sadovoy, las universidades “deben formar profesionales con sólida base sobre desarrollo de software: cómo administrar proyectos, cómo tomar las decisiones arquitectónicas, cómo crear un producto útil para el usuario. El graduado debe conocer las corrientes tecnológicas y poder aprender las variantes. Pretender que conozca al detalle las tecnologías o lenguajes es fantasioso por la gran diversidad, e inútil porque, en breve, será insuficiente”.

Algo similar opina Bursztyn, de la UTN. “El lenguaje a enseñar debe ser sólo una excusa para explicar conceptos, que son la base fundamental para poder trabajar en actuales y futuros lenguajes.” Y dice que en la UTN enseñan los conceptos a partir de lenguajes que ya no se usan —como Pascal— pero sirven de referencia, y de los usados hoy, como Java, .Net, PHP, XML, JavaScript y Smalltalk.

Bursztyn asegura que los proveedores de tecnología y las comunidades de usuarios influyen en la elección de lenguajes a enseñar, “al igual que otras cuestiones evaluadas ante una actualización de la currícula. Mantenemos contacto permanente con otras universidades y empresas para evaluar la necesidad de actualizar las asignaturas”.

Según Sadovoy, en software empresarial la hegemonía que en los ’90 tenían C++ y Visual Basic, en la última década se la disputaron Java y .Net. “No creo que este predominio se base en el gusto de los programadores, sino que se apoya en lo que busca ‘el mercado’, que sigue a empresas líderes como Microsoft, Sun, IBM y Oracle. Ellos convencieron a las empresas usuarias de que desarrollando con una de esas dos tecnologías bajarían costos.” Una alternativa para respaldar la adopción de un lenguaje son las comunidades de usuarios. “Es útil recurrir a la experiencia de quienes ya pasaron por el problema y lo resolvieron. Si la comunidad de usuarios no es bastante numerosa o activa, cabe preguntarse si esa tecnología está suficientemente probada”, argumenta Sadovoy, de Baufest. Desde la visión del desarrollador, Guerra coincide en que “la comunidad es muy importante; encontrar una donde sentirse cómodo, hallar respuestas y crecer como desarrollador es clave. La comunidad de Python Argentina influyó en mi afinidad”. Desde hace años las empresas eligen Java y .Net, pero PHP y otros lenguajes dinámicos comienzan a competirle. No habrá cambios inmediatos pero es probable que se acerque una etapa sin lenguajes dominantes. Guerra estima que “habrá más diversidad en el uso de lenguajes. No creo que ninguno sea el ‘próximo Java’, pero se repartirán el mercado”.



¿Te gustó la nota?

Comparte tus comentarios

Sé el primero en comentar