¿Qué lenguajes de programación van a estar presentes durante mucho tiempo (de 10 a 20 años) y cuál es la evidencia detrás de esto?

Muerto seguro
C y C ++ . Existe un enorme volumen de código escrito en estos idiomas, en un amplio espectro de usos, incluidas las grandes empresas corporativas que son muy conservadores en el cambio de su infraestructura, muchos de los principales Software como proveedores de servicios que sirven a estas empresas (y que, por tanto, tienen tanto su naturaleza conservadora como la de los clientes para vencer) y muchas aplicaciones científicas y financieras donde ningún otro lenguaje popular puede competir con rapidez en todos los casos de uso típicos.

SQL Igual que C / C ++, pero también respaldado y empaquetado para miles de clientes corporativos de gran tamaño por una corporación multimillonaria, Oracle, y utilizado en formas más baratas por muchos miles más.

Java. No creo que vaya tan bien como C / C ++, pero la mayoría de las mismas razones (aparte de la velocidad; Java es bastante rápida pero no C rápida) se aplican, y Java es probablemente el idioma más popular para enseñar. , que no cambiará por un tiempo dada la velocidad a la que se actualizan la mayoría de los libros de texto. Eso significa que dentro de 10 años, probablemente pueda estar razonablemente seguro de que un programador con menos de 5 años de experiencia tiene experiencia en Java, lo que tal vez no pueda decir en términos generales sobre otros idiomas.

Más especulativo
Python / Ruby / Javascript : estos lenguajes sustentan una enorme cantidad de desarrollo web, tienen bibliotecas excelentes y reciben mucha atención de la comunidad de código abierto. La mayoría de las aplicaciones web creadas hoy serán obsoletas, al igual que muchas de las bibliotecas, pero tienen un gran impulso en términos de sus ecosistemas, y la gente simplemente disfruta escribiendo en ellas por su naturaleza clara y concisa.

Matlab / Mathematica: lenguajes / entornos de programación bien mantenidos que son muy útiles en las comunidades científica y de ingeniería. Son productos que hacen un cierto trabajo bien, y creo que la gente seguirá pagándolos (también, inercia institucional; si algunas personas todavía escriben en FORTRAN hoy, estoy seguro de que Matlab puede hacerlo en otras dos décadas)

Más especulativa
Scala: Creo que está ganando mucho impulso; ahora está mucho más allá de Twitter, tiene un buen soporte de paralelismo, algunas bibliotecas buenas y se integra con Java. Es una versión más agradable de la programación funcional que muchas opciones disponibles. Hay mucho que gustar.

Consideremos los datos de la vida real (es cierto que limitados) que tenemos.

FORTRAN: 55 años
LISP: 55 años
COBOL: 53 años
BASIC: 49 años.
C: 41 años
Obj-C: 33 años
C ++: 30 años
Perl: 26 años
Python: 20+ años
Javascript: 18 años
Java: 18 años
PHP: 18 años
Ruby: 10 años

(BTW: 1995 fue un gran año para los nuevos idiomas!)

Básicamente, es difícil pensar en algún idioma que haya tenido una adopción generalizada y haya fallecido (¿SNOBOL? ¿ALGOL? ¿ADA? ¿Tuvieron alguna adopción generalizada?), Excepto:

Pascal, que fue popular durante más de 25 años, y todavía se usa en algunos lugares.

¿La familia como DBase? Fox / Clipper? Ese es mi mejor ejemplo de lenguajes populares muertos, pero nunca obtuvieron implementaciones gratuitas decentes, y estaban muy ligados a las bases de datos.

Entonces, supongo: todos aquellos que tienen implementaciones gratuitas y se usan ampliamente, tendrán alrededor de 10 y probablemente dentro de 20 años, al menos en alguna variante.

Prácticamente todos los idiomas que hay por ahí continuarán “existiendo” prácticamente para siempre. Las lenguas no mueren, solo pierden popularidad. Dicho esto, los que morirán con más fuerza (es decir, prácticamente nunca) son:

Ensamblador Se usa en todas partes, desde los núcleos del sistema operativo hasta los microcontroladores integrados. Claro, solo se puede usar con moderación y en ciertas circunstancias, pero siempre será necesario.

