¿Existe una correlación entre muy buenos ingenieros de software y lenguajes de programación?

Dejando a un lado que la definición de “muy buen ingeniero de software” es altamente subjetiva, diría que la elección del lenguaje podría ser una indicación sólida.

Compárelo con si la elección del instrumento define si alguien es un muy buen músico. Ciertos instrumentos son mucho más complejos de aprender y requieren más tiempo para dominarlos. Sin embargo, obviamente, todos los instrumentos tienen un lugar y una razón.

En lugar de solo mirar el idioma, primero miraría si una persona entiende el razonamiento detrás de un idioma. ¿Alguien realmente entiende los pros y los contras de un idioma? ¿Cuál es la razón para existir?
Saber diferentes idiomas (y de nuevo, los pros y los contras de cada uno) sería una indicación muy fuerte. Especialmente si esos lenguajes son de paradigmas diferentes y resuelven problemas desde un ángulo significativamente diferente.

Pero para un ingeniero de software moderno, hay una serie de cosas que definen una buena ingeniería que están más en el entorno que en el lenguaje mismo. Por ejemplo, ¿existen buenas herramientas para la depuración, las pruebas unitarias (incluidos los marcos), prácticas como la integración y el despliegue continuo, etc.
No ser consciente de tales herramientas (si están presentes) y prácticas sería una preocupación para mí.

Respuesta corta: SI.

Respuesta más larga y matizada:
Voy a responder primero haciendo una pregunta, ¿existe una correlación entre buenos escritores (novelistas, ensayistas, etc.) y con qué usan para escribir? ¿Qué tal el lenguaje que usan para comunicarse?

Los programadores son un poco diferentes, pero también bastante similares. Usamos los teclados que más se ajustan a nuestro estilo. Por ejemplo, Nietzsche usó este escritor de tipo loco:
Yo mismo voy y vengo entre el miniteclado de Apple, el Teclado Das – Teclado mecánico y la Ventaja para PC y Mac – Kinesis Corporation. El teclado es como un bolígrafo y papel, no debe interponerse en nuestro trabajo (siempre pensé que sería divertido crear una versión del teclado de Nietzsche, tal vez un buen proyecto paralelo …).

Los lenguajes de programación son exactamente iguales. A quién le importa el idioma (bueno, algunas compañías tienen estándares sobre lo que puede y no puede usar, e incluso a veces la sintaxis). El lenguaje que debe usarse es el que permite que la idea y la expresividad fluyan rápida y fácilmente. Como cualquier buen escritor sabe, el concepto también debe aparecer cuando otras personas leen su trabajo … … elegir el lenguaje de escritura para el trabajo es parte de aclarar la intención de su programa.

Seguramente hay otros factores a considerar, como el rendimiento. Esta es a menudo la razón por la que uso C o C ++ sobre el lenguaje de script favorito (Perl, pero Python es el segundo). Personalmente amo a Haskell, pero realmente no puedo codificar muchas cosas en esto que son para el consumo de otros (desafortunadamente Haskell sigue siendo un lenguaje de nicho).

En resumen, creo que hay una correlación entre un buen ingeniero de software y los idiomas que eligen. Los programadores eligen estas cosas porque se ven obligados a hacerlo o porque el idioma es la mejor herramienta para el trabajo. Los grandes ingenieros de software pueden resolverlo rápidamente y aplastar la tarea en cuestión.

Respuesta corta: sí

Muy buenos ingenieros de software generalmente conocen muchos lenguajes de programación que utilizan diferentes paradigmas (y a menudo los conocen en profundidad). En adelante, pueden cambiar el punto de vista sobre el problema en cuestión y, en ocasiones, cambiar las herramientas.

Si la pregunta implica de forma indirecta que un lenguaje de programación es intrínsecamente mejor que otro. También es probable que sea cierto. Hasta donde yo sé, ningún proyecto serio de la vida real usó BrainFuck como lenguaje de programación. Y no hay muchos proyectos de desarrollo en torno al uso directo del lenguaje ensamblador.

Pero, por otro lado, la mayoría de los lenguajes de programación principales son bastante similares, y creo que los ecosistemas alrededor de los idiomas (bibliotecas, marcos, IDEs, herramientas de depuración) son más importantes que los lenguajes (desde un punto de vista sintáctico) hoy en día.

De ahora en adelante, es muy probable que la correlación entre los programadores y el lenguaje sea indirecta, a través de proyectos interesantes (que atraen a buenos programadores), ecosistemas bien adaptados para estos proyectos y luego solo lenguaje de programación. También es probable que la educación, las comunidades, los líderes carismáticos y otros factores ambientales tengan un efecto mayor que las ventajas y los inconvenientes del lenguaje en sí …

De ahora en adelante, incluso si doy un sí definitivo a la pregunta. No creo que haya ninguna causalidad al usar un lenguaje para ser un muy buen programador.

Sí, pero es unidireccional. Un ingeniero de software muy bueno utilizará un lenguaje de programación adecuado para los requisitos de la tarea (incluida la disponibilidad, la compatibilidad con los recursos necesarios y el mantenimiento).

Pero el lenguaje no hace al ingeniero. No se puede saber si un ingeniero es muy bueno solo por el idioma; también necesita conocer los requisitos y el contexto.