Apa itu agnostisisme bahasa dan mengapa disebut demikian?

55

Kapan suatu bahasa agnostik? Mengapa disebut demikian?

Louis Rhys
sumber
7
Saya pikir itu harus benar-benar disebut politeisme bahasa karena kepercayaannya adalah bahwa ada lebih dari satu jalan untuk menyelesaikan sesuatu.
chrisaycock
1
@muntoo, kode semu itu sendiri adalah bahasa.
SK-logic
1
@ SK-logika OK, lalu; bagaimana dengan: Apa yang Anda tulis dalam kode pseudo adalah bahasa agnostik ?
Mateen Ulhaq
1
@ chrisaycock Maksud Anda poliglotisme ?
dukeofgaming
1
Itu harus benar-benar ekumenis bahasa. Bukannya Anda tidak yakin apakah ada bahasa komputer atau tidak!
Rob K

Jawaban:

58

Bahasa agnostik mengacu pada aspek pemrograman yang tidak tergantung pada bahasa pemrograman tertentu. Setidaknya, begitulah cara saya mendengarnya digunakan selama tiga puluh tahun terakhir.

Kata "agnostik" berasal dari bahasa Yunani kuno untuk "tidak tahu". Jadi sesuatu yang merupakan "agnostik bahasa" tidak perlu diketahui tentang bahasa komputer; artinya sama dengan bahasa independen . Hal-hal yang akan menjadi agnostik bahasa termasuk algoritma, atau Agile, atau perpustakaan runtime dengan binding ke banyak bahasa.

Beberapa fitur Mac OS X bukan agnostik bahasa , karena mereka benar-benar dirancang untuk digunakan dari Objective C, hanya dapat digunakan dengan kesulitan dari C atau C ++, dan bahkan tidak memiliki binding untuk banyak bahasa.

Bisa juga ada subteks untuk menggunakan "agnostik bahasa" daripada istilah lain.

Dalam bahasa Inggris sehari-hari, seseorang yang mengatakan mereka "agnostik" berarti mereka tidak beragama atau ateis: mereka "tidak tahu" tentang Tuhan. Ini biasanya kode verbal untuk "Saya tidak suka berbicara tentang agama, jadi jangan mencoba untuk mempertobatkan saya."

Jadi kadang-kadang ketika orang berbicara tentang "agnostik bahasa", mereka berusaha menghindari argumen tentang bahasa komputer yang lebih baik.

Bob Murphy
sumber
5
BTW, agnostik berasal dari "a" (bukan) + "gnosis" (pengetahuan). Kata-kata lain seperti itu adalah "ateis" dan "tidak khas".
Bob Murphy
2
Yap, saya selalu menganggapnya sebagai rujukan fakta bahwa perang bahasa pada dasarnya adalah perang agama: teknik / saran / konsep agnostik bahasa menghindari perang suci.
Carson63000
Off-Topic: gnostic / agnostic merujuk pengetahuan. Atheis / teis mengacu pada mempercayai atau menegaskan keberadaan. Jadi secara teknis Anda dapat memiliki seorang penganut agama agnostik atau ateis agnostik. Namun penjelasannya sangat jelas. Anda juga dapat berbicara tentang sistem agnostik basis data
Borjab
@ Borjab Saya seorang agnostik yang percaya pada Vim. Tapi saya menggunakan Emacs untuk alasan praktis.
Brandin
Bahasa agnostik mengacu pada aspek pemrograman yang tidak tergantung pada bahasa pemrograman tertentu. Ketika Anda mengatakan apa pun apakah itu berarti sebuah atau artinya semua ? Kardinalitas sangat penting. Misalnya, jika pernyataan berlaku untuk bahasa OOP dan tidak terbatas pada satu bahasa OOP tertentu, tetapi tidak berlaku untuk bahasa Fungsional, apakah bahasa pernyataan agnostik?
jaco0646
7

Ketika suatu solusi disebut "bahasa-agnostik" Anda benar-benar mengatakan bahwa solusi Anda "tidak tahu tentang" bahasa, yang berarti universal atau independen dari spesifik bahasa (paradigma, idiom bahasa, dll).

Sebagai contoh, pola desain adalah agnostik bahasa, karena cara mereka menggambarkan implementasi spesifik tidak masalah selama itu menempel pada keseluruhan atau bagian dari pola (v.gr. beberapa pola desain dapat diimplementasikan tanpa OOP) .

UML adalah agnostik bahasa, BPMN adalah agnostik bahasa, ERM adalah agnostik bahasa. Algoritme dalam pseudo-code adalah agnostik bahasa ...

Apa pun yang dimaksudkan untuk diprogram tetapi tidak dijelaskan dalam bahasa tertentu dapat disebut bahasa-agnostik.

dukeofgaming
sumber
2
Agnostik berarti "tidak tahu tentang", bukan "tidak percaya". Perbedaan yang halus tapi penting!
JacquesB
BPMN tentu bukan bahasa-agnostik, karena memodelkan proses. Ada bahasa pemrograman di mana Anda mendefinisikan hanya prasyarat dan hasil yang diinginkan dan proses terungkap secara implisit, misalnya Prolog. Bahkan Haskell dan BPMN tidak berjalan bersama dengan baik, karena strategi evaluasi Haskell yang malas yang menyebabkan hal-hal tidak terjadi sesuai dengan urutan hal-hal yang didefinisikan secara imperatif.
back2dos
6

Paradigma atau fitur yang tidak diterapkan hanya pada satu bahasa.

Josh K.
sumber
2

Saya belum pernah mendengar istilah ini sebelumnya, namun saya akan menganggap itu berarti mempelajari aspek pemrograman yang tidak tergantung pada bahasa pemrograman tertentu.

sarung tangan mbreed
sumber
1
mengapa disebut demikian?
Louis Rhys
1
Itu cukup banyak cara saya mendengar itu digunakan selama tiga puluh tahun terakhir.
Bob Murphy
1
Saya menghapus respons ini untuk mempostingnya sebagai jawaban.
Bob Murphy
@ Bob: setuju. tetapi di mana jawabannya?
Louis Rhys
@Louis Rhys: Maaf, perlu waktu beberapa menit untuk menulisnya dengan benar. Sudah habis.
Bob Murphy