intive Argentina Blog

El mejor lenguaje de programación 

Si sos dev y googleás “El mejor…”, probablemente el buscador sugerirá la búsqueda “El mejor lenguaje de programación”. Seguro incluso da diferentes opciones de años y vos vas y, por las dudas, clickeás sobre “El mejor lenguaje de programación 2019”. Artículos de expertos y estadísticas de conocidas comunidades de software parecieran guiarnos sobre los lenguajes de programación que más nos conviene saber. Las búsquedas nos arrojan opciones que en general varían entre los lenguajes “más amados”, los que más demanda laboral tienen o aquellos “comerciales». A veces también nos indican cuáles son los que tienen mayor soporte de la comunidad o, incluso, los mejor pagados.

Desde intive decidimos consultar opiniones de algunos de nuestros expertos y, nos encontramos con que no existe un “mejor lenguaje para programar”. Aquí compartimos una comparativa entre poderosos lenguajes estáticos y dinámicos.

El portátil: Java  

Me animo a decir que el fuerte de Java es la seguridad. Y con seguridad me refiero a la sensación que brinda la elección del lenguaje al momento de encarar un desarrollo, por el tamaño de la comunidad, el soporte y la documentación que existen. Al ser un lenguaje ampliamente utilizado, se dispone de gran cantidad de material necesario para solucionar problemas muy específicos.

¿Qué tiene Java de bueno?

  • Java puede ser escrito y correrse en varias plataformas, característica que lo convierte en un lenguaje portátil e independiente del sistema operativo.
  • Es multi hilos (multi threaded), lo que se refiere a la capacidad de correr varios procesos simultáneamente.
  • Ha sido uno de los primeros lenguajes, cuyo ecosistema ha sido pensado en términos de seguridad; es decir, contiene un sinnúmero de funcionalidades pensadas para proteger su desarrollo. Y, si bien la seguridad de Java no es perfecta, es la más perfecta que existe.

En fin, sabemos que frente a Java existen cada vez más alternativas de lenguajes, y también sabemos que en ocasiones es necesario adoptar estas nuevas tecnologías en pos de no rezagarse en el avance tecnológico. Pero creo que lo que más sabemos es que, cuando las papas queman, lo mejor es quedarse con lo seguro.

El corporativo: C# 

C# es uno de los lenguajes más utilizados actualmente para aplicaciones empresariales, y es que, al ser Microsoft su creador, es este quien se ha esforzado para que se corra en su sistema operativo, Windows. Por ende, son los mercados corporativos su target principal.

Entre algunas de las principales características de C#, podemos mencionar el soporte que obtiene del framework .NET, así como también un IDE que permite un rápido desarrollo y no exige al usuario que tenga que configurar mucho antes de empezar a escribir código.

Hoy en día, los avances del framework y el lenguaje C# permiten desarrollar todo tipo de aplicaciones e incluso video juegos.

  • ¿Qué soluciona C# que no solucionan otros lenguajes?

A lo largo de la historia y el crecimiento de C# hemos visto como este lenguaje ha solucionado muchos problemas que sus competidores no. Hablamos de una gran cantidad notable de tipos primitivos, funcionalidades más avanzadas como LINQ, y eventos y delegados.

Actualmente no podemos decir que otros lenguajes, al evolucionar, no hayan adquirido las mismas funcionalidades que C#. Pero sí afirmamos que C# es el que ha inspirado al resto, como Java, a mejorar.

El sencillo: Python 

Python es un lenguaje multiparadigma, muy versátil y con una sintaxis que es muy fácil de aprender. Probablemente sea el lenguaje que está “más al alcance de la mano” para sacar andando alguna funcionalidad, experimentar o probar una idea y luego, optimizarla.

Esto trae a la vez un problema, ya que vuelve muy tentador el no seguir las reglas de ningún paradigma en particular y hacer lo mismo de muchas maneras distintas, mientras que otros lenguajes te “obligan” a seguir ciertas reglas.

Pero otra ventaja de Python es su enorme comunidad, lo que pone a disposición un montón de librerías que no están disponibles para otros lenguajes (como es el caso de las librerías de Machine Learning).

