Cos'è l'agnosticismo linguistico e perché si chiama in quel modo?


55

Quando è una lingua agnostica? Perché si chiama in quel modo?


7
Penso che dovrebbe davvero essere chiamato politeismo linguistico poiché la convinzione è che ci sia più di un percorso per ottenere qualcosa.
chrisaycock,

1
@muntoo, lo stesso pseudo codice è una lingua.
SK-logic,

1
@ SK-logic OK, quindi; Che ne dici di: Quello che scrivi in ​​pseudo codice è agnostico del linguaggio ?
Mateen Ulhaq,

1
@chrisaycock Intendi poliglottismo ?
dukeofgaming l'

1
Dovrebbe davvero essere un linguaggio ecumenico. Non è che tu non sia sicuro dell'esistenza o meno di linguaggi per computer!
Rob K,

Risposte:


58

L'agnostico del linguaggio si riferisce ad aspetti della programmazione indipendenti da qualsiasi linguaggio di programmazione specifico. Almeno, è così che l'ho sentito usato negli ultimi trenta anni.

La parola "agnostico" deriva dall'antico greco per "non lo so". Quindi qualcosa che è "linguaggio agnostico" non ha bisogno di conoscere i linguaggi del computer; significa la stessa cosa della lingua indipendente . Le cose che sarebbero indipendenti dalla lingua includono algoritmi, o Agile, o una libreria di runtime con collegamenti a molte lingue.

Alcune funzionalità di Mac OS X non sono indipendenti dalla lingua , poiché sono progettate per essere utilizzate dall'Obiettivo C, possono essere utilizzate con difficoltà solo da C o C ++ e non hanno nemmeno associazioni per molte lingue.

Ci può anche essere un sottotesto nell'uso di "linguaggio agnostico" piuttosto che in altri termini.

Nell'inglese colloquiale, qualcuno che dice di essere "agnostico" significa che non sono né religiosi né atei: "non sanno" di Dio. Questo di solito è un codice verbale per "Non mi piace parlare di religione, quindi non provare a convertirmi".

Quindi a volte quando le persone parlano di "linguaggio agnostico", stanno cercando di evitare discussioni su quale linguaggio del computer sia migliore.


5
A proposito, agnostico deriva da "a" (non) + "gnosi" (conoscenza). Altre parole simili sono "ateo" e "atipico".
Bob Murphy,

2
Sì, l'ho sempre preso come riferimento al fatto che le guerre linguistiche sono fondamentalmente guerre di religione: tecniche / consigli / concetti agnostici linguistici evitano la guerra santa.
Carson63000,

Off-Topic: gnostico / agnostico si riferisce alla conoscenza. L'ateo / teista si riferisce al credere o affermare l'esistenza. Quindi tecnicamente puoi avere un credente religioso agnostico o un ateo agnostico. Ma la spiegazione era molto chiara. Puoi anche parlare di un sistema agnostico di database
Borjab,

@Borjab Sono un sostenitore agnostico di Vim. Ma io uso Emacs per ragioni pratiche.
Brandin,

L'agnostico del linguaggio si riferisce ad aspetti della programmazione indipendenti da qualsiasi linguaggio di programmazione specifico. Quando dici qualcosa significa a o significa tutto ? La cardinalità è fondamentale. Ad esempio, se un'istruzione si applica alle lingue OOP e non è limitata a una lingua OOP specifica, ma non si applica alle lingue funzionali, la lingua dell'istruzione è agnostica?
jaco0646,

7

Quando una soluzione è chiamata "agnostica della lingua", stai letteralmente dicendo che la tua soluzione "non conosce" le lingue, intendendo che sia universale o indipendente dalle specifiche della lingua (paradigmi, idiomi linguistici, ecc.).

Ad esempio, i modelli di progettazione sono indipendenti dal linguaggio, poiché il modo in cui sono descritti l'implementazione specifica non ha importanza finché rimane fedele all'intero o a un sottoinsieme del modello (ad esempio alcuni modelli di progettazione possono essere implementati senza OOP) .

UML è indipendente dalla lingua, BPMN è indipendente dalla lingua, ERM è indipendente dalla lingua. Un algoritmo in pseudo-codice è il linguaggio agnostico ...

Tutto ciò che deve essere programmato ma non descritto in una lingua specifica può essere chiamato agnostico.


2
Agnostic significa "non sapere", non "non crede in". Differenza sottile ma importante!
Jacques B

BPMN non è certamente indipendente dalla lingua, perché modella i processi. Esistono linguaggi di programmazione in cui si definisce semplicemente la precondizione e il risultato desiderato e il processo si svolge implicitamente, ad esempio Prolog. Anche Haskell e BPMN non vanno molto bene insieme, a causa della strategia di valutazione pigra di Haskell che fa sì che le cose non accadano secondo un ordine impercettibilmente definito delle cose.
back2dos

6

Paradigmi o funzionalità che non sono applicati a una sola lingua.


2

Non ho mai sentito il termine prima, tuttavia, suppongo che significhi apprendere aspetti della programmazione indipendenti da qualsiasi linguaggio di programmazione specifico.


1
perché si chiama in quel modo?
Louis Rhys,

1
È praticamente il modo in cui l'ho sentito usato negli ultimi trenta anni.
Bob Murphy,

1
Sto rimuovendo questa risposta per pubblicarla come risposta.
Bob Murphy,

@bob: concordato. ma dov'è la risposta?
Louis Rhys,

@ Louis Rhys: mi dispiace, mi ci sono voluti alcuni minuti per scriverlo correttamente. È tutto.
Bob Murphy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.