Inicio
Blog
¿Qué lenguajes prefieren los desarrolladores de Dofleini?
Desarrollo de Software

¿Qué lenguajes prefieren los desarrolladores de Dofleini?

La página web de Dofleini lista todas las tecnologías que dominan, y al cliente potencial debe darle mucha confianza saber que son varias, y de las más avanzadas de la industria. Si eres desarrollador(a) y buscas trabajo con ellos, también debe ser gratificante saber que tus habilidades, sean cuales sean, tienen oportunidad de encajar en el amplio abanico de enfoques tecnológicos que aplican en la empresa; y que si buscas salirte de tu zona de comfort, también podrás hacerlo. En materia de lenguajes de programación, el trabajo de Dofleini está lejos de ser monodimensional.

Pero uno no puede evitar las preferencias a la hora de hacer su trabajo, y los desarrolladores, claro está, tendrán alguna tecnología que les brinde más júbilo que otras, ya sea por las posibilidades que brinda, o lo sencilla que es de usar, o incluso la estética que se logra a la hora de escribir el código. Quizá la predilección por un lenguaje tiene una historia detrás, quizá esté relacionada a tu viaje como profesional. ¿Tienes curiosidad en saber cuáles son estos lenguajes favoritos para los miembros de Dofleini? Yo sí, y por eso les pregunté.

Ernesto Yero, jefe de equipo de Desarrolladores Ecommerce de Dofleini SoftwareJava fue una de las respuestas más comunes que recibí de los miembros de Dofleini. Según Ernesto Yero Oses, Jefe de División y Socio Fundador, es el lenguaje que usan “para las cosas más robustas, de más peso”.

Hay sistemas como Elasticsearch, que está hecho en Java, y es un software súper potente para hacer búsquedas y para el indexado de datos. Nosotros lo usamos mucho cada vez que hacemos algún sistema que contiene estadísticas, que tiene que mostrar gráficas, etc. El observatorio tecnológico, su código fuente está programado en Java. Las integraciones con las pasarelas de pago que hemos hecho aquí en Dofleini, también están hechas con Java.

Michelle Delgado, Programadora Senior del Team Desarrollo Web, también prefiere Java. Para ella fueron “los efectos visuales, las animaciones, las interacciones que tenían los sitios” los que la acercaron por primera vez al mundo del desarrollo web. Y en parte esas cosas se deben a Java.

Es una herramienta poderosa que permite mejorar mucho la experiencia de usuario. Tiene una gran cantidad de bibliotecas y frameworks disponibles que contribuyen a acelerar el proceso de desarrollo y crear estas aplicaciones web increíbles. Si tuviera que resumir, las razones por lo prefiero son su poder, su flexibilidad, la comunidad que tiene, los recursos disponibles y lo que se logra hacer con él.

En el desarrollo de software, los frameworks son componentes pre-programados que se pueden personalizar para acelerar el proceso de desarrollo. Estos componentes predefinidos pueden incluir bibliotecas de código, conjuntos de herramientas, compiladores o programas de soporte a los que se puede acceder según sea necesario (Gromenko, 2022).

El trayecto del Programador Fullstack y Jefe de División, Reinier Pupo hacia Java fue un poco más largo y tuvo algunas curvas.

Cuando estaba en la universidad el primer lenguaje que aprendí a utilizar, y que más emplee como parte del plan curricular, fue C++. A partir del tercer año, entro a un proyecto de desarrollo , donde el lenguaje que se utilizaba era C# (C-Sharp), y lo utilicé mucho. Entonces fui especializándome en el área de procesamiento de imagenes y videos digitales, y ahí sí se utilizaba mucho el C++. Por lo tanto lo que más programé en esa etapa de la UCI y en el tiempo que estuve trabajando ahí después de que me gradué fue también C++.

Luego llegó una etapa como de dos o tres años en que salgo de la UCI y no programé. Y cuando llega la pandemia me pongo a estudiar programación web y Java, y fue entonces cuando apliqué para entrar a Dofleini. Llegué con un nivel básico de esos lenguajes, de esas tecnologías, y poco a poco, con el tiempo, uno va cogiendo más nivel. Y hoy por hoy ese es mi  día a día, el Java.

