Що таке мова-агностицизм і чому його називають саме так?


55

Коли щось агностик мови? Чому його так називають?


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

1
@muntoo, сам псевдо-код - це мова.
SK-логіка

1
@ SK-логіка Гаразд, тоді; як щодо: те, що ви пишете в псевдокоді, є агностичним ?
Mateen Ulhaq

1
@chrisaycock Ви маєте на увазі поліглотизм ?
герцогство, яке відбулося

1
Це дійсно має бути екуменічна мова. Це не так, як ви не впевнені, чи існують комп'ютерні мови!
Роб K

Відповіді:


57

Мовна агностика відноситься до аспектів програмування, які не залежать від будь-якої конкретної мови програмування. Принаймні, саме так я чув, як це використовували протягом останніх тридцяти років.

Слово "агностик" походить від давньогрецької мови за "не знаю". Тож щось, що є "мовною агностикою", не потрібно знати про комп'ютерні мови; це означає те саме, що незалежно від мови . До речі, що може бути агностиком мови, є алгоритми, або Agile, або бібліотека часу виконання з прив'язкою до багатьох мов.

Деякі функції Mac OS X не є мовними агностиками , оскільки вони дійсно розроблені для використання з Objective C, можуть використовуватися лише з труднощами C або C ++, і навіть не мають прив'язки для багатьох мов.

Також може бути підтекст до використання "мовної агностики", а не інших термінів.

У розмовній англійській мові той, хто каже, що вони "агностики", означає, що вони не є ні релігійними, ні атеїстами: вони "не знають" про Бога. Зазвичай це словесний код "Я не люблю говорити про релігію, тому не намагайтеся мене перетворювати".

Тому іноді, коли люди говорять про те, що вони "агностики мови", вони намагаються не залишатись аргументами щодо того, яка комп'ютерна мова краще.


5
До речі, агностик походить від "а" (не) + "гнозис" (знання). Інші слова на кшталт цього є "атеїстичними" та "нетиповими".
Боб Мерфі

2
Так, я завжди сприймав це як посилання на те, що мовні війни - це в основному релігійні війни: мовно-агностичні методи / поради / концепції уникають святої війни.
Carson63000

Off-Topic: гностичний / агностичний позначає знання. Атеїст / теїст посилається на вірування чи підтвердження існування. Тож технічно у вас може бути віруючий агностик або атеїст-агностик. Але пояснення було дуже зрозумілим. Можна також поговорити про агностичну систему бази даних
Borjab

@Borjab Я віруючий агностик у Вім. Але я використовую Emacs з практичних причин.
Брандін

Мовна агностика відноситься до аспектів програмування, які не залежать від будь-якої конкретної мови програмування. Коли ви говорите , будь це означає або це значить все ? Кардинальність критична. Наприклад, якщо вислів застосовується до мов OOP і не обмежується однією конкретною мовою OOP, але не застосовується до функціональних мов, чи мова заяв агностична?
jaco0646

6

Парадигми або функції, які не застосовуються лише до однієї мови.


6

Коли рішення називається "мова-агностик", ви буквально говорите, що ваше рішення "не знає про" мови, що означає його універсальну або незалежну від мовної специфіки (парадигми, мовні ідіоми тощо).

Наприклад, шаблони дизайну є мовними-агностичними, тому що спосіб їх опису конкретної реалізації не має значення, поки він дотримується цілого або підмножини шаблону (v.gr. деякі шаблони дизайну можуть бути реалізовані без OOP) .

UML - це мовно-агностичний, BPMN - мова-агностичний, ERM - мовно-агностичний. Алгоритм псевдокоду - це мовна агностика ...

Все, що має бути запрограмоване, але не описане певною мовою, можна назвати мовно-агностичним.


2
Агностичний означає "не знаю про", не "не вірю в". Тонка, але важлива різниця!
ЖакБ

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

2

Я раніше не чув цього терміна, проте вважаю, що це означає вивчення аспектів програмування, які не залежать від конкретної мови програмування.


1
чому так називається?
Луї Ріс

1
Це майже так, як я чув, що це використовував протягом останніх тридцяти років.
Боб Мерфі

1
Я видаляю цю відповідь, щоб опублікувати її як відповідь.
Боб Мерфі

@bob: погодився. але де відповідь?
Луї Ріс

@Louis Rhys: Вибачте, мені було потрібно кілька хвилин, щоб правильно написати це. Це вгору.
Боб Мерфі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.