C y C ++ . Como ya han dicho otros, comprende la mayor parte de la mayoría de los sistemas operativos y muchas utilidades de bajo nivel, sin mencionar las toneladas de aplicaciones.

Javascript. Es compatible con prácticamente todos los navegadores y, de hecho, la Web ha llegado a confiar prácticamente en ella en forma de AJAX.

Hay varias razones para que un idioma se pegue.

Mantenimiento del código actual.
C, C ++ (nueva plataforma cada X años que necesita controladores de bajo nivel)
SQL (acceso a datos, incluso si NoSQL)
Java (será el nuevo COBOL)
Y también PHP (detrás de mediawiki, facebook, wordpress, etc.)

Rey de su propio ecosistema.
Javascript (solo uno disponible para scripts web del lado del cliente)
Macros de Excel (un poco bromas … pero no tanto)

Nuevos paradigmas, aumento de eficiencia y mantenimiento.
Python (impulsado por las comunidades de Ubuntu y Linux, en la web con Django y en la JVM con Jython)
Go, debido a la rápida iteración, la compilación de código nativo y la asistencia inmediata para las necesidades modernas (UTF-8, concurrencia)

Apuesta por una sorpresa
Todavía hay espacio para un lenguaje funcional diseñado para la calidad del software (“está bastante seguro de que estará bien si logró compilar”) y algo diseñado para manejar fácilmente la concurrencia masiva y el cálculo “en la nube”.
Tal vez Haskell, Erlang, F #.
No apostaría por Ruby, incluso con RoR, pero depende del movimiento de PHP y Python.
Como Scala sobre Java, o Dart sobre JS, tal vez simplemente tendremos nuevos lenguajes compilando al antiguo.
Por cierto, ¿notaste cómo Perl simplemente desapareció del radar?

Y si hace esta pregunta para saber cuál aprender, la respuesta es “la que necesita para su tarea” (no aprenda C para la web o Ruby para el desarrollo de controladores).

Estoy de acuerdo con todos en C y C ++. Es cierto que evolucionaron a partir de B y BCPL, que ahora son extremadamente raras, por lo que C y C ++ también deben tener un crepúsculo, pero no será por mucho tiempo. Su relación potencia / complejidad es demasiado buena.

Fortran estuvo a punto de irse, debido a la falta de interés entre las 77 especificaciones y las 90 especificaciones, pero está de nuevo en funcionamiento.

No hay implementaciones COBOL de código abierto completas y las licencias comerciales se encuentran en una etapa tonta. Lo mismo se puede decir de PL / 1. ¿Quince grandes por asiento? No es tanto que cualquier compañía pueda contratar a alguien para clonarlo, pero es suficiente que alguien debería hacerlo.

COBOL perdurará, por ahora, debido a los sistemas heredados. Entonces recibirá un avivamiento adecuado, a-la Fortran, o perecerá. PL / 1 necesita ese avivamiento muy pronto.

ADA es un gran lenguaje de enseñanza y se usa en sistemas de misión crítica. Existen versiones de código abierto. Pero necesita una especificación de limpieza. El tiempo de ejecución es demasiado pesado.

JavaScript es peligrosamente inseguro, en la actualidad. Necesita una revisión importante o reemplazo. La mayoría de los procedimientos de seguridad que he visto te dicen que lo deshabilites. NoScript sigue siendo un complemento muy popular. Sin embargo, la abrumadora popularidad significa que los reemplazos no vendrán pronto y se enfrentarán a una gran batalla.

Perl está sufriendo de Perl6, Python de una importante ruptura de API entre 1 y 2, luego entre 2 y 3. Ambos perdurarán, pero este tipo de desorden debe impactar en la popularidad.

Los motores de gramática de estilo Lex / Yacc no son compatibles con una amplia gama de idiomas. Eso probablemente resultará en enfoques agnósticos que eventualmente los reemplazarán.

Java tiene una gran popularidad, pero Oracle perdió mucha credibilidad sobre OpenOffice y MySQL, y la supresión de implementaciones Java alternativas perjudicó la propagación del lenguaje. No era necesario para mantener el lenguaje puro. Creo que Java, por ahora, es vulnerable a eso ya la lentitud percibida y las vulnerabilidades de seguridad. No se ofrece una máquina virtual que sea agnóstica para la máquina y que sea compatible con el navegador. Tcl ha tenido una oportunidad, y muy buena en eso, en convertirse en el lenguaje de elección de máquina independiente, pero tenía problemas de estabilidad API y también Motif a L&F. No abrirá el mercado ahora, aunque seguirá siendo un lenguaje muy poderoso para el futuro previsible.

