¿Qué es el agnosticismo lingüístico y por qué se llama así?

55

¿Cuándo es algo agnóstico del lenguaje? ¿Por qué se llama así?

Louis Rhys
fuente
77
Creo que realmente debería llamarse politeísmo del lenguaje, ya que se cree que hay más de un camino para hacer algo.
chrisaycock
1
@muntoo, el pseudocódigo en sí mismo es un lenguaje.
SK-logic
1
@ SK-logic OK, entonces; ¿qué tal: lo que escribes en pseudocódigo es independiente del lenguaje ?
Mateen Ulhaq
1
@chrisaycock ¿Te refieres a poliglota ?
dukeofgaming
1
Realmente debería ser un lenguaje ecuménico. ¡No es que no estés seguro de si existen o no lenguajes de computadora!
Rob K

Respuestas:

58

El lenguaje agnóstico se refiere a aspectos de la programación que son independientes de cualquier lenguaje de programación específico. Al menos, así es como lo escuché durante los últimos treinta años.

La palabra "agnóstico" se deriva del griego antiguo para "no sé". Entonces, algo que es "independiente del lenguaje" no necesita saber acerca de los lenguajes de computadora; significa lo mismo que el lenguaje independiente . Las cosas que serían independientes del lenguaje incluyen algoritmos, o Agile, o una biblioteca de tiempo de ejecución con enlaces a muchos idiomas.

Algunas características de Mac OS X no son independientes del lenguaje , porque están realmente diseñadas para usarse desde el Objetivo C, solo se pueden usar con dificultad desde C o C ++, y ni siquiera tienen enlaces para muchos idiomas.

También puede haber un subtexto para usar "agnóstico del lenguaje" en lugar de otros términos.

En inglés coloquial, alguien que dice que es "agnóstico" significa que no es religioso ni ateo: "no sabe" acerca de Dios. Este suele ser un código verbal para "No me gusta hablar de religión, así que no intentes convertirme".

Entonces, a veces, cuando las personas hablan de ser "independientes del lenguaje", intentan mantenerse alejados de los argumentos sobre qué lenguaje informático es mejor.

Bob Murphy
fuente
55
Por cierto, agnóstico proviene de "a" (no) + "gnosis" (conocimiento). Otras palabras como "ateo" y "atípico".
Bob Murphy
2
Sí, siempre lo he tomado como una referencia al hecho de que las guerras lingüísticas son básicamente guerras religiosas: las técnicas / consejos / conceptos agnósticos del lenguaje evitan la guerra santa.
Carson63000
Fuera del tema: gnóstico / agnóstico se refiere al conocimiento. Ateo / teísta se refiere a creer o afirmar la existencia. Entonces, técnicamente puedes tener un creyente religioso agnóstico o un ateo agnóstico. Pero la explicación fue muy clara. También puede hablar sobre un sistema agnóstico de base de datos
Borjab
@ Borjab Soy un agnóstico creyente en Vim. Pero uso Emacs por razones prácticas.
Brandin
El lenguaje agnóstico se refiere a aspectos de la programación que son independientes de cualquier lenguaje de programación específico. Cuando uno dice cualquier ¿Eso significa que una o significa todo ? La cardinalidad es crítica. Por ejemplo, si una declaración se aplica a los idiomas OOP y no está restringida a un lenguaje OOP específico, pero no se aplica a los lenguajes funcionales, ¿es el lenguaje de la declaración agnóstico?
jaco0646
7

Cuando una solución se llama "independiente del lenguaje", literalmente está diciendo que su solución "no sabe acerca de" los idiomas, lo que significa que es universal o independiente de los detalles del lenguaje (paradigmas, modismos idiomáticos, etc.).

Por ejemplo, los patrones de diseño no dependen del lenguaje, porque la forma en que se describen la implementación específica no importa siempre y cuando se adhiera al conjunto o a un subconjunto del patrón (v.gr., algunos patrones de diseño se pueden implementar sin OOP) .

UML es independiente del lenguaje, BPMN es independiente del lenguaje, ERM es independiente del lenguaje. Un algoritmo en pseudocódigo es independiente del lenguaje ...

Cualquier cosa que esté destinada a ser programada pero no descrita en un idioma específico puede llamarse independiente del lenguaje.

dukeofgaming
fuente
2
Agnóstico significa "no sabe", no "no cree". ¡Sutil pero importante diferencia!
JacquesB
BPMN ciertamente no es independiente del lenguaje, porque modela procesos. Hay lenguajes de programación en los que define simplemente la condición previa y el resultado deseado, y el proceso se desarrolla implícitamente, por ejemplo, Prolog. Incluso Haskell y BPMN no se combinan particularmente bien, debido a la estrategia de evaluación perezosa de Haskell que hace que las cosas no sucedan de acuerdo con un orden de cosas imperativamente definido.
back2dos
6

Paradigmas o características que no se aplican a un solo idioma.

Josh K
fuente
2

No he escuchado el término antes, sin embargo, supongo que significa aprender aspectos de la programación que son independientes de cualquier lenguaje de programación específico.

mbreedlove
fuente
1
¿Por qué se llama así?
Louis Rhys
1
Esa es la forma en que lo escuché durante los últimos treinta años.
Bob Murphy
1
Estoy eliminando esta respuesta para publicarla como respuesta.
Bob Murphy
@bob: de acuerdo. pero donde esta la respuesta
Louis Rhys
@ Louis Rhys: Lo siento, me tomó unos minutos escribirlo correctamente. Esta arriba.
Bob Murphy