¿Se puede considerar el lenguaje como el primer programa de codificación creado por humanos?

Interesante pregunta. Sin ninguna experiencia en lingüística y antropología, me inclinaría a decir que no.

La noción de ‘lenguaje‘ en la programación es diferente a la noción de ‘lenguaje’ en la interacción humana.

Los lenguajes de computadora son más como un protocolo o una sintaxis acordada para organizar las instrucciones. La función completa de un lenguaje de programación es proporcionar una interfaz entre un problema que un programador está tratando de resolver y los pasos que debe seguir una computadora para resolverlo.

Los lenguajes de programación son herramientas para entregar instrucciones. No están destinados a comunicar información. Una computadora puede devolver una definición de diccionario para la palabra “feliz”, pero no comprende la palabra ni tiene ninguna opinión sobre la tarea que está realizando.

La diferencia entre el lenguaje humano y el lenguaje de programación es la diferencia entre escribir una receta para pastel de chocolate y tener un debate apasionado sobre qué receta de pastel de chocolate es la más deliciosa.

Casi odio enfrentarme al consenso prevaleciente, pero, como lingüista teórico e investigador de ciencias cognitivas, debo decir que aceptaría esta analogía como una hipótesis funcional. Estoy terminando el modelo para una metateoría que estoy preparando para publicar (con suerte poco después de un retraso de dos años debido a problemas de salud). El modelo de mi metateoría examina el lenguaje en términos de codón y códice: instrucciones de programación maestra y vectores de proceso. La analogía del programa de codificación, obviamente, encaja perfectamente en el marco, en contexto.
Sabemos que el uso temprano del lenguaje humano (sin hablar del contenido) requería exactamente lo que hace un programa de codificación: actuar como un vector para transmitir un conjunto de instrucciones. Parecería que el uso del lenguaje humano es una herramienta que se ha desarrollado conscientemente a partir de la simple transmisión de la instrucción (para el pedernal, digamos) con una expresión significativa relegada a la música y el arte, en los complejos códigos lingüísticos que usamos hoy en día. La realidad es que los lenguajes, de programación, simbólicos o naturales, son herramientas construidas artificialmente que se presentan mediante un diseño aleatorio y arbitrario y se estandarizan una vez que se utilizan. Los humanos también comunican significado, no solo instrucciones, y el hecho de que una computadora no pueda hacer esto no significa que los procesos fundamentales subyacentes no sean idénticos; de hecho, lo son. Los humanos no pueden crear una forma de comunicación y codificación que ellos mismos no puedan usar. Estos procesos están integrados en cada cosa que hacemos a través del lenguaje, tecnológico, social, todo. Incluso un artista aislado en un estudio se está comunicando consigo mismo continuamente en un diálogo interno continuo para expresar una expresión visual de su interés e intención. Es un lenguaje integrado y generativo, que evoluciona a lo largo de un ciclo de retroalimentación perpetua e innata. Hay sustratos para los idiomas y procesos para la conversión, expresión y refinamiento, pero todos comienzan con un codón (codificador maestro) que genera un códice (secuencia de códigos) mutable, variable (“programable”), lenguaje a lenguaje, enunciado a enunciado, contexto a contexto. También se podría decir, por analogía, que el lenguaje es una representación virtual del codón del genoma. Estas ideas no son del todo insostenibles.

Supongo que te refieres a “lenguaje natural”, y en ese caso: definitivamente no es un “programa de codificación”, y realmente no es un lenguaje de programación.

El lenguaje natural hace muchas cosas, pero solo un pequeño subconjunto de ellas es imperativo: la mayor parte es meramente descriptivo (que puede verse como un poco análogo a los lenguajes de programación descriptivos, pero no son para crear programas de computadora por sí mismos) . Incluso cuando son imperativos, a menudo son vagos y no tienen la forma de un programa (lo que implica una secuencia ordenada de pasos). Puede construir un “programa” a partir de comandos naturales escritos / hablados para un humano (y si es lo suficientemente simple como para ser analizado por la tecnología actual, por una máquina), pero una muestra general de habla / escritura humana no es realmente algo que se puede usar para hacer un programa. Puede seguir reduciendo las limitaciones sobre lo que puede ser un programa formal (existen lenguajes de programación y programación concurrentes que “presentan objetivos vagos y dejan el tiempo de ejecución para encontrar una solución”) para incluir más y más partes del discurso humano, pero en en ese punto, abarca el concepto general de comunicación manejado por organismos sociales durante millones de años.

Examina la historia de la humanidad.

