-
Data: 2019-01-08 11:15:52
Temat: Re: Uwagi odnośnie książki Stroustrupa
Od: g...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu wtorek, 8 stycznia 2019 09:46:50 UTC+1 użytkownik Maciej Sobczak napisał:
> > I tak na przykład, pisałem, żeby unikać operacji przypisania tam,
> > gdzie to nie jest konieczne.
>
> I od samego początku ta teza nie została poparta żadnym przykładem. Zmienne
statyczne omówiliśmy, ale czy ich przykładowe nadużycie jest jedynym takim miejscem?
Gdzie jeszcze nie jest konieczne?
Gwoli ścisłości: to nie było "przykładowe nadużycie".
To był najprostszy możliwy przykład użycia zmiennej
statycznej. I to nie był przykład na zły styl w programowaniu
- czasem konstrukcje tego typu mogą mieć sens.
To był przykład na to, w jaki sposób "mutowalny stan"
komplikuje nasze środki analizy programu.
I nie chodzi o to, że programy, które używają "mutowalnego
stanu" są "gorsze" od takich, które go nie używają. Ja tak
nie twierdzę. Twierdzę, że są - co do zasady - trudniejsze
do zrozumienia, co - jak sądzę - zobrazowałem programem
liczącym sumę kwadratów początkowych siedmiu liczb pierwszych,
który się gdzieś w tym wątku przewinął.
> > nigdzie tam nie pisałem, że "operator
> > przypisania jest niepotrzebny".
>
> Przepraszam za skrót myślowy. Łączę tą kwestię z ogólną niechęcią zwolenników
programowania funkcjonalnego do modyfikowalnego stanu.
No ja się czasem spotykam z ludźmi, którzy twierdzą, że "programy
funkcyjne są lepsze, bo są lepsze", albo "są lepsze, bo są
przejrzyste odniesieniowo", i którzy robią rzeczy prawdziwie
kuriozalne. Uważam, że to głupota.
Ale też uważam, że warto dobierać najprostsze środki do realizacji
danego celu. Jeżeli coś można zrobić bez przypisania, bo pojęcie
stanu nie jest istotnym składnikiem rozwiązywanego problemu, to
lepiej to tak zrobić. I są pewne konkretne powody ku temu
- mianowicie to, że zyskujemy możliwość analizy kodu w terminach
podstawień, a nie w terminach przepływu sterowania, który w wielu
sytuacjach jest dla nas nieinteresujący (a nawet ograniczający)
> > Ale moja percepcja Twoich słów jest taka, że nie wypowiadasz
> > ich po to, żeby dowiedzieć się, co mam na myśli, tylko po to,
> > żeby udowodnić mi, że nie mam racji.
>
> Inaczej: mając wrażenie, że dowiedziałem się już, co masz na myśli, udowadniam, że
nie masz racji. :-) Jest bardzo możliwe, że gdzieś się mijamy w naszych wrażeniach,
ale ponieważ dziedzina jest techniczna, to zawsze staram się odwoływać do przykładów
(albo prosić o przykłady) z kodem.
Ja też. Nawet w dziedzinach nietechnicznych
Jeżeli ktoś nie jest w stanie podać przykładów
na rzecz swoich twierdzeń, to jest to dla mnie
silna przesłanka za tym, żeby uznać, że nie wie,
co mówi (albo że tak sobie po prostu gada)
> > (między innymi dlatego cenię sobie języki programowania, bo
> > pozwalają się komunikować w sposób hiper precyzyjny bez żadnego
> > miejsca na niejednoznaczność)
>
> Właśnie.
>
> A skoro i tak weszliśly już w tym podwątku na poziom miękki, to pozwolę sobie na
drobne wyjaśnienie. Być może masz wrażenie, że się Ciebie czepiam dla samego
czepiania, ale moja perspektywa jest inna. Otóż padło tutaj w dyskusji N zarzutów
wobec różnych rzeczy (książki, języka, paradygmatu, itd.) cieszących się w miarę
szerokim poważaniem i wśród tych zarzutów jest M, z którymi się nie zgadzam. A
ponieważ na tej grupie jest bardzo mało okazji do dyskusji, więc korzystam z tych M.
Gdyby te N zarzutów było napisanych przez N różnych grupowiczów, to również wtedy nie
zgodziłbym się z M z nich i odniósłbym się do nich (z grubsza) w taki sam sposób.
> Tymczasem zupełnym przypadkiem te M dyskusyjnych kwestii pochodzi od jednego
grupowicza. Tak, jesteś jedyną osobą, która w ostatnim czasie konsekwentnie forsuje
tutaj pewien nurt techniczny, który z racji swojej dzisiejszej niszowości jest
kontrowersyjny (co nie znaczy, że nowatorski a przez to nieznany). Inaczej mówiąc,
fakt, że spada na Ciebie cały ogień obrony jest z mojego punktu widzenia wyłącznie
przypadkiem, jeśli nie Twoją winą, skoro jesteś jedynym atakującym. :-)
Rozumiem.
Choć nie zgodzę się z tym, że cokolwiek forsuję. Może "promuję"
byłoby lepszym słowem.
> To rzekłszy, dawno temu był tu grupowicz podpisujący się jako Qrczak. Forsował
mniej więcej te same poglądy a nawet popełnił własny język programowania o nazwie
Kogut (http://kokogut.sourceforge.net/kogut.html). Nie wykluczam, że go znasz.
Niestety nie zagląda już tutaj, ale jestem przekonany, że świetnie byście się
dogadali, na pewno z korzyścią dla grupy.
Kojarzę go, choć może raz z nim rozmawiałem, ale rzeczywiście
było to dawno.
Ciekawostką jest, że ostatnio upvote'ował dwie moje odpowiedzi
na Quorze, w tym jedną, którą wkleiłem na początku naszej rozmowy,
i drugą, w której krytykowałem C++, skąd dowiedziałem się, że też ma
profil na Quorze:
https://www.quora.com/profile/Marcin-Kowalczyk-11
Następne wpisy z tego wątku
- 08.01.19 13:33 AK
Najnowsze wątki z tej grupy
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-08 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Szczecin => Key Account Manager (ERP) <=
- 2024-11-08 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-08 Wrocław => Senior PHP Symfony Developer <=
- 2024-11-08 Warszawa => QA Engineer <=
- 2024-11-08 Warszawa => QA Inżynier <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Gdańsk => Software .Net Developer <=
- 2024-11-08 Akumulator Hyundai
- 2024-11-08 Warszawa => Manager/Specialist e-commerce (B2C) <=
- 2024-11-08 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-08 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-08 znaj podstawe
- 2024-11-08 Chrzanów => Specjalista ds. public relations <=