Używanie polskich słów i znaków w kodzie źródłowym

1

Trafiłem dzisiaj na wykopie wątek który mnie trochę skłonił do przemyśleń

https://www.wykop.pl/wpis/64274019 (ogolnie ostroznie bo sporo tam hejtu, gość też sie nieźle spiął w końcu)

w skrócie: gość napisał jakiś skrypt i udostępnił kod źródłowy na wykopie. W kodzie użył polskich nazw więc reakcji możecie domyślić się sami. Sam trochę z początku śmiechłem, ale jak zaczął tłumaczyć, że ten kod ma być modyfikowany przez użytkownika nietechnicznego (zmiana wartości parametrów) to zacząłem się zastanawiać czemu miałby nie używać polskich nazw

i nie wymyśliłem :D

ogólnie wydaje mi sie, że to jest szersza dyskusja na temat stosowania złych praktyk w takich "jednorazowych" skryptach pisanych na kolanie

Co myślicie o tym? Nazywalibyście zmienne po polsku w takim wypadku?

9

Tak.

Nazwy zmiennych mają służyć ludziom, nie abstrakcyjnym ideałom. Jeśli jest skrypt czy coś, co do czego znacznie bardziej prawdopodobne będzie, że będzie edytowane przez ludzi nie znających angielskiego, niż nie znających polskiego, to polski jest lepszym wyborem i już.

Lepiej by było, żeby takie osoby nietechniczne edytowały sobie niezależny plik konfiguracyjny (po polsku), ale jeśli już mają grzebać w kodzie wykonywalnym, to polskie nazewnictwo poprawi czytelność — czyli zrealizuje podstawowy cel.

3

Kod zrodlowy to zly interfejs uzytkownika. Można było zrobić do tego proste web GUI, wrzucić na jakiś hosting i nie byłoby tematu.

3

Można wrzucić na stronkę, ale wtedy wykopki zaczęły by się pruć, że twórca zbiera wysokość kredytu, adres IP, dane o przeglądarce itd. i sprzedaje spamerom, i dlaczego nie dał kodu. Gawiedzi się nie zadowoli.

2

Już widzę, jak wszyscy odrzucają np. kontrakt za 100 mln euro na napisanie oprogramowania z nazwami w kodzie po niemiecku, bo to zła praktyka i nieczysty kod. ;)

0

Ogólnie przyjęty, choć niepisany standard jest taki, że kod źródłowy pisze się po angielsku. Wyjątkiem może być jakaś nazwa własna. W razie wątpliwości można dodać komentarz opisujący angielską nazwę po polsku. Jeżeli jedna zmienna lub funkcja byłaby po polsku, to wtedy cały kod powinien być po polsku, a tak się w praktyce nigdy nie dzieje. Jedna z najgorszych rzeczy w projekcie to brak spójności i konsekwencji.

4

Jakbym miał się zastanawiać jak po angielsku będzie "comiesięczna nadpłata kapitału" to bym więcej czasu spędził nad słownikami zamiast nad kodem.

2

Jak zaczynałem się uczyć nowego języka (C#, Swift) to pisałem prosty program, który wylicza pensję netto z brutto wraz ze wszystkimi składkami. O wiele bardziej zrozumiałe jest wtedy użycie zmiennych typu: SkladkaUbezpdoOdliczenia, PodstawaObliczeniaZaliczki, KosztyUzyskaniaPrzychodu.

3
wiciu napisał(a):

Ogólnie przyjęty, choć niepisany standard jest taki, że kod źródłowy pisze się po angielsku.

Prędzej ogólnie żywiona przez programistów, choć może nieuświadomiona nadzieja, że są chwilowo nieodkrytymi geniuszami, ale kiedyś wielka amerykańska firma odkryje to w ich g**no-kodach i kupi je za miliardy dolarów. Dlatego muszą być po angielsku. ;)

2

Wydaje mi się że mylenie kodu języka programowania z jakimś plikiem konfiguracyjnym to jest powód czemu potem ludzie durnie deklarują niepotrzebne consty.

Popatrz z perspektywy pierwszego lepszego Maćka lub Janusza:

  • Otwierasz php.ini - zmieniasz jakąś wartość - program działa inaczej
  • Otwierasz Main.java - zmieniasz jakąś wartość - program działa inaczej

Noi gotowe! Języki programowania to po prostu pliki konfiguracyjne :D A pisanie czegoś w pliku konfiguracyjnym to też programowanie.

Noi pamiętajmy że jak też wpiszesz <table> i zobaczysz tabelkę to to też jest programowanie.

1
kiedys_mialem_lepszy_brzuch napisał(a):

Co myślicie o tym? Nazywalibyście zmienne po polsku w takim wypadku?

Do samego wybrania języka (polskiego, angielskiego, innego), jeśłi tylko język programowania to wspiera, to nie mam szczególnych zastrzeżeń. Język angielski jest wybrany dosyć arbitralnie do programowania.

