ventajas programacion paradigmas orientada objetos logica funcional ejemplos desventajas functional-programming nlp

functional-programming - paradigmas - programacion funcional vs orientada a objetos



¿Es la programación funcional el siguiente paso hacia la programación en lenguaje natural? (9)

"Entonces, ¿FP toma la programación más cerca de la programación en lenguaje natural o es más bien un obstáculo y la OOP convencional nos llevará más rápido a la programación en lenguaje natural?"

Ninguno. Ambos operan bajo el mismo principio de que debe ser específico sobre lo que quiere que haga la computadora. No debe haber lugar para la incertidumbre, y ninguno de los paradigmas tiene nada que ver con los lenguajes naturales. Abordan un problema completamente diferente: el de administrar y estructurar código complejo y grandes bases de código.

El gran obstáculo en los lenguajes naturales es el análisis sintáctico. Es imposible analizar de manera inequívoca el lenguaje natural. Incluso los humanos no podemos hacerlo sin mucha información de contexto (expresiones faciales, tono de voz), e incluso entonces, nos equivocamos con bastante frecuencia.

OOP y FP son solo lo que sucede después del análisis. Qué significado se asigna a cada elemento semántico, una vez que se ha identificado y analizado.

Quizás algún día podamos programar en lenguaje natural. Dudo que ocurra en las próximas dos décadas, pero puede suceder algún día. Pero los paradigmas de programación de hoy no acelerarán este proceso ni lo retrasarán. Simplemente no tienen nada que ver con eso y no ayudarán a resolver el problema de análisis sintáctico.

Esta es mi primera pregunta, así que estoy un poco nervioso porque no estoy seguro de si entiendo lo suficiente el significado. De todos modos, aquí vamos ...

Cada vez que se alcanzan nuevos hitos en la programación, parece que siempre han tenido un objetivo en común: facilitar a los programadores, bueno, programar.

El lenguaje de máquina, los códigos de operación / mnemónicos, procedimientos / funciones, estructuras, clases (OOP) etc. siempre ayudaron, en su tiempo, a planificar, estructurar y codificar programas de una manera más natural, comprensible y mejor mantenible.

Por supuesto, la programación funcional no es en absoluto una novedad, pero parece que ha experimentado una especie de renacimiento en los últimos años. También creo que FP obtendrá un impulso enorme cuando Microsoft agregue F # a sus principales lenguajes de programación.

Volviendo a mi pregunta original, creo que, en última instancia, la programación se realizará en un lenguaje natural (inglés) con muy pocas restricciones o reglas. El compilador formará parte de un sistema AI / NLP que extrae información del código o debería decir texto y lo transforma en un lenguaje intermedio que el compilador puede compilar.

Entonces, ¿la programación FP se acerca más a la programación en lenguaje natural o es más bien un obstáculo y la OOP convencional nos llevará más rápido a la programación en lenguaje natural?

Esta pregunta no debe usarse para discutir la usabilidad o factibilidad de la programación en lenguaje natural porque solo el futuro dirá.


Lo siento, no estoy de acuerdo en absoluto. El código es, en última instancia, un modelo para hacer cosas (objetos), por lo que tiene que ser muy preciso y gobernado por reglas para funcionar de manera confiable. El lenguaje natural no asumirá la programación antes de que las ideas de esbozo sobre servilletas se hagan cargo de la ingeniería mecánica.


No creo que la programación funcional esté más cerca de la programación del lenguaje natural que la programación OO. La programación funcional tiene una sintaxis muy orientada a los verbos. Cuando programa en Lisp o Scheme, pasa mucho tiempo pensando en las funciones y qué acciones desea realizar con sus datos. En la programación OO, pasas la mayor parte del tiempo pensando en objetos, por lo tanto, parece muy orientada a sustantivos. Sin embargo, en Smalltalk, C ++ y Java, también tiene métodos que le permiten aplicar verbos a todos sus sustantivos (por así decirlo).

