¿Qué es más difícil, aprender un lenguaje informático o un idioma extranjero?

Un lenguaje de programación es mucho más simple que un lenguaje natural. Un lenguaje de programación puede tener aproximadamente 40 “palabras reservadas” (el vocabulario del lenguaje) y un número similar de estructuras sintácticas (la gramática del lenguaje). Compare eso con cualquier lenguaje natural, donde el vocabulario básico requerirá más de 1000 palabras, junto con un cuerpo gramatical más amplio.

El lenguaje natural también está lleno de expresiones idiomáticas, donde el significado no puede ser deducido por el trabajo individual. Por ejemplo, “patear el balde” en inglés significa morir. Pero debe memorizar esto por separado del significado de “patada” y “cubo”. Pero en un lenguaje de programación, todo significa lo que dice. Aunque existen patrones comunes de código, son completamente comprensibles si entiende las unidades más pequeñas de el idioma.

Para ponerlo en perspectiva, un programador profesional puede lograr un entendimiento básico de un nuevo lenguaje de programación en un día o dos. Puede ser fluido con un nuevo lenguaje de programación después de un mes o dos de uso. El mismo grado de fluidez con un lenguaje natural requeriría varios años.

Lo que dificulta la programación no son los lenguajes. La dificultad está en la lógica de nivel superior del programa. Por ejemplo, con aplicaciones de subprocesos múltiples, el programador está lidiando con complejidades mucho mayores de las que usted trataría en cualquier conversación humana. Piensa en la oración más complicada o compleja que jamás hayas escrito. Multiplique eso por 100 y tendrá la complejidad del código con el que los buenos programadores se enfrentan todos los días. Multiplica por 1,000 y verás lo que los programadores malos tratan todos los días 😉

He aprendido quizás treinta lenguajes de programación y he hecho grandes esfuerzos en varios lenguajes naturales. El contexto, las inconsistencias y el rango de habilidades requeridas (pronunciación, ortografía, conjugación, posiblemente aprendiendo un sistema de escritura diferente, etc.) hacen que los lenguajes naturales sean mucho más difíciles.

Los lenguajes de programación son un medio de comunicación como lo son los lenguajes naturales, pero todos los lenguajes son más adecuados para algunas discusiones que otros, y los lenguajes naturales son adecuados para una gama mucho más amplia “lista para usar”.

Finalmente, casi todos los lenguajes de programación tienen gramáticas sin contexto, mientras que casi todos los lenguajes naturales tienen gramáticas sensibles al contexto. Los CFG son mucho más simples, no solo para los programas que se analizan, sino también para nosotros mismos.

Para mí, el lenguaje informático parece imposible, pero un idioma extranjero parece más fácil, ¡porque sigo mis oídos!