¿Por qué algunos ingenieros de software no están dispuestos a aprender nuevas tecnologías y adaptarse?

Porque son mentalmente vagos. Se acostumbran tanto a hacer las cosas de una manera que les resulta incómodo cambiar su forma de pensar o subir una nueva curva de aprendizaje. Hay muchos ejemplos de esto, por ejemplo:

  1. Aprender y adaptarse a la programación funcional cuando están acostumbrados a la programación procesal y orientada a objetos.
  2. Aprender y adaptarse a Smalltalk cuando están acostumbrados a lenguajes de estilo C y herramientas basadas en archivos.
  3. Aprender y adaptarse a los lenguajes transpilados para la programación web cuando se utilizan para JavaScript y Angular / React / Express / Node / etc.
  4. Aprender y adaptarse a los idiomas de tipo dinámico y TDD cuando están acostumbrados a los idiomas de tipo estático. (Desarrollar con lenguajes dinámicos requiere una mentalidad diferente ).
  5. Aprender y adaptarse a Visual Studio o IntelliJ o Smalltalk cuando están acostumbrados a Emacs o Vim o Sublime Text.

Este fue un problema mucho menor en mi día (1980 y 1990). Mi generación fue mucho más flexible y adaptable. Por ejemplo, en el transcurso de mis 20 años en TI, cambié los empleadores y las pilas de software casi una docena de veces, cada vez requiriéndome subir una nueva curva de aprendizaje . Esto incluía cosas como DEC PDP-11 (y RSX-11M OS y lenguaje de ensamblaje), DEC VAX (y VMS OS y lenguaje DCL), Tandem NonStop (y Guardian OS y lenguaje de programación TAL), MODCOMP (y MAX IV OS y ensamblaje lenguaje), Unix y C, tecnologías de mainframe de IBM, desarrollo de controladores de Windows NT, etc. Estas tecnologías fueron tan diversas como te puedas imaginar.

Nunca me quejé. Los amaba a todos. Fue divertido y emocionante probar diferentes tecnologías. Estoy realmente perplejo por la actitud de hoy. ¿Por qué la generación actual de programadores posee mentes tan frágiles? Esa es una pregunta sociológica interesante.