[Solar-general] la guerra de los lenguajes
Diego Saravia
dsa en unsa.edu.ar
Mar Oct 26 16:38:36 CEST 2010
http://www.infotechnology.com/notas/249451-informatica-la-batalla-los-lenguajes-
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.
por Alicia Giorgetti
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”.
--
Diego Saravia
Diego.Saravia en gmail.com
NO FUNCIONA->dsa en unsa.edu.ar
Más información sobre la lista de distribución Solar-general