No creo que la programación OO necesariamente nos lleve a la programación en lenguaje natural, pero desde mi punto de vista es un poco más cercana que la programación funcional. La programación funcional, para mí, parece un poco más cercana a las matemáticas que al lenguaje natural. Eso no es tan malo, ya que tal vez las matemáticas son el lenguaje en el que deberíamos pensar cuando programamos de todos modos.


Personalmente, he llegado a la conclusión de que la programación del lenguaje natural es un poco crack.

El inglés no es exactamente adecuado para usarlo como un lenguaje de programación, demasiadas palabras abstractas que no tienen correlación en la programación, como términos emotivos y otras nociones abstractas que no tienen cabida en la programación, por así decirlo, la programación podría ser "natural". el lenguaje "seguiría, ese" lenguaje natural "podría ser programación, pero no lo es.

Ahora, mientras entiendo lo que estás diciendo aquí, el problema es que el idioma inglés tiene demasiados términos desechables y nombres repetidos para las mismas cosas, entonces estaríamos usando algo que ni siquiera es específico del dominio de programación, para la tarea de programar

Creo que es más adecuado que las personas comprendan que la programación es de hecho un lenguaje altamente especializado, y usan sus cerebros y aprenden a codificar en un lenguaje simple, declarativo y con una definición consistente, a diferencia del inglés, donde la definición es altamente subjetiva. .

Una vez que aprenda los pormenores de un idioma y aprenda sus esquemas y comportamientos, puede combinarlos para hacer cosas nuevas.

Tome Perl, todos lo critican por ser ruido de línea, pero cuando conoce muchos lenguajes de programación, una vez que pasa los obstáculos iniciales de "OMG LINE NOISE", hay un grado de intuición al respecto donde puede hacer cosas que nunca lee sobre y luego ver que funciona mágicamente tal como esperabas.

Y en mi humilde opinión, los lenguajes específicos de dominio prevalecen sobre los hablados para la resolución de problemas específicos.


¿Crees que las preguntas subjetivas obtendrán este orden aquí para "Windows Internals the 5th Element" agregado a la base de datos y enviado a mi dirección? Si es así, la programación del lenguaje natural estará muy cerca de la programación funcional, ya que hice mi pregunta de una manera un tanto funcional. Si no es así, entonces la programación en lenguaje natural no enviará mi pedido, ¿o sí? La programación funcional puede funcionar porque todavía no tiene nada que ver con los lenguajes naturales.


El impulso actual de interés en la Programación Funcional resultado principalmente de las nuevas características geniales de C # 3.0 es básicamente permitir el paralelismo y denota un cambio hacia la computación multi-core. En mi humilde opinión, no creo que podamos considerar este un próximo paso hacia la ''programación del lenguaje natural''


No. La programación funcional nos llevará más cerca de probar los compiladores. Eso es compiladores que demuestran más afirmaciones sobre su código. Cuantos más compiladores puedan probar para nosotros, el desarrollo del software más cercano pasa a ser ingeniería en lugar de arte.

Un lenguaje de programación NLP es probablemente más un lenguaje de estilo "haz lo que quiero decir no lo que digo". Eso es probablemente lo opuesto a la dirección que usan los lenguajes funcionales.

"Todos los lenguajes de programación convergen hacia LISP".


Si está buscando la próxima evolución en lenguajes de programación, buscaría DSL. DSL permite idiomas altamente personalizados que permiten a los usuarios de biz sofisticados configurar un sistema sin tener que preocuparse por los detalles de codificación tales como los tipos de datos, los hilos y los widgets de UI.

Los lenguajes funcionales tendrán su lugar en el espacio de "procesamiento altamente paralelo".


Solo para tu información, Informar 7 es probablemente lo más cercano que se haya logrado a la programación en lenguaje natural. Es un lenguaje para un dominio muy específico: escribir ficción interactiva, el tipo de software que comenzó con "juegos de aventuras".