La situación de JavaScript en el 2018

Hace aproximadamente 4 años – gracias a la colaboración de Ángel y Denis hablamos sobre la popularidad de JavaScript y efectivamente no ha sido una moda pasajera. Desde que Ricardo me hizo llegar la encuestas sobre “The State of JavaScript 2018” no he parado de investigar, leer, reflexionar y compartir con él los resultados obtenidos.

A día de hoy, el ecosistema JavaScript sigue creciendo y como menciona en la introducción de la encuesta: “JavaScript siempre está cambiando. Nuevas librerías, nuevos frameworks, nuevos lenguajes…Esto forma parte de la diversión, pero a veces es demasiado abrumador”.

Como recruiter, me gusta estar actualizada en estos temas porque me ayuda a mejorar en mi trabajo. Me permite tener una visión global del ecosistema JavaScript, las tendencias tecnológicas y entender las preferencias técnicas de unos y otros desarrolladores. Por eso, he intentado exprimir al máximo la encuesta, pero hay tanta información que me he centrado en lo que me ha llamado la atención y además, me permita aportar mi experiencia. Si queréis tener una visión mucho más completa, os aconsejo que reviséis en profundidad los datos de la encuesta y saquéis vuestras propias conclusiones. Sería muy interesante que compartáis vuestra opinión, así entre todos podemos tener un panorama más completo del ecosistema Javascript.

Demografía

Participación por país

Han participado 20.000 desarrolladores de JavaScript de 153 países del mundo.

Como era de esperar, EEUU domina la encuesta con el 24% de los encuestados. Después le sigue Alemania y Australia con aproximadamente el 5%.

En España, tenemos una discreta representación del 1,96%. Es decir, 396 desarrolladores han participado. Si eres uno de ellos sería interesante que comentaras tu opinión porque siempre que salen este tipo de encuestas de fuera de España, nunca conozco a nadie que me diga que ha participado. 

Salario medio por país

Uno de los datos que más me ha llamado la atención es el salario medio de los Suizos y los Noruegos. Sabemos que la vida allí es más cara y que los salarios son más altos que en España, pero no imaginaba que fueran tan parecidos a los salarios de los americanos.

En España, de los 396 encuestados, el salario medio es de $45k. No está nada mal si nos comparamos con países como Nigeria o Venezuela. Pero como ya sabemos, las comparaciones son odiosas y si nos comparamos con los americanos y los australianos, hablamos de una diferencia de $60K de media. 😓

Revisando los procesos de selección que he gestionado este último año para contratar desarrolladores/as JavaScript, ese $45k está bastante aproximado a mis datos, siendo 50K (Euros) el salario máximo.

Tamaño de la empresa

No entiendo muy bien la manera en la que han establecido los intervalos de números de empleados, sobre todo el salto que hay de 50-100 a 100-1000. Me genera confusión ese 20,4% de los encuestados.

No sé en el resto de países, pero en España no es lo mismo trabajar en una empresa mediana que grande.

Género

Por favor, echad un vistazo a la gráfica porque impacta. Todo está teñido de rojo. De los 20.000 encuestados, 18278 personas son hombres y 931 son mujeres.

No me hubiera sorprendido un mayor porcentaje de hombres que de mujeres, sabemos que la brecha de género existe, pero no me imaginaba tanta disparidad. Hablamos que tan solo un 4,5% son mujeres.😳

Es uno de los temas que más controversia ha generado por un posible sesgo de muestreo, pero según comentan los autores, no es así. De hecho, los resultados son bastante similares a los obtenidos en Stackoverflow.

Lo que no hay duda que apuntan estos datos -y que confirmo a través de mi experiencia gestionando procesos de selección- es que hay menos presencia de mujeres en la industria tecnológica.

JavaScript Flavors

A medida que madura JavaScript, los desarrolladores comienzan a mirar más allá de sus fronteras y crear idiomas y dialectos que se compilan con JavaScript.

  1. El 86,3% usaría de nuevo ES6 (Concretamente en España, es el claro ganador)
  2. El 54,3% ha oído sobre ClojureScript pero no le interesa aprenderlo
  3. El 51,7% no ha oído sobre Reason
  4. El 33,7% ha oído sobre TypeScript y le gustaría aprenderlo.

Cuando he visto estos resultados, lo primero que he pensado es que no recordaba haber hablado con ningún desarrollador/a que utilice Reason en su día a día. De hecho, mirando “Reason Usage by Country”, los países que más contentos están usando esta tecnología son de la India e Indonesia. Lo segundo, por qué hay 883 de los encuestados que trabaja gratis con ES6. ¿Creéis que este dato aquí -y a lo largo de la encuesta- se referirá a proyectos personales? 

Salario

Aunque la representación de encuestados en España es baja. Creo que a nosotros nos ayuda a tener una visión general de los salarios a nivel mundial. Por eso, estad muy atentos porque aquí es donde se puede hablar claramente de los salarios en función de la oferta-demanda:

  • $ 83.6k es el salario medio de un desarrollador que trabaja con Elm.
  • $ 91.1k es el salario medio de un desarrollador que trabaja con ClojureScript.

