Blog Personal de Maxxcan Fox
29/12/2022

Análisis subjetivo de la encuesta anual de Stack Overflow

Introducción

Cómo todos los años el famoso portal Stack Overflow nos brinda el resumen de este año acerca de las tecnologías más usadas y/o queridas u odiadas. El análisis completo lo podemos ver aquí.

analisis_stack-overflow.png
Figure 1: Análisis de Stack Overflow

En mi cápsula de Gemini tengo un artículo sobre esa manía de mucha gente de equiparar uso con calidad en el mundo de la informática, y también en otros ámbitos, pero sobre todo últimamente en el de la informática donde cada vez más escucho el argumento de que hay que aprender tal tecnología o que tal tecnología es mucho mejor porque se usa mucho. Entiendo que es un concepto muy humano, somos animales sociales y tendemos a pensar que si algo lo hace mucha gente es porque es bueno. Todos conocemos el famoso dicho, algo tendrá el agua cuando la bendicen, pero también es un asunto muy capitalista/consumista ligado a la publicidad ya que es muy habitual que te convenzan de que compres un producto con el argumento de que es muy usado y claro, miles de personas no pueden estar equivocadas…. ¿o sí?

Los que llevamos muchos años en este mundo de la informática o simplemente si te gusta leer un poco sobre la historia de ésta sabemos que siempre han habido tecnologías que han sido muy usadas por diversos motivos y no siempre porque sean mejores o al revés, muy buenas tecnologías que han pasado completamente desapercibidas.

Por todo esto, yo voy a hacer un análisis del análisis de Stack Overflow pero enfocándolo en lo que a mí me gusta y justificando mis cosas usando este análisis.

Veréis que mi análisis es completamente subjetivo en algunas ocasiones y en otras veréis que tiene sentido lo que digo. También podéis pensar, pero ¿qué que estás contando?. Así que este artículo sirve tanto para que penséis sobre la validez de estos análisis como también para reírnos un poco de nosotros mismos.

Sobre mis gustos y tendencias en el mundo de la tecnología

Como el análisis es puramente subjetivo antes tengo que poner un poco en antecedentes sobre mi persona en cuanto a gustos y opiniones personales sobre este mundillo.

Por un lado cada vez soy más minimalista, me gusta los entornos, sistemas operativos, tecnologías en general que sean cada vez más simples y que se basen en hacer su cometido. Esto antes se llamaba la filosofía UNIX, en plan, haz una cosa pero hazla bien, y en general es mi planteamiento. Sólo rompo ese principio a la hora de usar una herramienta que para mí es "La herramienta" que es Emacs, que aunque es una tecnología antigua tiene poco de filosofía UNIX ya que no hace una sola cosa bien, hace muchísimas cosas a la vez pero de forma increíble. Podéis verlo en su web.

emacs-dark.png
Figure 2: El mejor programa que se ha podido hacer

Por otro lado, y siguiendo ese planteamiento de minimalismo también me pasa con el tema del hardware. Trabajo con ordenadores antiguos o de poca potencia tipo Raspberry Pi o semejantes y considero que muchos lenguajes y tecnologías actuales hacen lo mismo que las antiguas pero necesitando mucho más hardware. Por ejemplo, veo que hay un gran amor por Rust, que debe ser un lenguaje genial pero cuando compilo cualquier proyecto con Rust tarda muchísimo para al final producir un programa que hace lo mismo que un programa programado con C, que es compilado en muchísimo menos tiempo. Luego por ejemplo, con el ejemplo de C, ¿cuánto ocupa de espacio el compilador de C?, ¿llega a megas?, en cambio cuando me descargo el de Rust o Go son como mínimo son 500 megas. Por favor, que alguien me explique en donde se van esos 500 megas, para hacer al final un programa que se puede hacer igual en C.