Para mí ha sido gratificante porque me ha enseñado que la web tiene un abanico muy amplio de tecnologías, de lenguajes que se pueden utilizar, que se pueden explotar. Hoy por hoy sigo pensando que C++ es un lenguaje muy robusto, todavía muy utilizado. Pero el que se utiliza mucho más es Java para la programación web, que es casi omnipresente. Me gusta seguir

superándome en esas tecnologías e ir actualizándome con los nuevos adelantos para que el trabajo día a día salga.

Pero cuando se habla de lenguajes, no solo de Java vive el hombre, como demuestra Erick Vega De la Cruz, Socio fundador y Jefe de División. Su favorito es Scala, un lenguaje de programación de propósito general, fuertemente tipado, que combina dos paradigmas que son de los más usados dentro de la industria: la programación orientada a objetos y la programación funcional. Una de las cosas que Erick más valora de Scala es lo consiso del lenguaje, como logra ahorrar en caracteres a la hora de escribir el código:

En esta industria del desarrollo de software tú te das cuenta con el tiempo que pasas más tiempo leyendo el código que escribiéndolo. Cuando vas a hacer algo desde cero, es bastante sencillo, bastante rápido. Pero no siempre estás escribiendo códigos de cero, de hecho, la mayoría de las veces lo que estás haciendo es rescribiendo códigos o tratando de arreglar códigos, ya sea escritos por otra persona o por ti mismo tiempo atrás, y ahora le estás dando mantenimiento a un programa que ya hiciste. Entonces yo considero muy importante que las herramientas que yo utilizo para desarrollar el software me obliguen o me induzcan de alguna manera a ser conciso en cuanto a lo que escribo.

Siguiendo por esta línea, otra característica que tiene Scala que hace que sea de su referencia es que es muy “expresivo”:

Básicamente, en Scala cuando declaras una clase, cuando declaras una función, que son cosas que normalmente hacemos cuando estamos programando, las expresiones que se utilizan para declarar la clase o para declarar la función son similares. Entonces, esa forma de escribir códigos que hace que todo sea una expresión, te hace en consecuencia ser “expresivo”. Y esa es otra de las cosas que también adoro de este lenguaje. Porque cuando voy a leer de nuevo el código que hice hace un mes atrás o que hizo otra persona, al ser expresivo y conciso, eso me ayuda muchísimo a leerlo.

Definitivamente el Big Data y todas sus aplicaciones han sido de los saltos tecnológicos más importantes de los últimos años, y en ello Scala también tiene su lugar.

Scala ha tenido mucha incidencia en esta área porque hay un framework que se llama Apache Spark que se ha utilizado mucho en la industria para hacer este tratamiento masivo de datos. Estamos hablando de terabytes y terabytes de datos que pueden ser tratados con una herramienta que permite hacer combinaciones, búsquedas específicas, filtros, etc. y ofrecer valor agregado a partir de ello. También está, y esta es el área en la que yo más me he desempeñado en los últimos tiempos en la empresa, y es la que más me ha gustado, el stream processing. Scala tiene varias herramientas que ayudan a eso. Muchos grandes de la industria, por ejemplo Twitter, Facebook, Amazon, Google, Netflix, entre otros, utilizan este tipo de herramientas tanto de Big Data como de stream a la hora de sacar conclusiones, de hacer recomendaciones, etc.

De hecho, hace poco Elon Musk publicó el algoritmo de recomendación de Twitter (Dixit, 2023), y cuando tú mirabas, alrededor del 50% del código estaba escrito en Scala. ¿Por qué? Porque es un lenguaje que facilita el uso y creación de este tipo de herramientas que son muy dúctiles y ayudan mucho a la hora de hacer procesamiento continuo de datos.