Pero lo más sorprendente de todo es que justamente los lenguajes menos populares son los que mejor se pagan, ambos además relacionados con la programación funcional.

Años de experiencia

Y seguimos en la misma linea de “used it, would use again”:

  • A mayor experiencia, mayor uso de Elm y ClojureScript.
  • A menor experiencia , mayor uso de Flow y Reason.

Si fuera desarrolladora y hubiera contestado la encuesta, estaría entre las 4810 personas que no había oído hablar de Flow. 😥

Otros sabores de JavaScript

Me han llamado la atención que tan solo 29 personas mencionan Vanilla JS (o como se dice en España, JavaScript “a pelo”), cuando en la mayoría de los procesos de selección me encuentro  que se valora mucho más tener un conocimiento profundo en JavaScript puro, sin hacer uso de ningún framework o librería. Supuestamente, si un desarrollador conoce en profundidad el lenguaje, trabajar con uno u otro framework no es tan relevante. ¿Estáis de acuerdo con esta afirmación?

Frameworks de JavaScript

Y hablando de JavaScript y sus frameworks, aquí viene la verdadera batalla.

Siguiendo un poco el estilo de la encuesta de StackOverflow, podríamos concluir que:

  • El más amado es React con un 64,8%
  • El más odiado es Angular con un 33,8%
  • El más deseado es Vuejs con un 46,6%
  • El que menos interés genera aprender es Ember con un 67,3%
  • Y el menos popular es Preact con un 28,1%

¿Cómo es posible que un 33,8% haya usado Angular y no quiera volver a utilizarlo? Viendo los resultados -y además confirmo por mi experiencia- los desarrolladores frontend (no backend) muestran más preferencias por React y/o Vuejs. De todas formas, este tema ha generado también bastante controversia, porque los creadores de la encuesta no establecieron distinción entre AngularJS y Angular. Por lo que es bastante probable que un % muy alto de personas, pensara que se refería a AngularJS.

Si hablamos concretamente de España, también sois más felices con React. ❤️

Salario y años de experiencia

Seguimos en la misma línea que comentábamos de los salarios en “JavaScript Flavors”. Los frameworks menos populares como Polymer, Ember y Preact -por cierto éste último ni me sonaba hasta hoy- son los que más se pagan y además son los más utilizados por desarrolladores con experiencia. Por el contrario, React, además de ser el más amado es el más utilizado “entre los más junior”.

Tamaño de la empresa

Como comentaba antes, no me gusta mucho la clasificación que han hecho en este punto. Pero siguiendo los resultados obtenidos es relevante mencionar que las empresas de mayor tamaño trabajan con Polymer y las de menos tamaño con Vuejs.

Intentando entender los motivos de una preferencia u otra. He leído que Vuejs, a día de hoy, depende demasiado de su creador y también que tal vez no sea tan corporativo como Polymer? 

Otros frameworks de JavaScript

Y de nuevo otras tecnologías que no conocía hasta hoy: Mithril, Marko, Choo, Reagent y Svelte.

Svelte ha sido mencionado por 190 encuestados. Su creador me ha aconsejado que veáis este vídeo sobre por qué Svelte puede ayudar a combatir la fatiga de JavaScript. (Lo sé, yo también caí en la trampa. Era por amenizar el artículo)

Backend Frameworks

Si trabajas como recruiter es bastante probable que tengas asociado Javascript al frontend. De hecho, todo lo que hemos hablado hasta ahora mismo es usado en el lado. Pero JavaScript, también es utilizado en el servidor y es ahora cuando hablamos de Nodejs.

Como veis en la encuesta existen muchos frameworks para backend, pero nos vamos a centrar en los más usados:

  • Express es el más amados por los encuestados
  • Next.js es el que más interés genera aprender
  • Koa es el desconocido por el  50,1% de los desarrolladores encuestados, pero es a su vez el mejor pagado
  • Meteor es el que menos interés genera aprender
  • Sails y FeathersJS son los dos frameworks menos populares.

Además, se menciona AWS Lambda como alternativa para crear aplicaciones web sin servidor y tal vez otra forma de entender el backend.

De todos resultados en este apartado, ha creado cierta polémica para los usuarios de Meteor que “su tecnología” se posicione en el cuadrante de “Avoid” (Tecnologías a evitar por su bajo uso y bajo nivel de satisfacción).

¡Sinceramente no me extraña que a muchos de vosotros os genere estrés todo lo relacionado con Javascript! Cuando he empezado con este artículo, pensaba que iba a resultarme más entretenido,  pero a medida que iba avanzando en la encuesta, estaba arrepintiéndome de dónde me he metido. Creí que más o menos tenía una visión de Javascript, pero ha sido llegar al backend y me han saltado mil dudas. Por ejemplo, en la mayoría de los procesos de selección de frontend, siempre me concretan el framework con el que se va trabajar. Unos son más de Vuejs, otros más de React, otros más de Angular… se tienen muy claras las preferencias. Pero cuando hablamos de Nodejs, los frameworks no son tan mencionados. ¿Quién me puede aportar un poco de luz sobre esta cuestión? 