Otros de mis gustos es que al final le cojo manía a los lenguajes que usa todo el mundo con la excusa de que, es que lo usa todo el mundo, hablo de ti Python, que además te fuerza a identar el código, que lo mire por donde lo mire no veo la ventaja de eso. Y lo mismo me pasa con ciertos IDEs que hace cuatro días te decían que eran los mejores porque todo el mundo los usaba y ya veremos como han descendido su uso en lo últimos años, y ya os digo que en futuro algunos de los que ahora son muy usados también desaparecerán. Emacs o Vim, por ejemplo no son los más usados pero llevan 30 años Vim y 40 Emacs, así que me río yo de los que han durado 5 o 6 años como Atom.

Además la batalla de los editores Vim vs Emacs es tan mítica y antigua como la propia informática.

vim-vs-emacs.png
Figure 3: La sempiterna batalla entre Vim y Emacs

Además en cuanto a programación y al gustarme más la tecnología antigua realmente empecé a disfrutar de la programación cuando descubrí LISP (el segundo lenguaje creado y que se sigue usando y enamorando a partes iguales), y de todos sus derivados como Emacs Lisp, Clojure, Scheme, Guile, etc. Haré hincapié en ellos simplemente porque me gusta y el análisis es mío y ya sabéis el dicho.

Por cierto, el otro día leí que esa manía de los informáticos de hacer nuevos lenguajes que básicamente hacen lo mismo que los antiguos es porque una característica de ellos es que son gente muy narcisista que se creen mejor que nadie y por lo tanto consideran que pueden reinventar la rueda haciéndola mejor para al final hacer una rueda que hace lo mismo pero es más cara.

Para terminar haré algún apunte social sobre que el 95% de los programadores son hombres blancos y heterosexuales y de países ricos, con el problema que eso conlleva. ¿Creéis que no? Esa manía de rehacer la rueda más cara es porque al ser blancos narcisistas y ricos no les importa que otra persona de un país pobre no se pueda permitir comprar su chupi guay rueda supercara.

Esto es algo en lo que estamos en contra los que amamos la permacomputación.

servidor-solar.png
Figure 4: Servidor Solar

Si sois informáticos estos últimos párrafos os los podéis tomar como queráis.

Vamos con el análisis

Voy a ir comentando cosas tal cual aparecen en el análisis de Stack Overflow

Cómo aprendemos a programar

Es interesante ver como da igual de donde seamos y cuales sean nuestros colores o equipo preferido aunque se sigue aprendiendo mucho en la Universidad, colegios, etc, cada vez se aprende más a través de Internet con cursos, blogs, videotutoriales, etc, y es que aunque aún hay gente que te pide título "oficial" vemos como la Universidad y en general la educación reglada se está quedando muy atrás en éste y muchos otros campos de la educación. Esto es algo para mirarselo muchos docentes y responsables de la educación en países e instituciones. Iba a hacer algún chiste sobre el tema pero es que viendo como están muchos universidades al menos en mi país es más para llorar que para reír.

educacion.png
Figure 5: Vemos como ya se aprende más por internet que en universidades

Tipo de desarrolladores

Si vemos esta parte no hay mucho misterio, aquí quien gana es "Juan Palomo" porque es que la especialización todavía ni la hay ni se le espera. Esperemos que esto vaya cambiando pero hay que ver lo que cuesta ¿verdad? Si se ven algunos perfiles como Devops, profesional en la seguridad, etc, pero nada, un porcentaje muy bajo y es que es algo que siempre me ha quemado de la informática que te piden de todo.

Os pongo un ejemplo, una vez una amiga de mi madre me preguntó si podía arreglarle la aspiradora porque claro, como yo sé de cables y esas cosas… Seguro que tenéis historias igual o peores ya que parece que eres informático lo puedes arreglar todo y ésto si vemos las películas donde básicamente el informático es el comodín para los guionistas gandules para solucionar situaciones de todo tipo pues ahí tenemos la explicación.

Cómo somos los informáticos

Pues como ya he dicho en la introducción somos hombres, heteros y blancos. También os lo digo que o se miente mucho en las encuestas en el tema de la orientación sexual o no me cuadra pero bueno y el tema de que el 90% de los programadores sean hombres es un problema muy muy gordo y el que me venga diciendo que las mujeres no programan porque no quieren o no les gusta o tiene un problema gordo o es imbécil, elegid la opción que más os guste.

