Kiedy coś jest agnostyczne? Dlaczego tak się nazywa?
Kiedy coś jest agnostyczne? Dlaczego tak się nazywa?
Odpowiedzi:
Język agnostyczny odnosi się do aspektów programowania, które są niezależne od jakiegokolwiek konkretnego języka programowania. Przynajmniej tak słyszałem to przez ostatnie trzydzieści lat.
Słowo „agnostyk” pochodzi od starogreckiego słowa „nie wiem”. Zatem coś, co jest „niezależne od języka”, nie musi wiedzieć o językach komputerowych; oznacza to to samo, co język niezależny . Do rzeczy, które byłyby niezależne od języka, należą algorytmy, zwinne lub biblioteka środowiska wykonawczego z powiązaniami z wieloma językami.
Niektóre funkcje systemu Mac OS X nie są niezależne od języka , ponieważ zostały zaprojektowane tak, aby można je było używać z Objective C, można z nich korzystać tylko z trudnościami z C lub C ++, a nawet nie mają powiązań dla wielu języków.
Podtekstem może być również użycie „agnostyk językowy” zamiast innych terminów.
W potocznym języku angielskim ktoś, kto mówi, że jest „agnostyk”, oznacza, że nie jest ani religijny, ani ateista: „nie wie” o Bogu. Jest to zwykle słowny kod dla „Nie lubię rozmawiać o religii, więc nie próbuj mnie nawracać”.
Czasami więc, gdy ludzie mówią o „agnostyce językowej”, starają się unikać sporów o to, który język komputerowy jest lepszy.
Kiedy rozwiązanie nazywa się „niezależne od języka”, dosłownie mówisz, że twoje rozwiązanie „nie wie o” językach, co oznacza, że jest uniwersalne lub niezależne od specyfiki języka (paradygmaty, idiomy językowe itp.).
Na przykład wzorce projektowe są niezależne od języka, ponieważ sposób, w jaki są one opisywane, konkretna implementacja nie ma znaczenia, tak długo, jak przykleja się do całości lub podzbioru wzorca (np. Niektóre wzorce projektowe można wdrożyć bez OOP) .
UML jest niezależny od języka, BPMN jest niezależny od języka, ERM jest niezależny od języka. Algorytm w pseudokodzie jest niezależny od języka ...
Wszystko, co ma zostać zaprogramowane, ale nie opisane w konkretnym języku, można nazwać agnostyką językową.
Nie znałem tego terminu wcześniej, jednak zakładam, że oznacza to naukę aspektów programowania niezależnych od konkretnego języka programowania.