Testing

Prueba, prueba y más pruebas. Hay bastante diversidad en las herramientas que utilizan los desarrolladores y en general, se muestran bastantes satisfechos con sus preferencias.

Los autores comentan en sus conclusiones que Mocha es el marco de prueba unitaria más utilizado, pero los resultados apuntan a que Jest tiene un índice de satisfacción ligeramente mayor entre los encuestados (96% versus 82%.). De hecho, tiene el segundo mejor porcentaje de satisfacción de toda la encuesta, después de ES6.

La encuesta muestra claramente que los desarrolladores utilizan muchas herramientas para probar sus aplicaciones. Además, 382 personas mencionan Cypress como el futuro del testing automatizado en el navegador.

Mobile & Desktop

Y si todavía no ha quedado claro ¡hasta dónde es capaz de llegar JavaScript!, hablamos de su alcance más allá de los límites del navegador. 

En España, los resultados -aunque tal no son muy representativos con 1,96% de encuestados- sí merece la pena mencionar como se distribuye ese porcentaje entre los usuarios de esta categoría y saber cuál genera mayor índice de satisfacción:

  1. Electron: 21%
  2. Ionic: 16,4%
  3. React Native: 16,2%
  4. Cordova: 15,2%
  5. Native Apps: 12,1%
  6. NativeScript: 1,5%

Si comparamos los datos de España con el resto de los resultados generales de la encuesta, coincide que Electron es la solución lider para crear aplicaciones móviles y de escritorio, pero también tiene un porcentaje interesante de satisfacción, Ionic y React Native. Además, es compresible que si hablamos de las preferencias por y para Javascript, es normal que el desarrollo de aplicaciones nativas (construidas con lenguajes como Java, Kotlin, Objective-C o Swift) no sea tan valorado por los encuestados, ¿no?. Pero de igual forma, tampoco hay que perder de vista que son los que mejor salario tienen.

Como anécdota, cuando he tenido que buscar candidatos con experiencia en estas tecnologías, he tenido menos dificultades para encontrar desarrolladores con experiencia en Electron e Ionic que en React Native o Cordova, por ejemplo. También, la mayoría de las empresas tienen preferencias por incorporar profesionales con experiencia en aplicaciones nativas pero dependiendo de los recursos económicos, conocimientos y experiencia del equipo, tiempos, arquitectura montada, preferencias, intereses, acuerdos, etc; es posible que decidan como primera solución, trabajar con aplicaciones híbridas.

Reflexión final

Todavía recuerdo cuando JavaScript era el raro de los lenguajes y generaba el interés de unos pocos. Empezaron a conocerle y darse cuenta que sus rarezas le hacían especial. Entonces, apareció jQuery para simplificar el código. Fue el favorito durante muchos años hasta que apareció Backbone. Pero su atractivo no se mantuvo durante mucho tiempo y AngularJS aprovechó la oportunidad, renegando de todos los demás. Pero éste tampoco funcionó como se esperaba y fue allanado el camino a React, el cual se convirtió en el más popular y el más amado framework de los desarrolladores.

Como en muchas historia de amor, cuando aparece un tercero, atrae por la novedad pero se llamaba de nuevo Angular y eso hizo resultar menos atractivo. Dejó claro que no tenía nada que ver con el de antes, quería demostrar que era más moderno. Y fue entonces, cuando la lucha por la popularidad, creó conflicto entre ambas comunidades. Como si Angular fuera más de los backend y React más de los frontend. Y mientras seguían con su lucha, Vuejs se fue haciendo visible discretamente, generando poco a poco y cada vez más, curiosidad por saber de él.

En paralelo, Nodejs fue ganándose el corazón de muchos frontend. Pero sobre todo, muchos desarrolladores backend especializados en otras tecnologías, dejaron a un lado sus prejuicios con Javascript  y empezaron a investigar sobre las posibilidades que ofrecía Nodejs.

De una forma o de otra, JavaScript pasaba de ser el lenguaje raro e incomprendido a quererle tal como es. Pero cuando todo parecía estar más tranquilo, aparece la programación funcional para el frontend. Para unos, todo se complica aún más. Para otros, se abre un nuevo mundo para aprender a desaprender. Llega la elegancia de Clojure y Elm. Pero… ¿Y cómo es Elm? ¿En qué lugar se enamoro de ti?

Continuará ….

Nota: Si eres desarrollador/a JavaScript y para el nuevo año 2019 estás valorando una mejora profesional, no dudes en escribirme a emma@talentoit.org y te cuento directamente todas y cada una de las oportunidades de empleo que estoy gestionando.