La empresa Lightbend tiene una herramienta que se llama Akka, que fue en su momento, y yo creo que lo sigue siendo, disruptiva a la hora de su introducción en la industria. Es una herramienta que nosotros utilizamos en Dofleini y que es muy buena porque ofrece muchas funcionalidades para trabajar, no tanto Big Data como sí streaming. También te permite trabajar con la concurrencia, por ejemplo en este tipo de tiendas virtuales que reciben muchos pedidos y tú necesitas atenderlos todos, que no se quede ninguno fuera, pero no sobrevender nada tampoco, Akka como herramienta trae una serie de funciones que te ayudan a lograr ese objetivo.

Pero claro, no todo es color de rosa, y, de acuerdo con Erick, hay dos grandes debilidades que tiene Scala.

Este mundo del desarrollo de software no escapa tampoco al facilismo que se ha asumido en los últimos tiempos en que se quiere hacer todo sencillo, rápido y perfecto. Y en programación eso no es así, pero cierto es que muchos de los frameworks últimamente han contribuido a eso, a tratar de facilitarle las cosas a los trabajadores. En Scala esto no ha sido así, y entonces dentro del ámbito comercial, en aras de adoptar más desarrolladores, de adoptar más herramientas que se desarrollen con el lenguaje, esto ha sido un hándicap. Y para muchas de las herramientas, a pesar de estar muy bien documentadas, la curva de aprendizaje es muy grande. Eso crea rechazo porque tienes que leer bastante, tienes que estudiar mucho y no te sale tan sencillo como otros lenguajes, aunque ninguno se acerca a este en términos de tratamiento de la concurrencia, de hacer streaming, etc.

Otra debilidad es la comunidad. En otros lenguajes si tú tienes una duda y haces una pregunta en un foro, enseguida te prestan ayuda y te ponen varios ejemplos. Sin embargo cuando se trata de Scala a mi literalmente me han dicho “tienes que estudiar un poco más, el problema es que tú no has entendido mucho el lenguaje”. No suele ser muy comunicativa ni de mucha ayuda la comunidad, tienen esa fama y a veces hacen honor a ella.

Una diferencia como la noche y el día con las comunidades de Java, que todos mis entrevistados describen como uno de sus puntos clave. Pero, al parecer, estos dos lenguajes que “florecen” en ambientes distintos, no pueden evitar estar conectados. Erick nos cuenta:

Martin Odersky, que es el creador de Scala, estuvo dentro del comité de creación del lenguaje Java, incluso trabajó dentro del área de genericidad y compilación de dicho lenguaje. Luego de esto y con sus propias ideas en mente fue que diseñó Scala, cuyo nombre viene a significar algo así como que es “escalable”, que era como él entendía que debía ser un lenguaje de programación,  que soporte todas las buenas prácticas o los buenos conceptos para el lenguaje en sí, pero además que fuera capaz de crecer conforme los desarrolladores o quienes lo usaban fueran pidiendo más cosas.

Ya conoces un poco más a los hombres y mujeres “detrás de la máquina” en Dofleini. Posiblemente puedas identificarte con ellos. Quizá te motiva todo lo que se puede hacer de cara al usuario, como Michelle. Quizá pasas los días batallando en esas comunidades un tanto tóxicas en búsqueda de información, como Erick. A lo mejor tu viaje ha sido un poco más largo, como el de Reinier, y no sabes qué te pueda sorprender por el camino. En cuanto al medallero de lenguajes favoritos, Java supera a Scala, pero tú puedes cambiar eso, incluso añadir otro lenguaje a la mezcla. ¿Cuál es tu preferido? ¿Por qué? Esperamos leer tu historia en comentarios.

Referencias

Dixit, P. (2023, 2 de abril). Elon Musk keeps his promise as Twitter officially makes some of its source code public. Business Today. https://www.businesstoday.in/technology/news/story/elon-musk-keeps-his-promise-as-twitter-officially-makes-some-of-its-source-code-public-375732-2023-04-02

Gromenko, A. (2022). What Is The Difference Between A Programming Language And A Framework? Code & Care. https://code-care.com/blog/what-is-the-difference-between-a-programming-language-and-a-framework/

Lawton, G. (2023). What is Stream Processing? Introduction and Overview. Tech Target. https://www.techtarget.com/searchdatamanagement/definition/stream-processing

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 4.8 / 5. Recuento de votos: 4

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Déjanos tu comentario