Jednak mam duży problem z powodem wybrania polskiego - po to że ktoś nietechniczny, i jeszcze nieznający angielskiego miałby traktować kod źródłowy jak interfejs do zmiany konfiguracji? Tosz to debilny pomysł, już by mógł wysłać prostego JSON'a i sparsować jako config, a nie faktyczny kod źrodłowy ;|

0
TomRiddle napisał(a):

Jednak mam duży problem z powodem wybrania polskiego - po to że ktoś nietechniczny, i jeszcze nieznający angielskiego miałby traktować kod źródłowy jak interfejs do zmiany konfiguracji? Tosz to debilny pomysł, już by mógł wysłać prostego JSON'a i sparsować jako config, a nie faktyczny kod źrodłowy ;|

W projekcie przy którym pracuję, config jest kodem źródłowym – w tym samym języku co reszta projektu. W większości to są po prostu stałe wartości, ale są w tym configu też funkcje jeśli coś ma być bardziej programowalne.

0
Azarien napisał(a):
TomRiddle napisał(a):

Jednak mam duży problem z powodem wybrania polskiego - po to że ktoś nietechniczny, i jeszcze nieznający angielskiego miałby traktować kod źródłowy jak interfejs do zmiany konfiguracji? Tosz to debilny pomysł, już by mógł wysłać prostego JSON'a i sparsować jako config, a nie faktyczny kod źrodłowy ;|

W projekcie przy którym pracuję, config jest kodem źródłowym – w tym samym języku co reszta projektu. W większości to są po prostu stałe wartości, ale są w tym configu też funkcje jeśli coś ma być bardziej programowalne.

Jeśli ten config jest przystosowany do tego, jak np webpack.config.js to spoko.Jeśli też ten config przyjmuje na wejśćie tylko konkretne wartości, ma walidację, testy i pewien konkretny format to spoko.

Mi nie chodzi o to że config nie możę być językiem programowania - that's fine.

Chodzi mi tylko o to żeby to głupie "po prostu sobie wziąć consty" czy tam inny dict i powiedzieć "O. Ten dict to jest mój config". To nie jest żaden config wtedy - tylko wystawiony kawałek API.

0

Jako że hobbystycznie pisze sobie programy odpalane z linii poleceń to się wypowiem. A co jesli użytkownik będzie chciał móc używac tego skryptu z różnymi parametrami?
Ma sobie skopiować go wielokrotnie i zmieniac parametry? A jeśli będzie potrzebna poprawka w skrypcie a my mamy skrypt skopiowany 20 razy i różniący się tylko parametrami?

Dlatego lepszym rozwiązaniem jest dla mnie wydzielenie tych parametrów do jakiegoś konfiga i używanie tak:

brilliant_converter json_to_yaml.conf some.json
brilliant_converter yaml_to_json.conf some.yaml

IMHO jest to o wiele lepsze niż posiadanie dwóch skryptów zawierających ten sam kod.

Ale IMHO najlepsza sytuacja dla mnie jest jak konfiguracja jest przekazywana jako parametry z linii poleceń. Wtedy można sobie wszystko ładnie pięknie poaliasować:

alias json_to_yaml_converter = brilliant_converter -i json -o yaml
alias yaml_to_json_converter = brilliant_converter -i yaml -o json

Oczywiście to ma kilka wad:

  • użytkownik musi umieć podac parametry
  • parametrów nie może być za dużo, bo się robi sieka
  • czytanie parametrów jest upierdliwe w prostym skrypcie bez bibliotek zewnętrznych
1
xy napisał(a):
wiciu napisał(a):

Ogólnie przyjęty, choć niepisany standard jest taki, że kod źródłowy pisze się po angielsku.

Prędzej ogólnie żywiona przez programistów, choć może nieuświadomiona nadzieja, że są chwilowo nieodkrytymi geniuszami, ale kiedyś wielka amerykańska firma odkryje to w ich g**no-kodach i kupi je za miliardy dolarów. Dlatego muszą być po angielsku. ;)

Nie tylko o to chodzi. Jeśli np. tworzysz soft, który wystawia jakieś API, SDK, etc., to robiąc to wszystko po polsku, ograniczasz pulę klientów do samej Polski, gdy możesz szukać klientów na całym świecie w obecnych realiach. Poza tym, są też pewne standardy odnośnie wzorców projektowych, których używa się na całym świecie i trzeba by to wszystko tłumaczyć na polski. Niektóre terminy przetłumaczone na polski będą brzmiały dziwacznie, bo nikt ich tak nie nazywa. Każdy język programowania (przynajmniej te najbardziej popularne) mają słowa kluczowe w języku angielskim, a nie jakimś innym. Robiąc takie kombinacje, ostatecznie kończy się na ponglishu. Niektóre firmy są też międzynarodowe i pisząc wszystko po polsku lub w innym języku ograniczonym do jednego kraju, utrudniasz działanie poza granicami Polski w przypadku ewentualnego sukcesu.

0

Trafiłem dzisiaj na wykopie

@kiedys_mialem_lepszy_brzuch: powitać wykopowicza :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1