C++ po polsku? Można? Można!!! Biblioteka energo-protekcja

0

Cześć!
Prywatnie postanowiłem skończyć z kodowaniem w j. ang. i mam zamiar programować po polsku.
W tym celu stworzyłem plik nagłówkowy PolskiC++ z makrami spolszczającymi składnię C++.
Oczywiście nie wszystko jestem w stanie spolszczyć: interfejsów bibliotek, języka preprocesora C++ ani tagów Doxygena.
Ale to nic! Postanowiłem robić tyle ile jestem w stanie!

Tak więc w kolejnym kroku spolszczyłem interfejs i dokumentację mojej małej biblioteczki energo-protekcja z użytecznymi klasami, funkcjami i makrami jakie sprawdzają się w codziennym kodowaniu w C++ i Qt.

Jak jesteś ciekaw efektu to zapraszam:
https://gitlab.com/energokoder/energo-protekcja

Szacun i Pozdro!
Energo Koder

6
    prubuj
    {
        // ...
    }
    zlap(enpro::Wyjatek& aWyjatek)
    {
        // ...
    }

Polski też ci nie wychodzi.

15
Energo Koder napisał(a):

Prywatnie postanowiłem skończyć z kodowaniem w j. ang. i mam zamiar programować po polsku.
W tym celu stworzyłem plik nagłówkowy PolskiC++ z makrami spolszczającymi składnię C++.

Życie ci aby bardzo potrzebowałeś biblioteki którą napisał chińczyk z podobnymi do twoich przekonaniami.
Oraz życzę powodzenia z jej użyciem.

1

Proponuje w wersji 2.0 (po poprawieniu błędów) przepisac na jezyk Navajo.

7
#define licz8 char
#define licz16 short int
#define licz32 int
#define licz64 long long
#define licz8bz unsigned char
#define licz16bz unsigned short int
#define licz32bz unsigned int
#define licz64bz unsigned long long
#define rze32 float
#define rze64 double
#define rze80 long double

Żaden z typów, które tu aliasujesz nie daje gwarancji, że będzie miał taki rozmiar jaki podajesz w aliasie https://en.cppreference.com/w/cpp/language/types. Nawet char nie jest gwarantowany, że będzie miał 8 bitów. Typy z gwarancją rozmiaru masz tutaj https://en.cppreference.com/w/cpp/types/integer

2

@Energo Koder:
jakbyś czuł język C, to typy byś zrobił przez typedef a nie makra. Przynajmniej kompilator by krzyczał przy problemach. Ale ochota na naprawianie czegoś jest tym większa, im mniej się to zna.

Zgadzam się z kolegami, ze pomysł jest chory.
Nawiasem mówiąc wcale nie jest innowacyjny, bo takie pomysły były jak sika.. jak o Twoich pieluchach jeszcze nie świtało.

UPDATE: aaaaa to Kolega od "porad po 22 latach"

1

To chyba prościej byłoby zrobić apkę, która przetłumaczy ten polski C++ na normalny C++. Wtedy nie byłoby problemu, że kompilator widzi zapisaną w unicode nazwę makra próbuj. Można wtedy napisać zwykłą podmianę jednych słów na inne - ot cala robota nawet bez wyrażeń regularnych. Po co męczyć się z makrami? Makra i tak rozwijane, więc nie dość, że komunikat błędu składniowego będzie dotyczyć sytuacji po rozwinięciu makra, to jeszcze rozwinięcie makra może utrudnić znalezienie błędu.

6