Somos:

hombres.png
Figure 6: Somos hombres o eso se creen algunos.
blancos.png
Figure 7: Somos ¿blancos? yo tiro más a rosica

./images/heteros.png

normativos.png
Figure 8: Somos normativos…

¿Estamos locos?

Bueno la respuesta ya la conocemos y es afirmativa, como cabras pero es que el hecho de que haya un 10% con problemas de ansiedad no sé si achacarlo a un problema genético como otras enfermedades o es que nos lo causan en el trabajo. Si tenéis una enfermedad mental no dudar en ir a un especialista pero si la ansiedad os la causa el trabajo creo que quemar el edificio donde trabajáis cuidándose de que esté vuestro jefe y no vuestros compañeros puede ser una opción a estudiar. Si ahora alguien viene diciendo que estoy promoviendo la violencia que sepa que está totalmente equivocado, o no.

ansiedad.png
Figure 9: Condición mental

Tecnologías más usadas

Bien, gana de calle JavaScript y HTML/CSS, pero no voy a decir nada de momento. El resto de tecnologías más usadas tienen que ver con Javascript por lo tanto, npm, node.js, etc, pero como digo esto lo dejaremos más en contexto en unos apartados más abajo.1

javascript.png
Figure 10: El lenguaje de programación más usado

Qué IDEs usamos

Bueno, el más usado hoy es el Visual Studio Code, lo que denota que ser programador e inteligente no va siempre de la mano.

visual-studio-code.png
Figure 11: El IDE más usado es Visual Studio Code

Mi maravilloso Emacs tiene una cuota de 4.51% que a mí me sobra y aunque es menor que Vim es mayor que Rstudio. Y esto, ¿os importa a vosotros? no, pero a mí por mis peleas concretas de usar Emacs como mejor IDE para análisis de Datos por encima de Rstudio sí. Cosas mías.

emacs-vs-Rstudio.png
Figure 12: Emacs está por encima de Rstudio

Eso sí, el hecho de que Vim tenga una cuota de uso mayor que Emacs es porque la mayoría de gente abrió una vez Vim y como aún no han sabido salir del programa ahí lo tienen abierto para los siempres jamases y claro desvirtúa el análisis.

exit-vim.jpg
Figure 13: Cómo salir de Vim meme

Herramientas Síncronas

Esto es más bien para videollamadas y esas cosas y aunque Teams y Zoom son los reyes hay que decir que las opciones de Software Libre ni se mencionan básicamente porque no tienen grandes empresas detrás gastándose mucha pasta en publicidad. Si queréis buenas herramientas para videollamadas para vosotros o vuestra empresa usad Jitsi o BigBlueButton, le da mil vueltas a Zoom o a Teams.

Tecnologías que amamos versus tememos

Me gusta este cambio porque otros años en los análisis de Stack Overflow ponían algo así como tecnología que amamos versus odiamos. Es algo así como tecnologías que nos gustan mucho versus otras que usamos por narices pero no nos gusta nada. Esta vez se refieren más bien a tecnologías que amamos versus tememos. Esto quiere decir que algunas tecnologías pueden ser buenas pero a lo mejor mucha gente teme por diversos motivos, no porque sean malas, puede ser por malas experiencias, curva de aprendizaje dura, o que como he dicho ser programador y ser inteligente no siempre va de la mano.

Vamos a ver algunas que me han llamado la atención:

Lenguajes de programación, de scripting o marcado.

rust-clojure.png
Figure 14: Rust y Clojure los más queridos
  • Rust enamora a la gente, ¿por qué? yo aún no lo sé. Como digo lo estuve probando y me gustó, si sabes C++ te será fácil hacerte con Rust y supongo que al ser más moderno tiene cosas mejores hechas. Pero como digo en mi ordenador compilar un programa con Rust tarda como 4 veces más tiempo que otro en C++. Tengo que estudiarlo más o que alguien me cuente su experiencia.
  • Pero están mis adorados Clojure y Julia de los más amados que son Derivados de LISP. Curiosamente LISP no es de los más amados pero es por la gestión de las librerías que reconozco que es durilla. Como digo cosas curiosas.