Hablamos de un lenguaje de muy alto nivel e interpretado lo que, al mismo tiempo, lo hace mucho más lento que otros lenguajes. El hecho de que existan varias versiones de Python (con funcionalidades que pueden exigir que tu código corra en una versión en particular) y de que no venga de forma predeterminada en todos los sistemas operativos se suma a que no es compilado, no maneja las dependencias, y el código del programa no termina en un único archivo. Todo eso hace que desplegar en producción un servicio de Python sea una tarea no trivial.

El versátil: Node.js  

Node.js es un entorno de ejecución para Javascript, construido sobre el motor de ejecución V8 de Google.  Su principal ventaja es que podés crear aplicaciones realmente fullstack, es decir, utilizar el mismo lenguaje tanto del lado del servidor como del lado del cliente. Al ser Javascript, es una buena opción para frontenders que quieren arrancar en backend o que quieren usar la misma tecnología en todo el stack.

Node.js tiene un solo hilo de ejecución: aunque es un sistema que rinde muy bien en entornos de alta cantidad de requests con operación de I/O, cuando lo exigimos con operaciones de alta demanda de CPU su performance se ve afectada.

Javascript también posee una comunidad muy dinámica y activa que está en constante actualización y mantenimiento.

Conclusión:

Al final del día los lenguajes son herramientas que se adecúan a las necesidades que requiera un producto a desarrollar. Todo depende de la escalabilidad, el background técnico del equipo, el soporte de la comunidad de dicho lenguaje para la resolución de conflictos y dudas, e incluso de la disponibilidad de los recursos humanos que puedan codearlo.

No hay mejores o peores lenguajes. Hay herramientas más o menos adecuadas según las circunstancias. Hay lenguajes preferidos. ¿Cuál es el tuyo? ¿Alguna vez usaste un lenguaje y, después dijiste: “tendría que haberlo usado para tal producto”?

Fernando Lescano

Es uno de nuestros líderes técnicos y desarrollador full stack de intive – FDV desde marzo de 2015. En la empresa trabaja con tecnologías como Javascript (NodeJS, AngularJS, Mongodb, Jquery, etc.), Python (Django), Java y PHP e integra la brigada Frontend. Se define como “apasionado del desarrollo de software, pero con muchos otros intereses”. Desde diciembre de 2015 se ocupa del desarrollo y mantenimiento en Java y de nuevos componentes en JavaScript (AngularJS). Es Técnico Universitario en desarrollo de software y tecnologías de la información, graduado de la Universidad Provincial de Ezeiza.

Gianmarco Cafferata

Gianmarco Cafferata es Data Scientist en intive-FDV desde agosto de 2018. Estudiante de Ingeniería en Informática en la Universidad de Buenos Aires (UBA), además se desempeña como ayudante en la materia Algoritmos II en la misma facultad de dicha casa de estudios. Amante del bandoneón, en su tiempo libre Gian se dedica a investigar sobre Data Science y cocinar, sobre todo cosas dulces. Interesado por la economía, la filosofía y la política, lo que más le gusta es salir y charlar con amigos.

Gustavo Rohrer

Gustavo Rohrer es desarrollador full-stack en intive Argentina desde septiembre de 2017. Tesista de la carrera de Licenciatura en Sistemas de la Universidad Nacional de La Plata, Gustavo además disfruta mucho jugar al fútbol, estudiar idiomas y juntarse con amigos. Con mucho interés en la alimentación y vida saludable, y una pasión por cocinar y todo lo relativo al arte culinario, Gustavo afirma que fue chef en otra vida.

Nicolás Azzara

Nicolás Azzara es desarrollador .NET en intive Argentina desde febrero de 2018. Estudiante de Ingeniería en Sistema en la Universidad Abierta Interamericana, en su tiempo libre Nicolás disfruta de viajar y arreglar cosas de la casa, como pintar y hacer trabajos de electricidad. Aficionado a las revistas de diseño y arquitectura, disfruta del reciclaje y pasar tiempo con su gatita Cleopatra.

Deja un comentario