Hace solo 64 años, la ley consideraba aceptable castrar a un hombre, incluso un genio, solo porque se sentía sexualmente atraído por los hombres.

Retroceda otros 64 años y algunos consideraron aceptable quemar a personas negras con vida solo porque eran negras.

Retroceda 64 años más y se consideró aceptable esclavizar a las personas, porque eran negras, y se ganaban la vida con su trabajo mientras las golpeaban visualmente cuando se comportaban como humanos o no cumplían con las demandas irrazonables de su malvado captor.

Todo lo que separa los caminos de las personas son las instrucciones sociales que se les han incrustado.

No subestimes las capacidades de programación que la lingüística tiene en la máquina neurológica que alimenta nuestra conciencia y experiencia humana.

Supongo que al usar el término “idioma” estás hablando de idiomas hablados como el que estoy usando aquí, inglés. Sin embargo, el concepto base del “lenguaje” humano es la capacidad de transmitir información de una persona a otra. Incluso si estamos hablando de un gruñido para sí y dos gruñidos para “vete al infierno”, estamos hablando de codificar (codificar) instrucciones en algún formato externo compartido. Eso define exactamente lo que hace el código de computadora, codifica las instrucciones para resolver un problema dado.

Las computadoras no inventaron el concepto de codificación. Los humanos estaban usando “programas” impresos en trozos de papel para operar máquinas textiles (ver Jacquard Loom) a principios de 1800. Estos lenguajes de programación no eran los de uso general como los lenguajes humanos o los lenguajes de computadora modernos, pero definitivamente son primos (y no muy distantes).

Cuando el primer hombre de las cavernas dibujó una tosca imagen del campo circundante en la tierra e indicó agitando sus manos que Grogg (esta roca azul aquí) da la vuelta por aquí y Slogg (este pedazo de madera aquí) dará la vuelta por allí y nosotros Nos atraparemos un sabroso antílope (esos pedazos de hierba), que también fue una codificación muy temprana.

Entonces, en cierto sentido, se podría argumentar que el concepto de codificar información para pasar de una “entidad” a otra a través de un idioma compartido es anterior a cualquier idioma hablado formal, pero ciertamente el lenguaje hablado probablemente se creó para resolver la necesidad de codificar instrucciones: para compartir conocimiento

En mi opinión, puedo decir que el lenguaje humano no se puede comparar (todavía) con el lenguaje de programación. Esto se debe a que los compiladores no pueden entender muchos lenguajes de programación si un desarrollador comete un error de sintaxis. En el lenguaje humano esto no es una restricción … mientras que la sintaxis de “análisis” el lector con alta probabilidad entenderá la sintaxis de la misma manera. Este es un ejemplo que representa la gran diferencia que existe entre el lenguaje de programación y el lenguaje humano. El primero es útil para instruir a la máquina, el segundo es útil para comunicar pensamientos e ideas. Quizás los lenguajes de programación de la próxima generación serán más similares a los lenguajes humanos. Esta es la base de un motor semántico.

No. Esa es mi opinión de codificador.

El lenguaje se utiliza para comunicarse, compartir información, transmitir opiniones.
El código solo se usa para una cosa:

Dar órdenes, y esas órdenes serán seguidas. siempre.

Entonces, ¿por qué mi aplicación falla a veces? porque su lista de pedidos está mal.

Esa es una analogía problemática.

La programación es un conjunto de instrucciones para que una computadora las ejecute.

El lenguaje humano no comenzó como instrucciones. Comenzó como mensajes: advertencias sobre peligros, gritos de ayuda, señales de apareamiento, amenazas y súplicas de piedad.

Se convirtió en expresión de pensamientos e ideas, intercambio de conocimientos, una herramienta para construir orden social, cultura y arte.

La gente usa un lenguaje para dar órdenes e instrucciones, pero ese es un subconjunto menor de sus funciones.

Las personas también usan el lenguaje para manipular y hacer que otros hagan lo que quieren que hagan, pero eso no es realmente análogo a la programación. Las computadoras no tienen su propia agenda y no tienes que engañarlas para que hagan nada.

Los pensamientos pueden verse como un software que se ejecuta en el cerebro y el lenguaje puede verse como un lenguaje de programación para ese software, pero esta analogía trae más conclusiones erróneas que buenas e ignora toda la realidad compleja de la biología, la comunicación y el aprendizaje.

No estaría de acuerdo.
Como el lenguaje humano se consideraría un “precursor” de la codificación, sería mejor observar cómo el lenguaje humano y las matemáticas (lógica) han influido en el lenguaje de programación en lugar de al revés.