Pero más curioso es por otro lado que R esté a la par de C, no lo entiendo porque claramente R es más fácil de entender que C pero bueno. Esto a mí me viene bien porque colaboro con un grupo que queremos potenciar el uso de Clojure para el análisis de datos como alternativa a R y Python. Si queréis saber más de ese grupo aquí os dejo el enlace.

r-mal.png
Figure 15: R también es bastante temido y tampoco sé por qué

Los Web frameworks

Aquí tengo poco que decir. Salen frameworks como setas cada 10 minutos y los que ayer eran populares ya no y viceversa. Clojure en concreto tiene pocos web frameworks como tales. Solo algunos como Fulcro o Luminus pero por otro lado su forma de trabajar es más bien tener muchos módulos donde el programador puede elegir como hacer su aplicación web, de escritorio o móvil. O invito que le echéis un ojo a Reframe, por ejemplo.

  • IDes
    neovim.png
    Figure 16: NeoVim es el más amado por el momento.

    Aquí vemos como Emacs aunque menos usado que Vim claramente la gente lo adora más. Como ya he dicho los usuarios de Vim lo siguen usando porque aún no saben salir del programa algo que les sigue frustrando. Y de NeoVim no hablo porque simplemente no me interesa. Vuelvo a recalcar que esto es un análisis subjetivo y me fijo en lo que me da la gana.

    Eso sí, esto también me vale para los amantes de Rstudio ya que tengo unos cuantos en mi entorno y que podemos ver como no lo quiere realmente nadie.

    rstudio-mal.png
    Figure 17: Por alguna razón que tampoco entiendo R-studio es muy temido

    Como nota final vemos como Atom hace 5 años era lo mejor de lo mejor y ahora es lo peor de lo peor. Esto es como el mundo del espectáculo que te quieren y te odian de un día para otro. No hay piedad, sólo los verdaderos programadores seguimos siendo fieles a nuestros IDEs año tras año, lo demás es fandom despreciable.

Otras herramientas

Aquí como sorpresa me llevo que Slack le gusta a la gente, no sé por qué ni quiero entenderlo, pero es horrible porque mucha gente lo usa como fuente de documentación y no tiene sentido. Posible documentación se pierde en conversaciones inútiles, por eso digo que herramientas como los grupos de Usenet eran realmente mucho más efectivos y útiles. Aún así y con todos sus fallos he encontrado una herramienta que permite usar Slack como fuente de documentación. Kbclip te permite salvar conversaciones de Slack como documentación bien escrita. También hay por ahí algunas otras alternativas.

Usuarios de herramientas que quieren trabajar con otras herramientas

Luego hay unos gráficos muy monos sobre usuarios que usan determinados lenguajes, IDEs, bases de datos, etc, y qué porcentaje de ellos usarían otra herramienta y cuál.

Echadle un ojo que es muy interesante pero yo recalco que muchos usuarios del IDE más usado que es Visual Studio Code quiere probar otros. Por ejemplo, eso no pasa con los usuarios de Vim, no sé si por amor a su Editor o porque no pueden salir del programa y los usuarios de Emacs ni aparecen ni se les espera porque está claro que el usuario de Emacs no quiere usar ni otro IDE ni otro editor, ni otro programa ni siquiera otro Sistema operativo que no sea Emacs.

probar-otras-cosas.png
Figure 18: Los usuarios de Visual Code quieren probar muchos otras herramientas los de Vim no.

El dinero es dinero, aprende algo dinero.

money.jpg
Figure 19: Dinero, ese vil metal.

Podemos discutir si un lenguaje, herramienta, etc, es mejor o peor por ser más usado o menos usado. También podemos discutir si es mejor aprender un lenguaje, herramienta, etc, que sea muy usado porque eso nos va a facilitar el encontrar trabajo. Esto último parece evidente ya que puede que nos guste tal lenguaje pero a lo mejor en nuestra zona o país solo usan, no sé, .NET o Visual Basic porque la empresa que tenemos cerca aún mantiene unos servicios que usan esa tecnología. Pero se me pasó deciros que hay otro análisis donde evidencia que por fin el teletrabajo al menos en nuestro sector se ha impuesto al trabajo presencial y si como mínimo sabemos inglés podemos trabajar casi en cualquier parte del mundo desde casi cualquier parte. Precisamente ayer vi una oferta de trabajo para Clojure para teletrabajar en Alemania donde buscan gente de todas partes que sepa Clojure e inglés, el alemán se agradece pero no se exige.