Para ensamblar, C / C ++ será durante muchos años, hay muchos códigos escritos en estos idiomas: sistemas operativos, videojuegos, sistemas integrados, navegadores web, etc. Es difícil que un idioma sea tan utilizado como estos idiomas

Dado que muchas empresas tienen códigos escritos en estos idiomas, es difícil que esos idiomas desaparezcan.

Para el desarrollo web, creo que Ruby y PHP van a existir por más de 10 diez años. Será interesante ver cómo evolucionan esos lenguajes.

Creo que se crearán muchos lenguajes que compilan a lenguajes más antiguos.

C / C ++: El rey de todos los idiomas – ciertamente seguirá existiendo.

Java: Java se ha vuelto demasiado hinchado. Pero dado el uso generalizado, seguirá existiendo, pero la popularidad puede disminuir.

Scala: Me encantaría ver sobrevivir a este lenguaje. Aunque la codificación en lenguaje funcional sigue siendo popular entre los programadores de élite, pero dada la embestida de la computación distribuida, este lenguaje hace que despegue entre la comunidad de programación más grande.

Python: lenguaje de scripting, Python seguirá siendo popular.

Si pregunta ¿Qué idiomas debo aprender para mantener la empleabilidad?

Entonces
C / C ++: muchos componentes críticos de los sistemas se escriben en este, por ejemplo, Linux Kernel.
Java: creo que hay más líneas de código en Java que en cualquier otro lenguaje
Cobol: no vas a creer cuánto de la sociedad moderna todavía depende de Cobol: bancos, aerolíneas, minoristas. Es un código aburrido pero muchas corporaciones ricas confían en él.
SQL y derivados – realmente reemplazando a cobol en las cosas “aburridas”

Todos estos estarán disponibles por otros 20 años, y es probable que ninguno sea “Rey”.

Si está buscando el “Rey”, el mejor pago / dónde está la acción, a continuación, los lenguajes de secuencias de comandos, por ejemplo, Python, debido al rápido despliegue, etc. Muchos de los carteles anteriores han destacado candidatos, sin embargo, es casi seguro que no lo harán. ser lo que esperas

Saber cómo funcionan los diferentes idiomas y entornos es probablemente más efectivo; de esa manera, cuando se presente uno nuevo, se puede decir “es como X, pero con X, Y, Z diferencias”.

C. Este es el lenguaje del kernel de Linux y muchas cosas complementarias a su alrededor.

Y Linux … Bueno, si lo que sea que esté sosteniendo, sentado, viendo tiene un núcleo de CPU más amplio que 16 bits, es probable que Linux esté allí en algún lugar.

A juzgar por el hecho de que Cobol todavía existe, diría que cualquier cosa de uso generalizado hoy en día será popular en las próximas dos décadas.

Nadie menciona C #. Interesante, muy popular en estos momentos. Este lenguaje ha estado en uso expandido por 14 años. Existen varias iniciativas para moverlo más allá del estándar de Microsoft CLR a otras plataformas.

Estoy de acuerdo con las personas que tienen más confianza en C. Para mí, esta es una aplicación de la heurística de que las cosas que han durado mucho tiempo tienen más probabilidades de durar mucho más tiempo.

Tome las Siete Maravillas del Mundo, por ejemplo. Cuando los griegos se decidieron por las Siete Maravillas, las pirámides de Giza habían existido durante miles de años, mientras que los otros monumentos tenían, como mucho, algunos siglos de antigüedad. Y por supuesto, las pirámides de Giza han durado hasta nuestros días, mientras que todas las demás han sido destruidas, muchas en pocos siglos.

En un momento se estimó que había más código Cobol que en cualquier otro idioma, y ​​cuando tiene una aplicación comercial importante, me refiero a un conjunto de módulos que pueden contener 2 millones de líneas de código, que funciona muy bien y ejecuta compañía, puede apostar a que no se descartará pronto.

Prueba con Google: Lisp, ML, Prolog, y lo sabrás

Smalltalk (mejorado) estará allí.