Wyrażenie „Wiem, kiedy to widzę” to kolokwialne wyrażenie, za pomocą którego mówca próbuje sklasyfikować obserwowalny fakt lub zdarzenie, chociaż kategoria jest subiektywna lub nie ma jasno określonych parametrów. Frazę tę wykorzystał słynny sędzia Sądu Najwyższego Stanów Zjednoczonych Potter Stewart, aby opisać swój test progowy pod kątem nieprzyzwoitości w Jacobellis przeciwko Ohio (1964).
- „Wiem, kiedy to widzę” artykuł w Wikipedii
Podobnie jak wulgaryzmy, myślę, że wszyscy znamy język programowania, kiedy go widzimy. Najwyraźniej OP to robi, ponieważ już oceniłeś C ++ jako język programowania, a HTML nie.
Więc jaki jest dokładnie cel formalnej definicji? Yannis wyjaśnił już, dlaczego najpopularniejsza definicja, kompletność Turinga, jest wadliwa: prowadzi do kategoryzacji, która sprzeciwia się testowi „wiem, kiedy go widzę”.
Daję wam do zrozumienia, że każda definicja, którą możecie wymyślić, doprowadzi do niektórych języków, które według nas nie są językami „programowania”, będą tak sklasyfikowane; lub niektórych językach, które wszyscy czujemy są „programowanie” języki zostaną zakwalifikowane jako nie jest tak.
Dlaczego nie pójdziesz z jelitami? Używam prostej heurystyki: język programowania to język, którego głównym celem, moim zdaniem i zgodnie z moimi spostrzeżeniami, jest pisanie programów. Nie oznaczać treści. Nie przekształcać XML. Pisać programy ogólnego przeznaczenia. Wolę po prostu to wiedzieć, kiedy to widzę, niż próbować doprecyzować formalną definicję i nie widzę żadnej prawdziwej wartości, która mogłaby pochodzić z próby takiej definicji.