Todos en la vida nos hemos preguntado ¿Cuáles son los lenguajes más utilizados?, ¿los mejores pagados? o simplemente cuales son los lenguajes que están en tendencia. Esas preguntas son muy naturales pues la tecnología avanza tan rápido que muchas veces no nos damos cuenta, por lo que el reto como programadores es siempre estar al día con las últimas tecnologías, ya sea por gusto o por conveniencia. Es por esta razón que siempre debemos estar atentos al mercado, para entrar en el juego antes que los demás y podemos posicionarnos mejor.
Por esta razón he decidido crear una lista con las 10 tecnologías que para mí son las que tiene mejor futuro este año
Tecnologías WEB
Las tecnologías web son aquellas que nos permite crear aplicaciones para la WEB, cabe mencionar que existe una gran serie de tecnologías emergentes que podría estar en esta lista, pero me inclinado por las siguientes:
React.js
React es sin duda, para mí, lo que vendría siendo el futuro del desarrollo web, ya que este más que ser un Framework es una librería JavaScript que ayuda exclusivamente a la construcción de la UI del lado del navegador. Esta característica permite que podamos seguir utilizando la tecnología de nuestro agrado en la parte del Back End. React es desarrollado por Facebook e implementado en muchos de sus proyectos, lo que garantiza la constante actualización y evolución. Lo más interesante de React es su concepto de Web Componentes, que nos permite crear elementos reutilizables que simplemente se reutilizan dentro de nuestra aplicación, de esta menare podemos crear nuestras propias etiquetas y utilizarlas cuantas veces queramos. Actualmente React compite fuertemente con Angular del cual hablaremos a continuación.
Angular
Angular es hoy en día, la tecnología favorita para el desarrollo web. Angular es también escrito en Javascript, lo que le proporciona una súper portabilidad al igual que React, sin embargo, Angular es un Framework, lo que implica que hace más cosas que solo construir la UI. Angular se encarga de crear las vistas, pero también se puede implementar la lógica de negocio, el acceso a datos y muchas más cosas. Debido a esto, Angular un gran número de fans. Sin embargo, tener todo en uno tiene un coste, y es que una vez que usamos Angular, estamos muy limitados a utilizar las tecnologías que queramos del lado del servidor.
React vs Angular
Finalmente, les dejo esta gráfica de Google Trends donde se aprecia a nivel mundial las tendencias de búsqueda que existe entre React y Angular. Podemos apreciar que entre 2013 y 2015 Angular estaba tomando una ligera ventaja contra React, sin embargo, podemos apreciar al final de la gráfica que React está recuperando camino y vemos una ligera recuperación, que a mi parecer se estará acotando cada vez más en este año. Si quieres mi opinión (y si no quieres pues de igual forma aquí está) creo que React estará tomando la delantera, pues utiliza el modelo de Web Componentes que a mi parecer es para dónde va el futuro de la WEB.
Lenguajes de Programación
Java
Java ha sido ya por muchos años unos de los lenguajes favoritos, es ampliamente utilizado a nivel mundial y sin duda una fuente de trabajo garantizado, ya que muchísimas empresas siguen contratando programadores de Java. Java es un lenguaje muy potente y que sigue en constante evolución, es mantenido actualmente por Oracle, lo que le garantiza una larga vida.
Java es como tal un lenguaje de programación, sobre el cual se dividen tres ediciones, Java Micro Edition (Java ME), Java Estándar Edition (Java SE) y Java Enterprise Edition (Java EE), siendo esta última la más ampliamente utilizada y demandad por el mercado. Java es literalmente un monstruo, tiene un sinfín de librerías y Frameworks que son por si solos todo un mundo, como es el caso de Spring, el framework más famoso de Java. Java es un lenguaje regido por especificaciones (JRS), las cuales son diseñadas en conjunto con las empresas líderes de la tecnología para crear un producto de excelencia.
Phyton
Python es de alguna manera similar a Java, un lenguaje interpretado, Open Source y multiplataforma. Es actualmente administrado por la Python Software Foundation, pero tiene un gran apoyo de la comunidad Open Source. Python se suele utilizar para la gran mayoría de Script que se escriben para Linux, sin embargo, se pueden crear aplicaciones completas con él, ya sea Web o escritorio. Los programadores de Python tienen una ventaja sobre los que programan en Java, y es que existe una mucho menor cantidad de programadores buenos, lo que hace que pueden cotizarse mejor en el mercado.
GO
GO es como la chica nueva de la cuadra, que todo se asoman a verla, porque su hermana se llama Google (Valla ejemplo jejeje). Pero es real, GO es un lenguaje muy nuevo que ha tenido una extraordinaria aceptación de la comunidad y no por ser un súper lenguaje de programación, sino por su creador (Google). Ahora, fuera de esto, GO está tomando fuerza, se escucha mucho de boca en boca, pero en la realidad es que hay muy pocas aplicaciones desarrolladas en GO (comparadas con los lenguajes líderes). A GO le falta en mi opinión un largo recorrido todavía, sin embargo, todo parece ser que será tendencia en unos años más, por lo que ir apostando (Recuerda que en las apuestas se gana y se pierde) por él puede llegar a ser una buena opción.
C/C++
C o para algunos el Señor C, es sin duda uno de los grandes veteranos de guerra de Vietnam, a pesar de ser un lenguaje “viejo” sigue siendo ampliamente demandado, y no solo eso, cada vez es mejor pagado, ya que cada vez existen menos programadores que quieren entrarle enseria a C. Cabe mencionar que cuando digo C me refiero a C o C++.
C tiene como principal característica su impresionante rapidez, es sorprendente-mente rápido, comparado con Java, es como poner a competir un Ferrari contra un tractor. Además, es súper eficiente en el uso de memoria (si lo usas bien) y tiene acceso al Hardware cosa que los demás no, lo que lo convierte en el preferido de la programación de bajo nivel. Ahora bien, si es tan viejo, por que debo de aprenderlo, en realidad es simple, es bien pagado y está tomando fuerza con la programación de IA debido a su gran rapidez.
Finalmente, veamos la gráfica de los lenguajes listados anteriormente. Creo que queda más que claro que Java sigue siendo el Rey en cuanto demanda. un que vemos una rápida caída en los últimos años.
Swift
Swift se ha convertido en una industria muy rentable, ya que los programadores que saben crear apps para móviles están teniendo repunte en los sueldos. Swift es un lenguaje de programación para crear aplicaciones para el sistema operativo IOS. Hoy en día el desarrollo para móviles ya es una tendencia, prácticamente todas las empresas que lo pueden financiar tiene una App para su empresa. También es un mundo más cerrado que Android, lo que limita más los programadores que pueden llegar a programar para este lenguaje. Saber Swift es garantía de tener trabajo y bien pagado, por lo que sería una buena inversión.
Android
No quisiera ser muy repetitivo, pero Android es muy parecido a lo que ya mencionamos para Swift, es una tecnología que va al alza y por otro lado, es el sistema operativo para Smartphones más utilizado, por lo que saber Android es también una garantía de un buen trabajo. Cabe mencionar que si sabes Java, ya tienes un gran camino recorrido.
Otras
MongoDB
MongoDB es una base de datos No SQL, lo que quiere decir que almacena documentos JSON en lugar de guardar sus datos en tupas. MongoDB está tomando mucha fuerza por el creciente uso de JavaScript y JSON, lo que lleva a las aplicaciones web a trabajar con documentos en formato nativo (recuerda que JSON es natural para Javascript). Ademas, tecnologías como NodeJS han incrementado la utilización de esta base de datos.
En la actualidad ya son varias las empresas que empiezan a utilizar esta base de datos, por lo tanto se estima en corto plazo ya se empiece a solicitar MongoDB como requisito para cubrir plazas de trabajo, así como actualmente se pide SQL.
NodeJS
NodeJS es en sí revolucionario, pues permite que podamos utilizar JavaScript del lado del servidor. Está tomando mucha fuerza en el desarrollo de aplicaciones WEB, sobre todo en aquellas donde el front end es escrito en JavaScript, como es el caso de React y Angular. Ademas, NodeJS permite levantar servidor súper ligeros, lo que favorece la creciente necesidad de migrar a la arquitectura de Micro Servicios.
Ya en día es requerido para algunos puestos de trabajo, pero yo creo que en un par de años será casi un requisito, por lo que empezar a aprender NodeJS hoy, puede ser una buena inversión.
Y el plus!!
Docker
Sé que dije que eran 10 tecnologías, pero sin duda esta no puede quedar fuera, ya que todas las tecnologías deben estar montadas en algún lugar, y es allí donde entra Docker. Docker es un sistema que nos permite crear y administrar contenedores, donde cada contenedor se podría ver como una máquina virtual (pero no lo es) en la cual podemos crear ambientes totalmente funcionales e independientes del resto. Los contenedores tienen la característica de que se montan sobre una única instalación de Linux, lo que ahorra muchos recursos contra el tradicional método de máquinas virtuales. hoy en día prácticamente todas las empresas serias usan docker para gestionar sus ambientes, por lo que no puedes dejar pasar esta tecnología.
Conclusiones:
Como comenté al principio, esta es mi percepción de las tecnologías que vale la pena invertir en este año, pues son basadas en mi experiencia y en lo que he logrado ver en mi día a día. Cabe mencionar que las tecnologías aquí mencionadas son las más demandadas para el desarrollo de software tradicional, sin embargo, existen otras tecnologías cerradas que son mucho mejor pagadas como los productos de Oracle, SAP y Sales force, solo por mencionar algunas. Por lo que tú debes de evaluar tu posición actual y como te ves en el futuro.
Tu qué opinas, ¿falto agregar o quitar alguna? Por favor coméntame.
Buenas tardes, Oscar:
Te felicito por tus contribuciones. Acabo de conocerte por el libro que has publicado sobre patrones que he visto disponible por amazon. Coincido en lo que nos indicas, y si me permites un añadido a estas tecnologías, creo que en nuestra profesión es esencial (como bien lo has hecho con el comentario de Docker) comentar otras que entran a formar parte en la “automatización” de nuestros propios procesos (desde el desarrollo a la puesta en explotación): “Gestión de la Configuración” (Ansible, Puppet, etc.), herramientas que facilitan la construcción y mantenimiento de entornos (“Sandbox”) de desarrollo portables (Vagrant, Docker, etc.), etc.
Básicamente (por lo que personalmente tengo entendido) aquellas tecnologías y nuevos paradigmas que subyacen tras el concepto “DevOps”.
Cordiales saludos.
Hola Rafael,
Primero que nada, muchas gracias por tus comentarios y espero que tanto el libro como el blog te sea de mucha utilidad, si estas interesado en el libro, te cuento que lo estoy distribuyendo de forma digital a través de https://patronesdediseño.com el cual está en formato PDF y con actualizaciones gratuitas de por vida.
Lo que comentas acerca de los DevOps es muy cierto, empresas como Google, Amazon y Microsoft están adoptando este enfoque, en el cual, básicamente son los mismos desarrolladores los que se encargan del desarrollo y la operatividad de los sistemas en producción. Y es allí donde entran todas estas herramientas que mencionas.
El tema de DevOps sería un buen tema de discusión, e incluso, me has dado una buena idea para escribir otro artículo 😉
No me queda más que invitarte a que te suscribas al blog para que recibas las actualizaciones y segamos en contacto.
Hola Oscar;
Encantado de conocerte, muchas gracias por tus comentarios, y me alegra haberte aportado algo. Por supuesto que me doy de alta en tu blog, que me ha parecido mas que interesante. Siempre es de agradecer a las personas que como tú, comparten su conocimiento y experiencia.
Seguimos en contacto, y sigue así. Gracias 😉
Excelente Rafael, seguimos en contacto.
saludos.