Что такое языковой агностицизм и почему он так называется?


55

Когда что-то не зависит от языка? Почему это так называется?


7
Я думаю, что это действительно следует называть языковым многобожием, поскольку убеждение состоит в том, что существует несколько путей достижения цели.
Крисэйкок

1
@muntoo, сам псевдокод - это язык.
SK-logic

1
@ SK-logic в порядке, тогда; как насчет: то, что вы пишете в псевдокоде, не зависит от языка ?
Матин Улхак

1
@ chrisaycock Вы имеете в виду полиглотизм ?
dukeofgaming

1
Это действительно должен быть язык экуменический. Вы не уверены, существуют ли компьютерные языки!
Роб К

Ответы:


58

Независимость от языка относится к аспектам программирования, которые не зависят от какого-либо конкретного языка программирования. По крайней мере, так я слышал последние тридцать лет.

Слово «агностик» происходит от древнегреческого слова «не знаю». Так что то, что «не зависит от языка», не должно знать о компьютерных языках; это означает то же самое, что и независимость от языка . К таким вещам, которые не зависят от языка, относятся алгоритмы, Agile или библиотека времени выполнения с привязками ко многим языкам.

Некоторые функции Mac OS X не зависят от языка , потому что они действительно предназначены для использования в Objective C, могут быть с трудом использованы только в C или C ++ и даже не имеют привязок для многих языков.

Также может быть подтекст к использованию «языковой независимости», а не других терминов.

На разговорном английском человек, который говорит, что он «агностик», означает, что он не является ни религиозным, ни атеистическим: они «не знают» о Боге. Обычно это словесный код для «Я не люблю говорить о религии, поэтому не пытайтесь меня обратить».

Поэтому иногда, когда люди говорят о «независимости от языка», они стараются не спорить о том, какой компьютерный язык лучше.


5
Кстати, агностик происходит от «а» (не) + «гнозис» (знание). Другие слова как это - "атеист" и "нетипичный".
Боб Мерфи

2
Да, я всегда принимал это как ссылку на тот факт, что языковые войны - это в основном религиозные войны: не зависящие от языка техники / советы / концепции избегают священной войны.
Carson63000

Не по теме: гностик / агностик относится к знаниям. Атеист / теист относится к вере или подтверждению существования. Технически, вы можете иметь верующего агностика или атеиста-агностика. Но объяснение было очень ясным. Вы также можете поговорить об агностической системе баз данных
Borjab

@ Borjab Я сторонник агностика в Vim. Но я использую Emacs по практическим причинам.
Брандин

Независимость от языка относится к аспектам программирования, которые не зависят от какого-либо конкретного языка программирования. Когда вы говорите что- нибудь , значит ли это или все ? Мощность имеет решающее значение. Например, если оператор применяется к языкам ООП и не ограничен одним конкретным языком ООП, но не относится к функциональным языкам, является ли язык оператора независимым?
jaco0646

7

Когда решение называется «независимым от языка», вы буквально говорите, что ваше решение «не знает» о языках, что означает его универсальность или независимость от языковых особенностей (парадигм, языковых идиом и т. Д.).

Например, шаблоны проектирования не зависят от языка, потому что то, как они описываются, конкретная реализация не имеет значения, если она придерживается всего или подмножества шаблона (например, некоторые шаблоны проектирования могут быть реализованы без ООП) ,

UML не зависит от языка, BPMN не зависит от языка, ERM не зависит от языка. Алгоритм в псевдокоде не зависит от языка ...

Все, что предназначено для программирования, но не описано на конкретном языке, можно назвать независимым от языка.


2
Агностик означает «не знаю о», а не «не верит». Тонкое, но важное отличие!
JacquesB

BPMN определенно не зависит от языка, потому что он моделирует процессы. Существуют языки программирования, в которых вы определяете просто предварительное условие и желаемый результат, а процесс неявно разворачивается, например, Prolog. Даже Haskell и BPMN не особенно хорошо сочетаются друг с другом из-за ленивой стратегии оценки Haskell, которая заставляет вещи не происходить в соответствии с каким-то императивно определенным порядком вещей.
back2dos

6

Парадигмы или функции, которые не применяются только к одному языку.


2

Я раньше не слышал этого термина, однако я бы предположил, что он означает изучение аспектов программирования, которые не зависят от какого-либо конкретного языка программирования.


1
почему это так называется?
Луи Рис

1
Это почти то же самое, как я слышал, последние тридцать лет.
Боб Мерфи

1
Я удаляю этот ответ, чтобы опубликовать его как ответ.
Боб Мерфи

@ Боб: согласен. но где ответ?
Луи Рис

@ Луис Рис: Извините, мне понадобилось несколько минут, чтобы написать это правильно. Работает.
Боб Мерфи
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.