Z jednej strony fajnie, że coś sobie wymyśliłeś i jeszcze to zrealizowałeś.
Z drugiej:

  • nikt nie będzie uczyć się na nowo składni języka;
  • nie wszystko dało się przetłumaczyć, więc powstaną potworki językowe;
  • to co sam przetłumaczyłeś, to już są potworki same w sobie. Widać, że nie ogarniasz przeznaczenia elementów języka ani jakiejkolwiek konwencji nazewniczej, np. #define rozruch main. Co to jest "rozruch"? Kto wpadnie na to bez przeczytania tutoriala? #define albo else - "albo" to inaczej "lub", alternatywa, else oznacza kompletnie co innego. Inline "wlinii", private "tajne", protected "poufne", nie ogarniasz przeznaczenia podstawowych elementów OP. Przykłady braku trzymania się konwencji: po angielsku masz czasownik, po polsku tłumaczysz to raz na rzeczownik, raz na czasownik (return to "wynik" zamiast np. "zwróć", throw to "wyjatek" zamiast "rzuc" - ale catch to już "zlap"). I vice versa, po angielsku masz rzeczownik, po polsku robisz czasownik (vide enum "wylicz");
  • fatalne błędy ortograficzne w zasadzie dyskwalifikują cały pomysł. Realizujesz projekt tłumaczenia nazw z angielskich na polskie, po czym zamiast polskiego używasz jakiegoś własnego języka. WTF? "Prubuj", "wzur", "rub"...
  • angielskie nazwy najczęściej używanych słów kluczowych są dobrze przemyślane - są jednoznaczne i krótkie, czego nie można powiedzieć o Twoich nazwach;
  • nie używasz polskich liter, za to używasz raz jednoliterowych skrótów, raz pierwszych liter słowa, przez co spora część nazw jest nieczytelna. "rze80", "liczbz", "fun" (a to jest ciekawostka akurat - void, czyli nic, brak, nicość, które w praktyce oznacza, że funkcja jest procedurą, Ty nazywasz właśnie funkcją), "dynRzut", "statRzut";
  • kod będzie nieczytelny dla kogokolwiek spoza Polski. Tak się akurat składa, że dużo programistów z naszego kraju pracuje dla zagranicy (Dania, Belgia, Holandia, Niemcy itp), co dyskwalifikuje użycie Twojego pomysłu;
  • w sumie to kod będzie nieczytelny nawet dla Polaka, ponieważ wprowadzasz nowe (ale niespójne i nieprzemyślane) nazewnictwo słów kluczowych. Pół biedy, jeśli kod trzeba przeczytać, wtedy zwykle można się domyślić o co chodzi, jednak jeśli chciałbyś coś w tym napisać, to musisz zakuć te nazwy na pamięć. Nazwy te będą się różnić od wszystkiego, co jest dostępne na rynku, bo wszystkie inne języki używają nazw angielskich (współdzielą sporą ilość słów kluczowych, dzięki czemu przesiadka z języka na język jest zwykle względnie łatwa), zatem jeśli ktoś nauczy się Twojej składni, to nigdzie indziej z tego nie skorzysta. Jeśli ktoś będzie robił review takiego "polskiego" kodu, to też będzie musiał nauczyć się tych nazw na pamięć, co zwiększa koszt wejścia w Twoje nazewnictwo.

Język C++ został zaprojektowany po angielsku, więc poszczególne jego elementy pasują do siebie tylko w tym języku. Cała dokumentacja jest po angielsku, baza wiedzy dla rozwiązywania wszystkich trochę bardziej zaawansowanych problemów jest wyłącznie po angielsku, zatem bez angielskiego minimum na poziomie czytania dokumentacji i tak nie wyjdziesz daleko poza "hello world". Mając angielski na podstawowym poziomie bez trudu opanujesz te 20-30 słów kluczowych bez używania ich tłumaczeń.

0

czemu bez polskich znakow? :(

Ja rozumiem pisanie bez polskich znakow (jako, ze sam bardzo rzadko ich uzywam), ale jednak jezeli pisalbym bibloteke, to wspierałbym wyłącznie poprawną polszczyznę ;)

0

Był już kiedyś pomysł, aby zagraniczne wyrazy zastąpić nazwami polskimi. I tak **krawat **zamieniono wtedy na zwis męski górny.

0

W latach 90tych był to problem (z polskimi literami w BIOSach / urządzeniach), i zamiast problematycznego "NaciŚnij jakiŚ klawisz" widziałem "Klepnij ino guzok"

Zwłaszcza, że dziś np Google zna język Polish Silesian

1
Energo Koder napisał(a):

Prywatnie postanowiłem skończyć z kodowaniem w j. ang. i mam zamiar programować po polsku.

Mam i oglądam TikToka ale jednak chyba nie nadążam za hipsterką.

To jakiś nowy trend? Jeszcze o nim nie słyszałem.

Albo to pomysł jednego z Narodowych Polityków?
Narodowe Programowanie, jak Narodowa Kwarantanna?

WTF?!

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