Moim zdaniem jest to wyłącznie ze względów marketingowych . A dodatkowo może utrudnić nam życie.
Argumenty marketingowe
Znasz te zwariowane listy funkcji, którymi może się pochwalić większość języków? Jest to zasadniczo bezużyteczne, ponieważ jest tak dalekie od języka, że nie dostarcza wielu informacji na temat konkretnego, ale pozwala szybko ubierać tabele za pomocą haczyków i krzyżyków i słusznie dochodzić do wniosku, że skoro X ma więcej tyknięć niż Y, musi bądź lepszy.
Cóż, obsługa identyfikatorów w Unicode jest jedną z tych linii. Nie ma znaczenia, że w porównaniu ze wsparciem dla Lambda, Ogólnym wsparciem programowania itp. Może nie być wiele, ludzie rysujący tabele nie dbają o jakość każdej linii, tylko o ich liczbę.
I dlatego mogą się pochwalić: „Ach, z Y nie masz obsługi Unicode dla twoich identyfikatorów! W X tak, więc dla studentów jest to o wiele łatwiejsze!”
Błąd dostępności
Niestety argument dotyczący dostępności jest błędny.
Och, rozumiem, że możliwość napisania „résultatDuJetDeDé” zamiast „diceThrowResult” (tak, jestem Francuzem) może wydawać się wygraną w krótkim okresie ... jednak są wady!
Programowanie polega na komunikacji
Twój program jest przeznaczony nie tylko dla kompilatora (który może mniej obchodzić identyfikatory, których używasz), ale także dla twoich towarzyszy. Muszą być w stanie to przeczytać i zrozumieć.
- jego odczytanie oznacza możliwość wizualizacji użytych znaków, Unicode nie jest tak dobrze obsługiwany przez wszystkie czcionki
- zrozumienie go oznacza poleganie na identyfikatorach - chyba że uzupełnisz je długimi komentarzami, ale to narusza zasadę SUCHEGO.
Oczywiście, twój kolega z klasy może mówić tym samym językiem co ty (nie jest to oczywiste, miałem zajęcia z programowania z Niemcami, Hiszpanami, Libanesem i Chińczykami), a także twój nauczyciel ... ale załóżmy, że jakoś pracujesz nad tym w domu i nagle potrzebuję pomocy: Internet jest świetny, możesz rozmawiać z tysiącami ludzi, którzy znają rozwiązanie, odpowiedzą tylko, jeśli zrozumieją twoje pytanie. A ty musisz zrozumieć ich odpowiedzi, jak również.
Programowanie wymaga zrozumienia
Dostępność i inicjacja wymagają oparcia się na bibliotekach, aby wykonać ciężkie podnoszenie dla ciebie: nie chcesz wymyślać warstwy IO, aby czytać / pisać na konsoli podczas pierwszego zadania.
- W jakim języku są napisane te biblioteki?
- W jakim języku te biblioteki są udokumentowane?
Jeśli odpowiesz na arabski marokański, będę zaskoczony.
O ile nie polegasz tylko na wykładach, w których asystujesz, i którzy prezentują obszerną dokumentację na temat każdej funkcji biblioteki, której będziesz potrzebować (a być może nawet przetłumaczonych bibliotek), będziesz musiał nauczyć się odrobiny języka angielskiego. Ale prawdopodobnie i tak zrobiłeś już na długo przed rozpoczęciem tego kursu programowania.
Angielski jest...
... lingua franca programistów (i większości naukowców).
Im wcześniej ktoś się do tego przyzna i zamiast tego walczy z nim, tym szybciej można naprawdę się uczyć i robić postępy.
Niektórzy nieuchronnie się temu przeciwstawią i słusznie będą bronić swojego prawa do mówienia wybranym przez siebie językiem (zwykle językiem ojczystym), jednak, jak wykazał Babel, im więcej języków jest używanych, tym trudniejsza jest komunikacja.
Nadal...
Tak, jak wielokrotnie argumentowano, pewne wsparcie dla Unicode (głównie symbole) może znacznie ułatwić zrozumienie dla ludzi, którzy muszą na przykład tłumaczyć wzory matematyczne lub fizyki na kod. Wadą jest to, że niektóre symbole są przeciążone, ale i tak może to pomóc.
Więc dlaczego ?
Jak już powiedziano, tak naprawdę nie chodzi o wygodę użytkownika, ale o roszczenia marketingowe. Jest to również bardzo łatwe, ponieważ parser i tak już rozpoznaje ciągi znaków i komentarze w Unicode, więc większość przeskakuje.
I mogą być korzyści dla niektórych użytkowników.
Ale osobiście zajmę się tylko kodem napisanym przy użyciu angielskich identyfikatorów. Nie obchodzi mnie, czy potrzebujesz mojej pomocy z twoim fragmentem kodu, czy twoja biblioteka jest po prostu niesamowita i mógłbym wiele zyskać, korzystając z niej: jeśli jej nie zrozumiem, będę musiał to zignorować.