Tecnologías punteras: No es seguir una moda, es tener criterio

En el último post, hablamos de la pasión de los desarrolladores por su profesión y mencionamos la importancia de dedicar tiempo libre a la autoformación como esa característica común de los mejores desarrolladores. Para muchos de ellos, esa inquietud y necesidad de estar siempre actualizados, se ve frustrada cuando en las empresas que trabajan no pueden usar, no sólo las tecnologías más punteras o incluso las que ellos quieren, sino las que consideran que se adaptan mejor a las necesidades del proyecto. 

Viendo los datos de la última encuesta de SO sobre las 10 lenguajes/tecnologías más amados, temidos y buscados por los encuestados.

  • Los most loved de los desarrolladores que han trabajado con ese lenguaje o tecnología y que les gustaría seguir desarrollando con ellos: Swiff, C++11, Rust, Go, Clojure, Scala, F#, Haskell, C# y Pyhton.
  • Los most dreaded de los desarrolladores que no quieren volver a trabajar con Salesforce, Visual Basic, WordPress, Matlab, Sharepoint, LAMP, Perl, Cordova, Coffeescript.
  • Los most wanted de los desarrolladores que quieren tener la oportunidad de trabajar con Android, JavaScript, Python, Nodejs, AngularJS, Java, iOS, Arduino/Raspberry Pi, Swift, C#

Me ha llamado la atención tres cosas:

  1. El uso y el interés cada vez más de la programación funcional
  2. La cantidad de profesionales que trabajan (sobre todo en EEUU) con el CRM Salesforce y no quieren volver a hacerlo
  3. En España es más que habitual haber trabajado con Java e incluso android, y en esta encuesta aparece como uno de los lenguajes most wanted, es decir que todavía no han tenido la oportunidad de trabajar con ellos.

Ya sea por necesidad, tendencia e incluso moda, el hecho de no tener la oportunidad de estar actualizados, es sin duda uno de los principales motivos que explican que la rotación en este sector sea tan alta.

 

En la gran mayoría de las empresas, no es habitual usar los “most loved”, aunque nos duela

Julien Castelain es un (el) referente JavaScript. Desde que le conozco, admiro su carácter luchador y su filosofía reggae developer. Piensa que todos los lenguajes de programación hay que probarlos, porque si te gusta programar, te gustará conocer y experimentar, aunque no lo utilices en tu día profesional.  

Le pregunté su opinión sobre por qué  Swift, C++11, Rust y Go son tan amados por los encuestados y desde su punto de vista:  

  • Swift es un lenguaje mucho más accesible que Objective-C para desarrollar apps iOS o OS X. En lugar de desarrollar una app móvil en HTML5, se puede usar Swift y aprovechar las ventajas de una app nativa.  
  • C++11 es mucho más fácil de aprender y usar que C++98, en cuanto a trabajo con punteros, asincronía, iteradores y mucho más; lleva bastantes mejoras.
  • Rust es un lenguaje potente y más fácil de aprender que C/C++ porque permite programación funcional y tiene cosas muy interesantes a nivel de concurrencia.
  • Go es un lenguaje pequeño que tiene una “standard library” muy potente para desarrollar muchas cosas y gestiona la concurrencia de forma sencilla y eficaz.

Para Julien es fácil amar desarrollar con Go y Swift porque todo lo que haga Google y Apple, ya es amado. Suele estar bien hecho, pensado y desarrollado. Pero también es consciente del poder que tiene el marketing.

Pues sí,  yo también estoy de acuerdo con él que lo mejor es probar las cosas por nosotros mismos para tener una opinión propia,  asumiendo que en la gran mayoría de las empresas, no es habitual usar los “most loved”, aunque les duela su alma developer.

 

Hay que poner un ojo en los temas de domótica, por si llega a España esa tendencia

Javier Onsurbe son otros de esos referentes técnicos que ayudan a ser la guía para muchos desarrolladores. Su opinión siempre está cargada de sentido común y sabiduría. 

Me comentaba que revisando los resultados de la encuesta de Stack Overflow sobre las herramientas/lenguajes le ha llamado la atención que:

  • En la lista de los 10 lenguajes más amados aparecen 4 lenguajes funcionales Clojure, Scala, F# y Haskell, y sin embargo ninguno de ellos aparece en los más buscados. ¿Es por qué tenemos ahora una moda en el sector con la programación funcional? ¿Estamos anticipando tendencia o creandola?

Javier ha tenido oportunidad de batirse con Scala y reconoce que aunque le gusta mucho cómo resuelve las cosas, la curva de aprendizaje es dura. Sin embargo, dado que Java 8 incorpora un montón de conceptos de la programación funcional, se decanta más por la respuesta de que se está anticipando tendencia.

  • Le ha sorprendido también que en los más buscados esté Arduino y Raspberry Pi. Reconoce que es uno de esos frikis que tiene una Raspberry en casa (por cierto, yo también) pero se pregunta ¿hay tantos como para entrar en la lista de los más buscados?.

Javier reflexiona sobre ello y me comenta que tal vez en otros sitios se están haciendo temas de domótica a nivel comercial y todavía no nos hayamos enterado, así que nos aconseja que estemos atentos, por si acaso llega a España esa tendencia.

  • Con respecto a la lista de los más temidos, Javier me comenta  “a mi también me entra sudor frío al ver los miembros de la misma”.

 

Julien y Javier coinciden en la potencia de muchos de los lenguajes más amados, pero si se deciden utilizar en sus proyectos que no sea por qué está de moda sino porque es la mejor solución tecnológica.

A veces queremos trabajar y estar a la última, sin saber por qué, cómo y qué hace esa tecnología de la que todo el mundo está hablando. En cambio, otras respondemos a todas esas preguntas y nos anticipamos, creando tendencia 😉 

 

  • Raul Arabaolaza

    En mi opinión a veces puede parecer que las “modas” en las tecnologías o su evolución es un proceso aislado guiado quizás por unos cuantos “gurús” visionarios que de repente descubren un nuevo paradigma o tienen ideas brillantes que revolucionan el mundo. Pero en realidad es al revés.

    De la misma manera que ocurre en la ciencia las tecnologías “viven” en el mundo real y se adaptan y evolucionan debido a los requisitos de este.

    La programación funcional es un claro ejemplo, no es nada nuevo y durante mucho tiempo fue relegada por otros paradigmas como la orientación a objetos. Si ahora ha resurgido es porque la programación orientada a objetos empieza a no ser capaz de manejar de forma tan efectiva los, cada vez, mayores requisitos de concurrencia debido al gran número de conexiones y al gran volumen de datos que se maneja. Y el que los dispositivos móviles, el Big Data y IoT han cambiado totalmente las reglas de juego. Y al cambiar las reglas del juego hay que cambiar las herramientas.

    Nada está libre de un contexto y la tecnología menos. Creo que en la tecnología no se crea tendencia, los realmente visionarios son los que son capaces de captar los cambios de tendencia a nuestro alrededor antes que nadie y adaptarse a ellos o crear algo nuevo mejor (o resucitar algo antiguo) mejor adaptado a las nuevas circunstancias que vendrán.

    Dicho de otra forma, la tecnología no revoluciona el mundo, es el mundo el que obliga a la tecnología a cambiar.

    O eso opino yo, que puedo estar perfectamente equivocado.

    • Muy interesante lo que comentas Raúl. Muchas gracias por compartir 🙂

  • Pingback: Git, el sistema de control de versiones favorito por los devs. ()