Friday 23 February 2024

informatyka!

Notatka operacyjna z rozmowy z TW X. Wrażliwi niech nie czytają.

X kończył informatykę dawno temu, wie i umie dużo i za to się go ceni. Ja zupełnie nie z tej parafii i okazjonalnie, niejako dla sportu narzekam, że taki pytong nie umie grać w to i owo - np. przeciążanie funkcji czy fakt, że wszystko w klasie świeci publicznie ("to se podkreślnik dodaj"), czy egzotykę niektórych mechanizów, brak części słów kluczowych itp. Podobnie z dziedziczeniem - człek nie wie, co to funkcja wirtualna, i prze w kierunku "to wywołaj funkcję bazową i dopiero później modyfikuj efekty jej działania" - tia... No ale pytong umie przeładowywać/redefiniować funkcje, bo wszystkie są z zasady wirtualne. Chyba nawet po małpie da się dać "dekorator", że właśnie override. A może to w javie było? Tak czy siak - wg standardów, które znam - trochę xujnia z grzybnią.

Przekaz dnia dostałem z grubsza taki, że Kernighan, Ritchie czy Stroustrup to idioci, a C++ i dalsze (C#/java) to choroba umysłowa, a nie obiektowe języki programowania. Bo prawdziwe to Simula i SmallTalk, a pyton to pierwszy nowoczesny i w miarę dobrze zaprojektowany. I na dokładkę, że wyraziłem sąd, że pytong źle realizuje paradygmaty OOP. A ja nie wiem, co to paradygmat (blado sobie wyobrażam), a już tym bardziej nie paradygmat języka, kurwa, ja klepię kod "żeby działało". I niczego takiego nie mówiłem, tylko czasem kurwica mnie strzela, że tu i ówdzie muszę posługiwać się sochą, a do dyspozycji w zasadzie jest też traktor (tylko akurat do orania tego kawałka benzyny nie dowieźli). 

Zapodałem z tyłu głowy przykład z serii "Hello World", czyli rachowanie pola trójkąta z pomocą długości boku i wystającej z niego wysokości (2 argumenty) albo z tzw. wzoru Herona (3 argumenty). I że sprawą elementarnej wygody i samo-dokumentowania jest mieć dla tych obliczeń dwie funkcje, których nazwa brzmi "pole". (A początek sprawy z przeciążaniem chyba był właśnie w klasach - że nawet głupiego konstruktora nie da się przeciążyć.)

Okazało się (wg zelota py), że napisanie w jednym pliku (a więc module; chyba, bo z tą problematyką nie jestem za pan brat, unikam jak ognia po paru spektakularnych strzałach w kolano - hasło: relative imports) definicji np. pole(a, h) i pole(a, b, c) - co człowiekowi chowanemu na językach C++-podobnych jawi się czymś dość naturalnym - po prostu obowiązuje późniejsza z definicji. Bo "pole" to nazwa i def pole(argumenty): przypisuje to, co od nowej linijki po dwukropku do tej nazwy (z wcięciami - to też podobno częsta gehenna, ale tkwienie w 1 edytorze jakoś mnie chroni, dzięki temu Mikrosoftu i vscode).

Tak, w pytongu jest - rzekomo, przytaczam tylko słowa informatyka, samemu nie do końca wierząc - pełna analogia między tymi definicjami a napisaniem x = 1 i za chwilę x = 2. Jasne, że nikt nie spodziewa się, że po drugim przypisaniu prawdą będzie, że x == 1 albo że skądś magicznie można się odwołać do "wcześniejszej" wartości, przynajmniej w 1 wątku. Na moje protesty, że jednak funkcje o różnych liczbach/typach argumentów czy zwracanym (albo nie - to też źle, a ja akurat void cenię) typie to coś innego niż zmienna int, były krzyki i miotanie kurwami, że wszystko jest obiektem. Nie wiem. Nie kończyłem informatyki, z zachowania typa - może i lepiej? Albo ludzie są ok, a typowi lekko peron odjechał. Zresztą, czemu się dziwić - solidaruch.

Finale: propozycja rozwiązania pytongicznego podobna jest - na mój gust - do ćwiczenia pt. "Gruzin łapie się prawą ręką za prawe ucho dookoła głowy". Dać funkcję 4 argumentów, zgodnie z osiadłą ze szkoły symboliką, 

pole(a,h,b,c)

i jeśli h jest niepuste, to zwrócić ah/2., jeśli puste, zwrócić cokolwiek, co powinien dawać wzór Herona. Którego to wzoru nie pamiętam za cholerę... (Ale chyba mógłbym sklecić. Bo mam jakie-takie umiejętności, które cenię o siódme piekło wyżej niż wiedzę, o której pierdolą 3x3 niedzielni krytycy czy co gorsza projektanci szkolnictwa.)

Szkoda, że nie spytałem o niemożliwość zmieniania wartości takiego sobie x wewnątrz funkcji - pewnie człeczyna jeszcze bardziej by się zaperzył (ew. nakazał opakowanie owego x w klasę, wtedy się da - to wiem, sprawdziłem i złoradstwowałem z tego parę minut). Dobry w tym zaperzaniu się jest, herbatnik, zwłaszcza jak zaczyna wrzeszczeć i seksłorkerkami rzucać przez telefon, a zaproszenia czy wezwania/prowokacji nie było.

I na co ja tu wychodzę? Na trolla mimo woli? Co gorsza, współpraca się kroi. Wschodni by napisali "świeci", ale to w innym kontekście. Tematu więcej z TW X proponujemy Służbie nie poruszać, konkakt operacyjny przerwać, szykan oszczędzić. W razie dalszych fików rozważyć opcję szpitalną w celu przemienienia.

No comments:

Post a Comment