Así que gracias a esa libertad tal vez no tengamos que preocuparnos tanto cual es el lenguaje que más se usa en nuestra zona sino cuál es el mejor pagado y aquí éste análisis no deja lugar a dudas.

clojure-top-pay.png
Figure 20: Clojure es el lenguaje mejor pagado

Como vemos mi querido Clojure es el lenguaje mejor pagado pero además en general los lenguajes basándose Lisp y los funcionales se llevan el gato al agua. Y si nos vamos a la tabla baja en cuanto a salario pues resulta lo obvio, los lenguajes más usados son precisamente los peores pagados, algo lógico, y los lenguajes menos usados son los mejores pagados. Incluso lenguajes como Cobol o Fortran o el propio Lisp que son lenguajes que tienen ya más de 60 años, están en la parte alta de la tabla en cuanto a salarios y los famosísimos lenguajes que todo el mundo te dice que aprendas como JavaScript, Java, Python, R o PHP tienen salarios muy bajos.

php-fatal.png
Figure 21: Como vemos lenguajes muy populares como php o html se pagan mal

Sobre R y Python para análisis de datos diré que llevo mucho tiempo diciendo que ya deberíamos pensar en lenguajes como Julia o el propio Clojure para ir sustituyéndolos aunque tengan muchas librerías muy interesantes que se siguen pudiendo usar desde otros lenguajes. En este caso los salarios me dan la razón.

Conclusiones

Estas son mis conclusiones pero por supuesto vosotros podéis sacar las vuestras y además me dejo muchas cosas en el tintero, así que os invito que veáis todo el análisis que se pueden aprender muchas cosas interesantes del él, por ejemplo, cómo hacer análisis visualmente interesantes.

Por mi parte, mis conclusiones son:

  • Los lenguajes funcionales y derivados de Lisp son los mejores. Por el momento.
  • Nunca os fiéis de alguien que diga que algo es mejor porque lo usa mucha gente. Hay un dicho que dice que millones de moscas no pueden estar equivocadas porque van a la m….
  • Emacs es el mejor programa para todo, y no se puede comparar con otros Editores, IDEs, etc, porque es todo eso y mucho más, y todo lo hace bien porque usa como lenguaje Emacs Lisp que es un derivado del mejor lenguaje que es Lisp.
  • Para mis amigos que usan Rstudio para análisis de datos solo decirles que es basura y que Emacs es mucho mejor y en este análisis se ve. Además resulta que Emacs tiene un lenguaje de marcado llamado org que es parecido a markdown pero mucho mejor básicamente porque markdown no es un estándar y cada hijo de vecino tiene su propio markdown totalmente diferente uno de otro.
  • Faltan muuuuuchas mujeres en el mundo del desarrollo y hay que solucionar eso porque estamos perdiendo el 50% de los cerebros del mundo que pueden darle una vuelta de hoja completa a cómo se programa o simplemente cómo se hacen las cosas. Y el que piense que no hay más mujeres en el mundo del desarrollo porque no quieren, no están preparadas biológicamente o cualquier excusa estúpida que se le ocurra es que no sabe de la misa la mitad.

Saludos y Feliz entrada de año.

pd: Una buena idea de aprendizaje de un nuevo lenguaje para el año que viene es aprender Esperanto. Os lo aconsejo y aquí os lo van a explicar muy bien.

Footnotes:

1

Spoiler. Cuando veamos los salarios

Categoría: stackoverflow, tecnologías, programación, informática
RSS
Creative Commons License
Maxxcan.com by Maxxcan Fox is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Si quieres contactar conmigo puedes hacerlo a través de mi correo maxxcan@disroot.org