O que é agnosticismo da linguagem e por que é chamado dessa maneira?


55

Quando algo é agnóstico na linguagem? Por que é assim chamado?


7
Eu acho que realmente deveria ser chamado politeísmo da linguagem, já que a crença é de que há mais de um caminho para se fazer algo.
Chrisaycock #

11
@muntoo, o próprio pseudo-código é uma linguagem.
SK-logic

11
@ SK-logic OK; Que tal : O que você escreve em pseudo-código é independente de idioma ?
Mateen Ulhaq

11
@chrisaycock Você quer dizer poliglotismo ?
Dukeofgaming

11
Deve ser realmente uma linguagem ecumênica. Não é de se duvidar da existência ou não de linguagens de computador!
Rob K

Respostas:


58

Agnóstico de linguagem refere-se a aspectos da programação que são independentes de qualquer linguagem de programação específica. Pelo menos, é assim que eu ouvi isso nos últimos trinta anos.

A palavra "agnóstico" é derivada do grego antigo para "não sei". Portanto, algo que é "independente da linguagem" não precisa saber sobre linguagens de computador; significa a mesma coisa que idioma independente . Coisas que seriam independentes de idioma incluem algoritmos, ou Agile, ou uma biblioteca de tempo de execução com ligações a vários idiomas.

Alguns recursos do Mac OS X não são independentes de idioma , porque são realmente projetados para serem usados ​​no Objective C, só podem ser usados ​​com dificuldade no C ou C ++ e nem possuem ligações para muitos idiomas.

Também pode haver um subtexto para usar "linguagem independente" em vez de outros termos.

No inglês coloquial, alguém que se diz "agnóstico" significa que não é religioso nem ateu: "não sabe" sobre Deus. Normalmente, esse é um código verbal para "Não gosto de falar sobre religião, então não tente me converter".

Então, às vezes, quando as pessoas falam sobre ser "agnóstico da linguagem", estão tentando ficar de fora dos argumentos sobre qual linguagem de computador é melhor.


5
BTW, agnóstico vem de "a" (não) + "gnose" (conhecimento). Outras palavras como "ateu" e "atípico".
Bob Murphy

2
Sim, eu sempre tomei isso como referência ao fato de que as guerras linguísticas são basicamente guerras religiosas: técnicas / conselhos / conceitos independentes da linguagem evitam a guerra santa.
precisa saber é o seguinte

Fora do tópico: gnóstico / agnóstico refere-se a conhecimento. Ateu / teísta refere-se a acreditar ou afirmar a existência. Então, tecnicamente, você pode ter um crente religioso agnóstico ou ateu agnóstico. Mas a explicação foi muito clara. Você também pode falar de um sistema independente de banco de dados
Borjab

@Borjab Eu sou um crente agnóstico em Vim. Mas eu uso o Emacs por razões práticas.
Brandin

Agnóstico de linguagem refere-se a aspectos da programação que são independentes de qualquer linguagem de programação específica. Quando você diz algum , isso significa um ou significa tudo ? A cardinalidade é crítica. Por exemplo, se uma declaração se aplica a idiomas OOP e não se restringe a um idioma OOP específico, mas não se aplica a idiomas funcionais, o idioma da declaração é independente?
jaco0646

7

Quando uma solução é chamada "independente de idioma", você está literalmente dizendo que sua solução "não conhece" idiomas, o que significa que é universal ou independente dos específicos do idioma (paradigmas, idiomas de idioma etc.).

Por exemplo, os padrões de design são independentes de idioma, porque a maneira como eles são descritos na implementação específica não importa, desde que se prenda ao todo ou a um subconjunto do padrão (v.gr. alguns padrões de design podem ser implementados sem OOP) .

UML é independente de idioma, BPMN é independente de idioma, ERM é independente de idioma. Um algoritmo em pseudo-código é agnóstico da linguagem ...

Tudo o que se destina a ser programado, mas não descrito em um idioma específico, pode ser chamado de independente de idioma.


2
Agnóstico significa "não sei", não "não acredita". Diferença sutil, mas importante!
JacquesB

O BPMN certamente não é independente de idioma, porque modela processos. Existem linguagens de programação nas quais você define apenas a pré-condição e o resultado desejado e o processo se desenrola implicitamente, por exemplo, Prolog. Mesmo Haskell e BPMN não se combinam particularmente bem, devido à preguiçosa estratégia de avaliação de Haskell que faz com que as coisas não aconteçam de acordo com uma ordem de coisas imperativamente definida.
precisa saber é o seguinte

6

Paradigmas ou recursos que não são aplicados a apenas um idioma.


2

Eu nunca ouvi o termo antes, no entanto, eu assumiria que isso significa aprender aspectos da programação que são independentes de qualquer linguagem de programação específica.


11
por que é assim chamado?
Louis Rhys

11
É praticamente assim que eu ouvi isso nos últimos trinta anos.
Bob Murphy

11
Estou removendo esta resposta para publicá-la como resposta.
Bob Murphy

@ Bob: concordou. mas onde está a resposta?
Louis Rhys

@ Louis Rhys: Desculpe, levei alguns minutos para escrevê-lo corretamente. Depende de.
Bob Murphy
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.