¿Cuál es uno de los lenguajes de programación más difíciles de aprender para principiantes?

Si la gente va a mencionar Brainfuck, también podría incluir TECO, cuyos programas son, como decía el viejo dicho, indistinguibles del ruido de la línea.

Para todos los jóvenes, TECO es un acrónimo de Text-Editor and Corrector, un editor de texto relacionado con Emacs desarrollado en el MIT en la década de 1960. Hubo versiones implementadas en todos los sistemas operativos DEC. TECO tenía un conjunto de comandos interpretado, equivalente a Turing. Las secuencias de comandos se pueden guardar como macros. Los hackers creativos utilizaron las macros TECO para todo tipo de programas impares solo porque sí.

También para ustedes, jóvenes … el ruido de línea se refiere al ruido en una línea de comunicación, algo que era común en los días en que se usaban acopladores acústicos para comunicarse entre una computadora y un terminal. El ruido se imprimiría en su terminal como una secuencia ininteligible de caracteres aleatorios.

Ah … los buenos días ole. Me alegro de que los hayamos superado.

Lisp, Haskell, o casi cualquier lenguaje ensamblador.

Estos lenguajes son difíciles para casi cualquier persona sin (a) alguna experiencia previa en programación, o (b) una sólida comprensión intuitiva de las abstracciones. Tener ambos (a) y (b) sería ideal, aunque cada tema refuerza al otro, y ambos aumentan con la experiencia-práctica.

Dejando a un lado los lenguajes como Brainfuck e INTERCAL que están diseñados para ser difíciles para cualquiera, las dos áreas de dificultad más comunes para los nuevos programadores son los punteros y los subprocesos múltiples. C te obliga a entender lo primero y, si quieres que algo corra rápido, también te obliga a entender lo último.

APL es el ganador indiscutible de mi libro.

1) es un lenguaje funcional interpretado con funciones monádicas y diádicas, y la mayoría de las personas que recién comienzan no tienen un marco para comprender cómo funciona eso.

2) el tipo de datos central es una matriz multidimensional. Puedes doblarlo para hacer otras cosas, está lleno de Turing, pero es un alcance.

3) El conjunto de caracteres no es intuitivo.

4) La interpretación es de derecha a izquierda.

BCPL (mi favorito personal de todos los tiempos) es segundo. Es tipeless Del libro:

La filosofía de BCPL no es uno de los tiranos que cree que sabe más y establece la ley sobre qué es y qué no está permitido; más bien, el BCPL actúa más como un servidor que ofrece sus servicios lo mejor que puede sin quejas, incluso cuando se enfrenta a aparentes tonterías. Siempre se asume que el programador sabe lo que está haciendo y no está limitado por restricciones menores.

Puedes hacer cosas increíbles. También puedes joder de formas imprevistas y espectaculares.

Si por “lenguaje informático” quiere decir lenguaje de programación, es probable que sea C ++ o Scala. Ambos son lenguajes muy grandes y complejos, y los idiomas grandes y complejos siempre son más difíciles de aprender.

También podría ser Haskell, un lenguaje de programación puramente funcional que es bastante desafiante para muchas personas.

Tenga en cuenta que mi respuesta se basa en lenguajes conocidos y significativos, no esotéricos, oscuros.

Yo votaría por APL. Estructuralmente no solo es muy diferente de los idiomas principales, es esencialmente una extensión del álgebra lineal, y muchos de los principiantes de CS no tienen muchos antecedentes en álgebra lineal.

Mencionaría C ++ (no C). Y no solo aprendiendo sintaxis, sino aprendiendo a crear código de trabajo, depurarlo y emplearlo. Eso es bastante difícil. Creo que la programación funcional (como Haskell) es mucho más fácil que C ++ si tienes algún conocimiento de matemáticas en un segundo plano.

Por supuesto, C ++ no es “el más difícil”, en comparación con los lenguajes de ensamblaje o cosas exóticas como Brainfuck, pero creo que es más difícil entre los lenguajes de uso general más utilizados.

Malbolge Probablemente es también el lenguaje de programación más difícil de aprender para programadores experimentados.

Malbolge

Malbolge es un lenguaje de programación esotérico de dominio público inventado por Ben Olmstead en 1998, llamado así por el octavo círculo del infierno en Dante’s Inferno , theMalebolge.
Malbolge fue diseñado específicamente para ser casi imposible de usar, a través de una “operación loca” contraintuitiva, aritmética de base tres y código auto alterable. [1] Se basa en la dificultad de los anteriores, desafiando esolangs (como Brainfuck y Befunge), pero lleva este aspecto al extremo, jugando en las historias enredadas de la informática y el cifrado. Se han encontrado puntos débiles en el diseño que hacen posible (aunque todavía muy difícil) escribir programas útiles de Malbolge.

Si pides idiomas reales, no el esotérico, diría Haskell .
Puede que no sea tan difícil, pero es tan drásticamente diferente de otros idiomas que todo el conocimiento que reunió hasta ahora es absolutamente inútil.